lwdp.pdf

(195 KB) Pobierz
112797372 UNPDF
LWP: Lamerskie Wprowadzenie do Pythona
Artur Skura <arturs@linuxpl.org>
podzi ˛ kowania dla Wojtka Warczakowskiego
<wowar@poczta.onet.pl>
gdzieniegdzie tekst modyfikował Maciej " MACiAS" Pilichowski
<macias@torun.pdi.net>
07.07.2001
szab
lon DocBook; Ly
X 1.1.6fix2
Dok
um
en
t ten
p
rz
ed
s
ta
w
ia
p
od
s
ta
w
ow
e w
ła
´ciw
os
´ci p
ote ˛ z
˙n
eg
o j
e ˛ z
y
k
a
,
j
a
k
im
j
es
t Py
th
on
. Prz
ez
n
a
cz
on
y
j
es
t d
la
n
ie−p
rog
ra
m
is
tów
i h
obby
s
tów
. Pros
z
e˛ z
g
ła
s
z
a
´ w
s
z
y
s
tk
ie błe˛d
y
(z
a
p
ew
n
e j
es
t ich
m
n
ós
tw
o)
i
n
ie iry
tow
a
´ s
ie˛ łop
a
tolog
ia
˛ ;−)
1. Wst ˛ p
W
iele osób
p
ragna˛c nau
czy
´ si˛ p
rogramowa´ st
aj
e p
rzed dy
lemat
em: " Od j
akiego j
˛zy
ka
p
rogramowania zacza˛´?" . Py
t
anie j
est
do´´ ist
ot
ne, p
oniewa˙ negat
y
wne nawy
ki, kt
óry
mi p
rzesia˛knie
p
ocza˛t
ku
j
a˛cy
b
ardzo t
ru
dno p
ot
em wy
korzeni´.
Eric S. Ray
mond w swoim esej
u
" J
ak zost
a´ hackerem?" p
rop
onu
j
e Py
t
hona. Ist
niej
e wiele
argu
ment
ów p
rzemawiaj
a˛cy
ch za wy
korzy
st
aniem t
ego j
˛zy
ka. N
iekt
óre asp
ekt
y
C (np
. wska´niki)
moga˛ sp
rawi´ p
ocza˛t
ku
j
a˛cy
m wiele t
ru
dno´ci; u
t
rzy
manie p
orza˛dku
w p
rogramach nap
isany
ch w
Perlu
st
aj
e si˛ p
o p
ewny
m czasie b
ardzo t
ru
dne (p
odob
nie j
est
z Tcl/
Tk); J
av
a wy
maga zrozu
mienia
p
ewny
ch p
odst
aw, a narz˛dzia do niej
−− wy
maga´ sp
rz˛t
owy
ch wy
˙szy
ch ni˙ p
rzeci˛t
ne... N
au
ka
Py
t
hona j
est
rozsa˛dny
m komp
romisem: z j
ednej
st
rony
ot
rzy
mu
j
emy
j
˛zy
k, kt
órego st
osu
nkowo łat
wo
mo˙na si˛ nau
czy
´, z dru
giej
za´ −− p
ot
˛˙ne narz˛dzie u
˙y
wane p
rzez p
rofesj
onalist
ów, w swej
p
odst
awowej
p
ost
aci b
ardzo u
˙y
t
eczne wsz˛dzie t
am, gdzie np
. zachodzi konieczno´´ wy
kony
wania
skomp
likowany
ch op
eracj
i na ła´cu
chach znaków.
Twórca Py
t
hona, Gu
ido v
an Rossu
m, zaleca j
ego nau
k˛ na samy
m p
ocza˛t
ku
, p
rzed wp
rowadzeniem do
t
akich j
˛zy
ków j
ak J
av
a czy
C++. Dzi˛ki t
emu
, p
o zako´czeniu
ku
rsu
u
cze´ b
˛dzie p
ot
rafił
p
rogramowa´ na p
rzy
zwoit
y
m p
oziomie i rozu
miał p
odst
awy
p
rogramowania ob
iekt
owego, co znacznie
u
łat
wi mu
nau
k˛ w/
w j
˛zy
ków.
2. Zaczynamy
s
112797372.002.png
Ab
y
zorient
owa´ si˛ w mo˙liwo´ciach j
˛zy
ka, u
ru
chomimy
int
erp
ret
er Py
t
hona:
$ p
y
t
hon
Poj
awi si˛ nap
is p
odob
ny
do p
oni˙szego:
Py
t
hon 1.5.2 (#1, Feb
1 2000, 16:32:16) [GCC egcs−2.91.66 19990314/Linu
x (egcs− on linu
x−i386
Cop
y
right
1991−1995 St
icht
ing Mat
hemat
isch Cent
ru
m, Amst
erdam
>>>
Mo˙emy
t
eraz wy
dawa´ p
olecenia, kt
óre zost
ana˛ wy
konane od razu
. N
ap
iszmy
:
>>> p
rint
"Mamu
siu
, jak t
u
p
i˛knie!"
W
rezu
lt
acie p
owinni´my
ot
rzy
ma´ nap
is " Mamu
siu
, j
ak t
u
p
i˛knie!" . Py
t
hon zazwy
czaj
rob
i
dokładnie t
o, co mu
ka˙emy
.
2.1 Wst˛pnych uwag par˛
Zaczynamy gubi´ przykłady
Chocia˙ w dalszy
m t
ek´cie nadal j
est
zachowana konwencj
a wp
isy
wania p
olece´ b
ezp
o´rednio
int
erp
ret
erowi Py
t
hona, t
o j
ednak ab
y
oszcz˛dzi´ sob
ie czasu
i nerwów mo˙emy
korzy
st
aj
a˛c w edy
t
orze
t
ekst
u
(kt
óry
p
ozwala na zap
is p
lików ASCII) st
worzy
´ p
lik o rozszerzeniu
" p
y
"
−−− np
. " t
escik.p
y
" . W
nim mo˙emy
p
isa´ p
rogram w Py
t
honie, a p
o zap
isaniu
wy
da´ p
olecenie:
p
y
t
hon t
escik.p
y
J
e´li p
op
ełnili´my
t
zw. głu
p
i b
ła˛d −−− lit
erówk˛ −−− t
o wracamy
do edy
cj
i p
liku
i p
op
rawiamy
co t
rzeb
a.
Jak łatwo zauwa˙y´...
112797372.003.png
p
rint
x[zk]*f/u
[ol],we[d[m]]*r
Ok, t
o i t
ak nie j
est
j
eszcze naj
wi ˛ kszy
galimat
ias j
aki mo˙na u
czy
ni´ z kodu
. Py
t
hon p
ozwala Ci
op
isa´ t
akie kawałki własny
mi słowami −−− ab
y
odró˙ni´ Twój
op
is od kodu
p
rogramu
u
˙y
j
znaku
" #"
i p
o nim wp
isz koment
arz. N
p
:
# o rrrany
, w ogóle nie wiem co si˛ t
u
t
aj dzieje
Ale t
ak nap
rawd˛ p
owiniene´ p
isa´ kod t
ak, ab
y
b
y
ł samodoku
ment
u
j
a˛cy
si˛ −−− t
j
. ab
y
fakt
y
cznie b
y
ło
" łat
wo zau
wa˙y
´, ˙e..." nawet
b
ez dodat
kowego koment
arza z Twoj
ej
st
rony
.
A bo mnie si ˛ shift nacisna ˛ ł...
J
eszcze nie wiemy
, j
ak Py
t
hon działa, ale j
u
˙ na wst
˛p
ie:
>>> Q
= 100
>>> p
rint
q
dost
aj
emy
p
i˛kny
b
ła˛d. Dla Py
t
hona st
anowi ró˙nic˛ p
isownia mały
mi i wielkimi lit
erami!
3. Wbudowane typy danych
3.1 Ła´ cuchy
Zaimp
lement
owano w nim wiele cech inny
ch j
˛zy
ków eliminu
j
a˛c zwia˛zane z nimi niedogodno´ci,
dzi˛ki czemu
p
rogramist
a mo˙e sku
p
i´ si˛ na p
racy
a nie na semant
y
ce.
Przy
p
iszmy
t
eraz zmiennej
" a" nap
is " Daj
cie mi kredki" :
>>> a = "Dajcie mi kredki."
>>> p
rint
Id´my
dalej
: ła˛czenie nap
isów:
a
Dajcie mi kredki.
112797372.004.png
>>> a = "Dajcie"
>>> b
= "mi w ko´cu
t
e kredki!!!"
a, b
Dajcie mi w ko´cu
rint
t
e kredki!!!
Mo˙na t
e˙ inaczej
:
>>> a = "No, "
>>> b
= "wreszcie!"
Mo˙na ła˛czy
´ j
eszcze b
ardziej
:
>>> p
rint
"Jarek p
owiedział:", a + b
Jarek p
owiedział: No, Wreszcie!
Co ciekawe, ła´cu
chy
mo˙na nie t
y
lko dodawa´ −− mo˙na j
e równie˙ " mno˙y
´" :
>>> s = "Nie!"
>>> p
rint
Mo˙emy
t
ak˙e w p
rost
y
sp
osób
zamieni´ t
ekst
na liczb
˛ (o ile ma t
o sens):
>>> x = "7"
>>> p
rint
x*3
777
>>> x = eval(x) # ob
liczenie wart
o´ci
>>> p
rint
x*3
21
Gdy
b
y
´my
nie p
racowali w t
ry
b
ie int
erakt
y
wny
m, a zap
isy
wali kod do p
liku
, moglib
y
´my
>>> p
>>> p
a+b
No, wreszcie!
rint
3*s
Nie!Nie!Nie!
112797372.005.png
p
rzekszt
ałcenie zap
isa´ p
ro´ciej
:
x = ‘x‘ # odwrot
ne ap
ost
rofy
, t
o samo co "
eval"
Ciekawy
m element
em Py
t
hona sa˛ t
zw. p
last
erki (ang. slices). Ła´cu
ch znaków zost
aj
e p
oci˛t
y
na "
p
last
erki" , oznaczane nawiasami kwadrat
owy
mi. I t
ak ła´cu
ch [0] oznacza p
ierwszy
znak ła´cu
cha,
ła´cu
ch [1] −− dru
gi, it
d.:
>>> s = "lajkonik"
>>> p
rint
s[0]
l
>>> p
rint
s[1]
a
Prawda, ˙e p
rost
e? Py
t
hon idzie nieco dalej
−− ogólniej
sze " kroj
enie"
p
olega na wskazaniu
dolnego indeksu
i górnego (w t
en sp
osób
dost
aniemy
si˛ do fragment
u
od
wskazanego dolnego indeksu
do górnego, ale b
ez niego ). J
e´li op
u
´cimy
, kt
óry
´ z indeksów, t
o Py
t
hon
p
rzy
j
mie domy
´lnie skraj
ne wart
o´ci (odp
owiednio −− 0 i dłu
go´´ ła´cu
cha).
Ła´cu
ch [:2] odnosi si˛ do p
ierwszy
ch dwóch znaków ła´cu
cha (czy
li znaków o indeksie 0 i 1), za´
ła´cu
ch [2:] −− do wszy
st
kiego op
rócz p
ierwszy
ch dwóch znaków:
>>> p
rint
s[2:]
jkonik
>>> p
rint
s[:2]
la
J
ak mo˙na si˛ domy
´li´, ła´cu
ch [1:5] zwraca od dru
giego do p
ia˛t
ego (od znaku
o indeksie 1 do znaku
o indeksie 4) znaku
ła´cu
cha:
>>> p
rint
s[1:5]
ajko
N
ierzadko zdarza si˛, ˙e ko´cowa p
ozy
cj
a int
eresu
j
e nas w odniesieniu
do dłu
go´ci p
odawanego
112797372.001.png
Zgłoś jeśli naruszono regulamin