python_1.txt

(40 KB) Pobierz
[07:00] ŻŻ Modes[#wyklady] Regedit (+m)
[07:00] <@Regedit> no dobra w takim razie witam wszystkich
[07:00] <@Regedit> na wykladzie z jezyka Python
[07:00] <@Regedit> ja nazywam sie Adam Sawicki i wiecej info o mnie na mojej stronie www.regedit.risp.pl
[07:01] <@Regedit> wyklad natomiast bedzie dotyczyl jezyka Python
[07:01] ŻŻ Joins[#wyklady] defc0n (~defc0n@agd50.internetdsl.tpnet.pl)
[07:01] <@Regedit> wymagania systemowe do wykladu sa takie:
[07:01] <@Regedit> - znac jakis jezyk programowania
[07:01] <@Regedit> inaczej umiec programowac :)
[07:01] <@Regedit> bo wyklad obejmuje skladnie pythona (praktycznie cala) i to bedzie taki szybki przeglad
[07:01] <@Regedit> wiec trzeba juz wiedziec co to zmienna, funkcja itd.
[07:01] <@Regedit> slowem wstepu najpierw powiem co to jest python
[07:02] <@Regedit> a wiec jest to jezyk programowania skryptowy
[07:02] <@Regedit> wniosek z tego taki ze mozna w nim pisac programy
[07:02] <@Regedit> zapisywac algorytmy itp
[07:02] <@Regedit> a ze skryptowy to znaczy ze nie sluzy do pisania pelnoprawnych aplikacji tylko skryptow
[07:02] <@Regedit> i ze jest interpretowany
[07:03] <@Regedit> a raczej tlumaczony do kodu binarnego, ktory jest potem wykonywany w wirtualnej maszynie
[07:03] <@Regedit> skad go wziac? strona to chyba www.python.org
[07:03] <@Regedit> Python jest open source, darmowy nawet do zastosowan komercyjnych
[07:03] ŻŻ Joins[#wyklady] phoenix (~phoenix@cgw162.neoplus.adsl.tpnet.pl)
[07:03] <@Regedit> a ze strony mozna sciagnac jego instalke na rozne systemy, np. windows i linux
[07:03] <@Regedit> razem z interpreterem instaluje sie takie male IDE o nazwie IDLE
[07:04] <@Regedit> ktore zawiera linie komend w ktorej mozna na zywi kodzic, tzn wpisywac polecenia ktore od razu sie wykonuja
[07:04] <@Regedit> bardzo fajne :)
[07:04] <@Regedit> teraz ostatnia rzecz ze wstepu, do czego python moze sie przydac
[07:04] ŻŻ Joins[#wyklady] nameee (~kangurx@aev122.neoplus.adsl.tpnet.pl)
[07:04] <@Regedit> zastosowan ma wiele
[07:04] <@Regedit> - jako skrypty powloki do zadan administracyjnych
[07:05] <@Regedit> w windowsie plik .py i klikamy 2 razy, w linuxie #!/bin/python czy cos takiego
[07:05] <@Regedit> - jako jezyk, w ktorym mozna skrypcic programy
[07:05] <@Regedit> bo wiele programow uzywa wlasnie jego tak jak MS Office ma swoj VBA :)
[07:05] <@Regedit> np. Blender, QuArK i wiele innych
[07:05] <@Regedit> - jako jezyk, ktory mozna osadzic w swojej aplikacji zeby ja oskrypcic
[07:05] <@Regedit> - i wreszcie do pisania calkiem powaznych programow, bo tez sie da
[07:06] <@Regedit> i jeszcze krotko jaki jest ten python
[07:06] <@Regedit> przede wszystkim to jest jezyk naprawde duzego kalibru
[07:06] <@Regedit> ma klasy, wyjatki itd
[07:06] <@Regedit> dlatego tez nie jest tak maly ani szybki jak np. LUA
[07:06] <@Regedit> poza tym ma bardzo pokrecona skladnie!
[07:06] <@Regedit> niepodobna do zadnego innego jezyka
[07:06] <@Regedit> choc nie w tym kierunku pokrecona, co np. Bash, TCL, Perl i inne jezyki linuksowe
[07:07] <@Regedit> wiec jak sie go pozna to okazuje sie, ze kodzi sie w nim bardzo szybko, przyjemnie i malo bledow sie popelnia
[07:07] <@Regedit> wlasnie poznawaniem tej dziwnej skladni sie zajmiemy
[07:07] <@Regedit> koniec wstepu, sa jakies pytania? :)
[07:07] ŻŻ Modes[#wyklady] Regedit (-m)
[07:07] <ant_> podbna skladnia do c
[07:07] <@Regedit> nie powiedzialbym :)
[07:07] <Prodigy> Regedit: do ktorej bedzie wyklad?
[07:07] <@Regedit> do 21
[07:07] <ant_> a ja bym powiedzial :)
[07:07] <Prodigy> ant_: na przyklad to, ze nie ma { i } ?
[07:08] <ant_> sa
[07:08] <ant_> ;p
[07:08] <@Regedit> nie ma
[07:08] <XAOS|work> sa
[07:08] <phoenix> dajcie mi przyklad w pythonie to wam powiem ;P
[07:08] <XAOS|work> nie ma?
[07:08] <ant_> tylko odpowiednie zastosowanie wciec
[07:08] <XAOS|work> hmm...
[07:08] <Prodigy> ant_: moze i sa, ale znacza co innego :P
[07:08] <Reqamst> nie teraz te dyskusje ;]
[07:08] ŻŻ Modes[#wyklady] Regedit (+m)
[07:08] <@Regedit> ok w takim razie podstawy skladni
[07:08] <@Regedit> po pierwsze komentarze
[07:08] <@Regedit> pisze sie jak to w linuksowych jezykach bywa, za pomoca #
[07:08] <@Regedit> w osobnej linii albo w tej samej co jakies polecenie np.:
[07:09] <@Regedit> # a tu wywoluje funkcje:
[07:09] <@Regedit> funkcja() # no i wywolalem
[07:09] <@Regedit> nastepna sprawa i tu uwaga
[07:09] <@Regedit> kazde polecenie ma byc w osobnej linii, tu nie ma wolnego formatu zapisu jak w innych jezykach
[07:09] ŻŻ Joins[#wyklady] artpoz (artpoz@poznanski.net.autocom.pl)
[07:09] <@Regedit> moze byc wiecej polecen w jednej linii ale wtedy trzeba pisac po kazdym ;
[07:09] <@Regedit> normalnie nie trzeba
[07:09] <@Regedit> wiec mozna tak:
[07:09] <@Regedit> funkcja1();
[07:10] <@Regedit> funkcja2()
[07:10] ŻŻ Modes[#wyklady] ChanServ (+o G0blin)
[07:10] <@Regedit> albo funkcja1(); funkcja2();
[07:10] <@Regedit> bloki zaznacza sie samymi wcieciami
[07:10] <@Regedit> nie ma ani begin/end ani {}, w ogole nic
[07:10] <@Regedit> wciecia to np. tabulacje, spacje itp
[07:10] <@Regedit> np.:
[07:10] <@Regedit> if x > 0:
[07:10] <@Regedit> funkcja();
[07:10] <@Regedit> nie ma tez roznicy czy wewnatrz takiego bloku jest jedna czy wiecej instrukcji
[07:11] <@Regedit> teraz zmienne
[07:11] <@Regedit> jak to w jezykach skryptowych bywa, zmiennych sie nie deklaruje a typy sa dynamiczne
[07:11] <@Regedit> po prostu sie przypisuje np. tak:
[07:11] <@Regedit> x = 1;
[07:11] <@Regedit> y = x
[07:11] <@Regedit> itd.
[07:11] <@Regedit> typy danych sa takie:
[07:11] <@Regedit> - typ logiczny, dopuszczalne wartosci to True i False (to sa slowa kluczowe)
[07:11] <@Regedit> - typ liczbowy
[07:12] <@Regedit> liczby sie zapisuje jak w C++
[07:12] <@Regedit> - typ dlugiej liczby - o dowolnej dlugosci, samo sie przelacza na taki jak bnastepuje przepelnienie
[07:12] <@Regedit> sa funkcje matematyczne np.:
[07:12] ŻŻ Joins[#wyklady] Prus (~skrzyp_@cnn148.neoplus.adsl.tpnet.pl)
[07:12] <@Regedit> pow itp.
[07:13] <@Regedit> operatory arytmentyczne to standardowo + - * /
[07:13] <@Regedit> a ponadto:
[07:13] <@Regedit> x // y to dzielenie calkowite z obcieciem reszty (zaokragleniem w dol)
[07:13] <@Regedit> x ** y to podniesienie do potegi
[07:13] <@Regedit> jest tez % jak w C++ czyli reszta z dzielenia
[07:14] <@Regedit> sa operatory bitowe | & ~ << >> jak w C++
[07:14] <@Regedit> ^ jak w C++ to bitowy XOR
[07:14] <@Regedit> sa tez operatory += itd.
[07:14] <@Regedit> np. x += 2; zwieksza x o 2
[07:14] ŻŻ Joins[#wyklady] ryjcio (~ryjcio@ntwklan-62-233-167-54.devs.futuro.pl)
[07:14] <@Regedit> opeatory porownania to == < > <= >=
[07:14] <@Regedit> rozny to != lub <> jak kto woli
[07:14] <@Regedit> operatory logiczne to pisane slownie: and or not
[07:15] <@Regedit> dodatkowo sa operatory is oraz not is
[07:15] <@Regedit> ktore wskazuja czy dwie zmienne typu referencyjnego wskazuja na ten sam obiekt
[07:15] <@Regedit> bedzie o tym pozniej, w kazdym razie chodzi o to
[07:15] <@Regedit> ze zwykle == porownuje wartosci obiektow a nie to czy wskazuja na ten sam
[07:15] <@Regedit> i jeszcze ciekawostka, mozna pisac np. tak:
[07:15] <@Regedit> a < b == c
[07:16] <@Regedit> i to zadziala zgodnie z intuicja czyli zwroci True jesli b > a oraz b == c
[07:16] <@Regedit> czego nie ma w innych jezykach :)
[07:16] <@Regedit> teraz lancuchy krotko, bo obszerniej bedzie pozniej
[07:16] <@Regedit> lancuchy zapisujemy w '' lub "", np. "Hello world!"
[07:16] <@Regedit> znaki specjalne, czyli escape sequences sa tak samo jak w C/C++
[07:17] ŻŻ Joins[#wyklady] nobody_ (~nob@ds2.pwsz.elblag.pl)
[07:17] <@Regedit> natomiast jest kilka dodatkowych rzeczy
[07:17] <@Regedit> raw string to taka skladnia to dluzszych lancuchow
[07:17] <@Regedit> zapisywane sa w """...""" lub r"..."
[07:17] <@Regedit> lub '''...''' lub r'...'
[07:17] <@Regedit> i wtedy w miejscu ... moga byc dowolne znaki oprocz tych ktore koncza ten string, lacznie ze znakami konca wiersza
[07:18] <@Regedit> lancuchy unikodowe z kolei, bo to osobny typ od zwyklych, zapisuje sie u"..." lub u'...'
[07:18] <@Regedit> konkatenacja (laczenie) lancuchow robi sie za pomoca operatora +
[07:18] <@Regedit> i jest jeszcze operator * :)
[07:18] ŻŻ Joins[#wyklady] adam_i (~adam@ana193.neoplus.adsl.tpnet.pl)
[07:18] <@Regedit> ktory mnozy lancych przez liczbe np. "bla" * 3 wyjdzie "blablabla"
[07:19] <@Regedit> szerzej o lancuchach bedzie pozniej
[07:19] <@Regedit> a teraz jeszcze o wartosci None
[07:19] <@Regedit> wiele jezykow ma specjalny typ "pusty" o jednej wartosci, ktory oznacza cos w rodzaju "nic", "niewiadomo", "niezdefiniowane" itp.
[07:19] <@Regedit> zeby odroznic od innych np. od liczby, jesli kazda liczba moze byc dozwolona
[07:19] <@Regedit> takie cos ma SQL, PHP i wiele innych
[07:19] <@Regedit> nazywa sie to roznie, nil, null itp.
[07:20] <@Regedit> a w Pythonie dla odmiany sluzy do tego slowo kluczowe None
[07:20] <@Regedit> tak wiec x = None podstawi do zmiennej x wartosc None typu None
[07:20] <@Regedit> slucham pytan
[07:20] ŻŻ Modes[#wyklady] Regedit (-m)
[07:20] &lt...
Zgłoś jeśli naruszono regulamin