Kurs języka Python Wykład 2 Plan wykładu: ● Typy proste ● Typy złożone (kolekcje) ● Stringi Typy podstawowe ● ● Typy proste: całkowite, zmiennopozycyjne, logiczne Typy sekwencyjne: napisy, listy, krotki, bufory, zbiory ''Czyste'' liczby całkowite ● Zakres [-sys.maxint – 1, sys.maxint ] ● Operatory: +, - , /, //, %, ** ● Funkcje: abs(x), divmod(x, y) = (x // y, x % y) ● Wynik jest liczbą całkowitą, np. 4 // 3 = 1 Liczby całkowite - konwersja ● ● Brak konwersji (1.0*4) // 3 = 1.0 (1.0*4) / 3 = 1.33333333333333 Funkcje konwersji: float(4) / 3 = 4 / float(3) Długie liczby całkowite >>> 1000 ** 10 1000000000000000000000000000000L >>> long(100) 100L Stałe liczbowe ● ● Całkowite: 0x123, 0x123456789L 0123, 06789L Zmiennopozycyjne: 3.14 10. .002 .271e1 Liczby zespolone ● ● Literały i wyrażenia: 1+3j x + 12j complex(x, 0) Operatory: x.real ** 2+ y.imag**2 Standardowe biblioteki ● math: import math print math.cos(3.14) ● random from random import * print random() Co to za film? Kolekcje ● Listy: [12,3] ● Napisy: “a bc” , 'def', u'Zażółć żółtą jaźń' ● Krotki: (1, “jed en” ), (1, 2+3j, 0x4) ● Słowniki ● Zbiory Operator zawierania 'bc' in 'abcd' 4 not in [2, 3, 5, 7, 11] 'pi' in { 'pi' : 31417, 'e' : 2.71 } Łączenie kolekcji [ 'jeden', 2, 3.0 ] + [ 0x4, 05 ] ('jeden', 2, 3.0) + (0x4, 05) Wielkość kolekcji len( ['jeden', 2, 3.0] ) len ( {'jeden' : 1, 'dwa' : 2 }) len( (1, 2, 3) ) Odwołania do elementów [1, 2, 3][2] = 3 'abcd'[1:3] = 'bc' (1, 2, 3)[1:] = (2, 3) (1,2,3)[:1] = (1, ) 'Python'[:-1] = 'Pytho' 'Python'[-1:] = 'Python'[-1] = 'n' Slicing 'informatyka'[::3] = 'ioak' Poszukiwacz św. Graala Krotki (tuple) brown = 165, 42, 42 NavyBlue = (0,0,128) htmlColor = { 'turquoise' : (64,224,208), 'NavyBlue' : NavyBlue } r, g, b = htmlCol['NavyBlue'] Wariacje nt. iteratorów x = [1,2,3] y = [4,5,6] prod = 0 for i in range(len(x)): prod += x[i] * y[i] Wariacje nt. iteratorów listy prod = 0 for i, v in enumerate(x): prod += v * y[i] print prod I jeszcze raz to samo x = [1,2,3] y = [4,5,6] prod = 0 for a,b in zip(x,y): prod += a*b Wariacje nt. iteratorów słowniki dict = { 'uno' : 1, 'duo' : 2, 'tre': 3 } for key, val in dict.iteritems(): print key, "=", val Stałe napisowe Stałe: 'Ala ma kota' “ Ala ma kota” Unicode: ” Zażółć żółtą jaźń” u” Zażółć żółtą jaźń” Długie '''To jest wielolinijkowy string''' Stringi Stringi są kolekcjami ● 'raw' strings: r'abcd\n' ● Kontynuacja napisu: “ To jest bardzo\n\ długi tekst\n” ● Mnóstwo funkcji bibliotecznych ● Stringi są niemutowalne, tj. 'abc'[1] = 'd' ● Formatowanie stringów Operator %: print “% i + %i = %i\n” % (2, 2, 2+2) dict = { 'dwa' : 2, 'cztery' : 4 } print “% (dwa)s + %(dwa)s = %(cztery)s\n” % dict Na koniec