lw p: lamerskie w prowadzenie do pythona · pdf filea˛cych za wykorzystaniem tego je˛zyka. n...

43
LWP: Lamerskie Wprowadzenie do Pythona Artur Skura <[email protected]> podzie˛kowania dla Wojtka Warczakowskiego <[email protected]> gdzieniegdzie tekst modyfikowal Maciej " MACiAS" Pilichowski <[email protected]> 07.07.2001 szablon DocBook; LyX 1.1.6fix2 Dokument ten przedstawia podstawowe wlas ´ciwos ´ci pote˛z ˙nego je˛zyka, jakim jest Python. Przeznaczony jest dla nie-programistów i hobbystów. Prosze˛ zglaszac ´ wszystkie ble˛dy (zapewne jest ich mnóstwo) i nie irytowac ´ sie˛ lopatologia˛ ;-) 1. Wste˛p Wiele osób pragna˛c nauczyc ´ sie˛ programowac ´ staje przed dylematem: " Od jakiego je˛zyka programowania zacza˛c ´?" . Pytanie jest dos ´c ´ istotne, poniewaz ˙ negatywne nawyki, którymi przesia˛knie pocza˛tkuja˛cy bardzo trudno potem wykorzenic ´. Eric S. Raymond w swoim eseju " Jak zostac ´ hackerem?" proponuje Pythona. Istnieje wiele argumentów przemawiaja˛cych za wykorzystaniem tego je˛zyka. Niektóre aspekty C (np. wskaz ´niki) moga˛ sprawic ´ pocza˛tkuja˛cym wiele trudnos ´ci; utrzymanie porza˛dku w programach napisanych w Perlu staje sie˛ po pewnym czasie bardzo trudne (podobnie jest z Tcl/Tk); Java wymaga zrozumienia pewnych podstaw, a narze˛dzia do niej -- wymagan ´ sprze˛towych wyz ˙szych niz ˙ przecie˛tne... Nauka Pythona jest rozsa˛dnym kompromisem: z jednej strony otrzymujemy je˛zyk, którego stosunkowo latwo moz ˙na sie˛ nauczyc ´, z drugiej zas ´ -- pote˛z ˙ne narze˛dzie uz ˙ywane przez profesjonalistów, w swej podstawowej postaci bardzo uz ˙yteczne wsze˛dzie tam, gdzie np. zachodzi koniecznos ´c ´ wykonywania skomplikowanych operacji na lan ´cuchach znaków. Twórca Pythona, Guido van Rossum, zaleca jego nauke˛ na samym pocza˛tku, przed wprowadzeniem do takich je˛zyków jak Java czy C++. Dzie˛ki temu, po zakon ´czeniu kursu uczen ´ be˛dzie potrafil programowac ´ na przyzwoitym poziomie i rozumial podstawy programowania obiektowego, co znacznie ulatwi mu nauke˛ w/w je˛zyków. 2. Zaczynamy

Upload: hamien

