43
Programavimo kalba Python tryliktoji paskaita Marius Gedminas <[email protected]> http://mg.b4net.lt/python/ 2006 ruduo

Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Embed Size (px)

Citation preview

Page 1: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Programavimo kalba

Pythontryliktoji paskaita

Marius Gedminas<[email protected]>

http://mg.b4net.lt/python/

2006 ruduo

Page 2: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Kartojimas

arba

„Ką reikia žinoti per įskaitą“

Page 3: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Puiki proga užduoti klausimus

Page 4: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 5: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 6: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

sakinys = eilutė(išskyrus skliaustus, ; ir \)

priskyrimo sakinys a = b a, b = c, d a += b

sakinys != reiškinys

print, return, raise, import, assert, del

if, for, while, try, def, class

blokas - sakinių seka, pastumta į dešinę

Page 7: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

operatoriai+x -x ~x

x**yx*y x/y x%y

x+y x-yx<<y x>>y

x&yx^yx|y

x<y x<=y x==y x>=y x>y x!=y x in y x is ynot x

x and yx or y

Page 8: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

literalai123 0xFF 0377

12.5 0.32 2.45e-121.0+3.5j -2j

'abc' "abc" '''abc''' """abc"""u'abc\u010D' r'abc\(.\)'

True False None[a, b, c] []

{x: a, y: b, z: c} {}(a, b, c) (a,) ()

Page 9: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

sąrašaisome_list[3]some_list[-3]some_list[3:5]some_list[1:-1]

some_list[1:-1:2]some_list[::-1]

[x ** 2 for x in some_list][-x for x in some_list if x < 0]

[(x, y) for x in one_list for y in other_list][(x, y) for x in one_list for y in other_list if x > y]

Page 10: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 11: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

str unicodeint long

float complexbool

tuple list dict setfile

Page 12: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Konstruktorius = tipų keitimas

(str -> int ir atvirkščiai)

Page 13: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Daug naudingų metodų

Page 14: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

strlower upper capitalize title

center ljust rjust strip lstrip rstripcount find rfind index rindex

endswith startswithdecode encode expandtabs

isalpha isalnum isdigit islower isupper istitleisspace

join split splitlines replace

Page 15: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

listappend extend insert

count indexremove popreverse sort

value in a_lista_list[i:j] = some_other_list

del a_list[i:j]

Page 16: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

dictkeys values items

has_key get setdefaultpop popitemclear update

copy fromkeys

key in a_dictfoo = a_dict[key]a_dict[key] = foo

Page 17: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

fileread readline readlines

write writelinesflush close

tell seek truncateisatty

print >> f, 'lia lia'for line in f: ...

Page 18: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 19: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Vidinės funkcijos

abs chr unichr ordlen range

divmod powmin max sum zipdir getattr hasattr

id hashisinstance issubclass

reprraw_input input eval

Page 20: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Kiti moduliai

os sys glob math cmath decimal random setsdatetime time optparse getopt StringIO

cStringIO pickle cPickle difflib textwrap pprintstring re struct curses tempfile shutil locale

gettext logging threading Queue zipfile readlinecsv email inspect linecache traceback array

itertools fileinput subprocess socket pdb profilecgi urllib httplib imaplib smtplib xmlrpclib xml

audioop md5 sha Tkinter distutils unittestdoctest ConfigParser

Page 21: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 22: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

try ... except

try ... finally

raise

Page 23: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

ExceptionKeyError IndexError

OSError IOErrorTypeError ValueError

NameError AttributeErrorSyntaxError ImportError

ZeroDivisionErrorRuntimeError

KeyboardInterrupt

Page 24: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 25: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Objektas yra bet kas, ką galima

priskirti kintamajam

Page 26: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Viskas yra objektai

(net funkcijos, klasės, moduliai)

Page 27: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Du vardai gali rodyti į tą patį objektą

Page 28: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 29: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Lokalūs ir globalūs kintamieji

Page 30: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

Funkcijos funkcijų viduje

Page 31: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 32: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

unittest

doctest

Page 33: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 34: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

for x in anything: ...

Page 35: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

__iter__

next

Page 36: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

yield

Page 37: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 38: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

os.system

os.popen

popen2

subprocess

Page 39: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

threading

Queue

Page 40: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris

Page 41: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

pdb

import pdb; pdb.set_trace()

Page 42: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

profile

Page 43: Programavimo kalba Python— Duomenų tipai Standartinė biblioteka Išskirtinės situacijos Objektai, vardai ir nuorodos Vardų veikimo zonos Automatizuotas kodo testavimas ... sakinys

SintaksėDuomenų tipai

Standartinė bibliotekaIšskirtinės situacijos

Objektai, vardai ir nuorodosVardų veikimo zonos

Automatizuotas kodo testavimasIteratoriai ir generatoriai

Procesai ir gijosDebugeris ir profaileris