Post on 06-Feb-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • LWP: Lamerskie Wprowadzenie do Pythona

    Artur Skura

    podziekowania dla Woj tka Warczakowskiego

    gdzieniegdzie tekst modyfikowa Maciej " MACiAS" Pilichowski

    07.07.2001

    szablon DocBook; Ly X 1.1.6fix2

    Dokum en t ten p rz ed

    s ta w ia p od

    s ta w ow e w a sciw osci p otezn eg o j

    ez y k

    a , j

    a k

    im j

    es t Py th

    on . Prz ez n a cz on y

    jes t d

    la n iep rog ra m is tw i h

    obby s tw . Pros z e z g a s z a c w s z y s tk

    ie bed

    y (z a p ew n e j

    es t ich

    m n s tw o)

    i

    n ie iry tow a c s ie op a tolog ia ;)

    1. Wstep

    W

    iele osb p ragnac nau czy c sie p rogramowac st

    aj

    e p rzed dy lemat

    em: " Od j

    akiego j

    ezy ka

    p rogramowania zaczac?" . Py tanie j

    est

    dosc ist

    ot

    ne, p oniewaz negat

    y wne nawy ki, kt

    ry mi p rzesiaknie

    p oczatku j

    acy b

    ardzo t

    ru dno p ot

    em wy korzenic.

    Eric S. Ray mond w swoim eseju " J

    ak zost

    ac hackerem?" p rop onu j

    e Py t

    hona. Ist

    niej

    e wiele

    argu mentw p rzemawiaj

    acy ch za wy korzy st

    aniem t

    ego j

    ezy ka. N

    iekt

    re asp ekt

    y C (np . wskazniki)

    moga sp rawic p oczatku j

    acy m wiele t

    ru dnosci; u t

    rzy manie p orzadku w p rogramach nap isany ch w

    Perlu staj

    e sie 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 odstaw, a narzedzia do niej

    wy magan sp rzet

    owy ch wy zszy ch niz p rzeciet

    ne... N

    au ka

    Py thona j

    est

    rozsadny m komp romisem: z j

    ednej

    st

    rony ot

    rzy mu j

    emy j

    ezy k, kt

    rego st

    osu nkowo at

    wo

    mozna sie nau czy c, z dru giej zas p ot

    ezne narzedzie u zy wane p rzez p rofesj

    onalist

    w, w swej

    p odstawowej

    p ost

    aci b

    ardzo u zy t

    eczne wszedzie t

    am, gdzie np . zachodzi koniecznosc wy kony wania

    skomp likowany ch op eracji na ancu chach znakw.

    Twrca Py thona, Gu ido v an Rossu m, zaleca j

    ego nau ke na samy m p oczat

    ku , p rzed wp rowadzeniem do

    takich j

    ezy kw j

    ak J

    av a czy C++. Dzieki t

    emu , p o zakonczeniu ku rsu u czen b

    edzie p ot

    rafi

    p rogramowac na p rzy zwoity m p oziomie i rozu mia p odst

    awy p rogramowania ob

    iekt

    owego, co znacznie

    u atwi mu nau ke w/

    w j

    ezy kw.

    2. Zaczynamy

  • Aby zorient

    owac sie w mozliwosciach j

    ezy ka, u ru chomimy int

    erp ret

    er Py t

    hona:

    $ p y t hon

    Pojawi sie nap is p odob

    ny do p onizszego:

    Py t hon 1. 5. 2 ( #1, Feb 1 2000, 16: 32: 16) [ GCC egcs2. 91. 66 19990314/ Li nu x ( egcs on l i nu xi 386Cop y r i ght 19911995 St i cht i ng Mat hemat i sch Cent r u m, Amst er dam>>>

    Mozemy teraz wy dawac p olecenia, kt

    re zost

    ana wy konane od razu . N

    ap iszmy :

    >>> p r i nt " Mamu si u , j ak t u p i ekni e! "

    W

    rezu ltacie p owinnismy ot

    rzy mac nap is " Mamu siu , j

    ak t

    u p ieknie!" . Py t

    hon zazwy czaj

    rob

    i

    dokadnie to, co mu kazemy .

    2.1 Wstepnych uwag par e

    Zaczynamy gubic przykady

    Chociaz w dalszy m tekscie nadal j

    est

    zachowana konwencj

    a wp isy wania p olecen b

    ezp osrednio

    interp ret

    erowi Py t

    hona, t

    o j

    ednak ab

    y oszczedzic sob

    ie czasu i nerww mozemy korzy st

    aj

    ac w edy t

    orze

    tekst

    u (kt

    ry p ozwala na zap is p likw ASCII) st

    worzy c p lik o rozszerzeniu " p y "

    np . " tescik.p y " . W

    nim mozemy p isac p rogram w Py t

    honie, a p o zap isaniu wy dac p olecenie:

    p y t hon t esci k. p y

    Jesli p op enilismy t

    zw. gu p i b

    ad lit

    erwke t

    o wracamy do edy cj

    i p liku i p op rawiamy co t

    rzeb

    a.

    Jak atwo zauwazyc...

  • p r i nt x[ zk] * f / u [ ol ] , we[ d[ m] ] * r

    Ok, to i t

    ak nie j

    est

    j

    eszcze naj

    wiekszy galimat

    ias j

    aki mozna u czy nic z kodu . Py t

    hon p ozwala Ci

    op isac takie kawaki wasny mi sowami ab

    y odrznic Twj

    op is od kodu p rogramu u zy j

    znaku " #"

    i p o nim wp isz komentarz. N

    p :

    # o r r r any , w ogl e ni e wi em co si e t u t aj dzi ej e

    Ale tak nap rawde p owinienes p isac kod t

    ak, ab

    y b

    y samodoku ment

    u j

    acy sie t

    j

    . ab

    y fakt

    y cznie b

    y o

    " atwo zau wazy c, ze..." nawet

    b

    ez dodat

    kowego koment

    arza z Twoj

    ej

    st

    rony .

    A bo mnie sie shift nacisna...

    Jeszcze nie wiemy , j

    ak Py t

    hon dziaa, ale j

    u z na wst

    ep ie:

    >>> Q

    = 100>>> p r i nt q

    dostaj

    emy p iekny b

    ad. Dla Py t

    hona st

    anowi rznice p isownia may mi i wielkimi lit

    erami!

    3. Wbudowane typy danych

    3.1 ancuchy

    Zaimp lementowano w nim wiele cech inny ch j

    ezy kw eliminu j

    ac zwiazane z nimi niedogodnosci,

    dzieki czemu p rogramista moze sku p ic sie na p racy a nie na semant

    y ce.

    Przy p iszmy teraz zmiennej

    " a" nap is " Daj

    cie mi kredki" :

    >>> a = " Daj c i e mi kr edki . ">>> p r i nt aDaj ci e mi kr edki .

    Idzmy dalej: aczenie nap isw:

  • >>> a = " Daj c i e">>> b

    = " mi w koncu t e kr edki ! ! ! "

    >>> p r i nt a, b

    Daj ci e mi w koncu t e kr edki ! ! !

    Mozna tez inaczej

    :

    >>> a = " No, ">>> b

    = " wr eszci e! "

    >>> p r i nt a+b

    No, wr eszci e!

    Mozna aczy c jeszcze b

    ardziej

    :

    >>> p r i nt " Jar ek p owi edzi a : " , a + b

    Jar ek p owi edzi a : No, Wr eszci e!

    Co ciekawe, ancu chy mozna nie ty lko dodawac mozna j

    e rwniez " mnozy c" :

    >>> s = " Ni e! ">>> p r i nt 3* sNi e! Ni e! Ni e!

    Mozemy takze w p rost

    y sp osb

    zamienic t

    ekst

    na liczb

    e (o ile ma t

    o sens):

    >>> x = " 7">>> p r i nt x* 3777>>> x = eval ( x) # ob

    l i czeni e war t

    osci

    >>> p r i nt x* 321

    Gdy by smy nie p racowali w t

    ry b

    ie int

    erakt

    y wny m, a zap isy wali kod do p liku , moglib

    y smy

  • p rzeksztacenie zap isac p rosciej

    :

    x = x # odwr ot

    ne ap ost r of y , t o samo co "eval "

    Ciekawy m elementem Py t

    hona sa t

    zw. p last

    erki (ang. slices). ancu ch znakw zost

    aj

    e p ociet

    y na "

    p lasterki" , oznaczane nawiasami kwadrat

    owy mi. I t

    ak ancu ch [0] oznacza p ierwszy znak ancu cha,

    ancu ch [1] dru gi, itd.:

    >>> s = " l aj koni k">>> p r i nt s[ 0]l>>> p r i nt s[ 1]a

    Prawda, ze p roste? Py t

    hon idzie nieco dalej

    oglniej

    sze " kroj

    enie"

    p olega na wskazaniu dolnego indeksu i grnego (w ten sp osb

    dost

    aniemy sie do fragment

    u od

    wskazanego dolnego indeksu do grnego, ale b

    ez niego). Jesli op u scimy , kt

    ry s z indeksw, t

    o Py t

    hon

    p rzy jmie domy slnie skraj

    ne wart

    osci (odp owiednio 0 i du gosc ancu cha).

    ancu ch [:2] odnosi sie do p ierwszy ch dwch znakw ancu cha (czy li znakw o indeksie 0 i 1), zasancu ch [2:] do wszy st

    kiego op rcz p ierwszy ch dwch znakw:

    >>> p r i nt s[ 2: ]j koni k>>> p r i nt s[ : 2]l a

    Jak mozna sie domy slic, ancu ch [1:5] zwraca od dru giego do p iat

    ego (od znaku o indeksie 1 do znaku

    o indeksie 4) znaku ancu cha:

    >>> p r i nt s[ 1: 5]aj ko

    N

    ierzadko zdarza sie, ze koncowa p ozy cja int

    eresu j

    e nas w odniesieniu do du gosci p odawanego

  • ancu cha, np .:

    >>> p r i nt s[ : l en( s) 1]l aj koni

    Czy li dostalismy nap is b

    ez ost

    at

    niego znaku . Ale Py t

    hon u p raszcza nam zy cie j

    eszcze b

    ardziej

    indeksowac mozna z p ominieciem obliczenia du gosci, p odaj

    ac sama (u j

    emna) wart

    osc. Czy li:

    >>> p r i nt s[ : 1]l aj koni

    Czy to j

    asne? Pop rosilismy Py t

    hona o p odanie ancu cha p oczawszy od znaku o indeksie 0 (p ierwszego)

    do p rzedostat

    niego.

    Pisanie pod lupa

    Powy zej u zy walismy p olecenia p rint

    z rozmait

    y mi op erat

    orami. Teraz op iszemy j

    e nieco dokadniej

    .

    p r i nt " al a ma kot a"

    wy p isze p odany tekst

    i wst

    awi znak [ent

    er]. J

    ezeli chcemy t

    ego u niknac mu simy p ost

    awic na samy m

    koncu p odanego tekst

    u znak p rzecinka:

    p r i nt " al a ma kot a" ,

    A teraz sp rb

    u j

    my w t

    en sp osb

    :

    p r i nt " al a" , " ma" , " kot a"

    Jak p owinienes zau wazy c t

    ekst

    zost

    anie wy dru kowany ze sp acj

    ami p omiedzy wy razami. Przecinek

    bowiem miedzy p odany mi nap isami wst

    awia odst

    ep . A j

    esli chciel