Temat 1: Podstawy języka Python

Wstecz; Ostatnia modyfikacja: 27.02.2015
  • Porównanie "Hello World" w różnych językach.
  • Zalety Pythona: minimalizm (zwięzły kod - wcięcia determinują bloki kodu); duża liczba bibliotek; świetny do małych programów, dość dobry do rozbudowanych programów.
  • Drobna wada Pythona: jest nieco wolniejszy niż C czy C++
  • podstawowe typy danych
  • x=123
    x="aaa"    # tu x zmienia swój typ
    y="bbb"
    z="*"*10
    x>y
    y>x
    x[1]       # dostęp w czasie stałym
    x[10]      # błąd
    1/10
    1./10
    z=3j+4
    z=complex(3,4)
    5**3
    z.real; z.imag
    print("Hello"+" world|||")
    print("Hello"+1) #bład
    round(2.3)
    round(2.5)
    (d,r) = divmod(10,3)
    
  • moduł math
  • import math
    help(math)
    math.e
    math.pi
    math.ceil(2.3)
    math.floor(2.3)
    math.log(64,2)
    
  • listy
  • x=[1,2,3,4]
    len(x)
    help(len)  # dokumentacja funkcji
    y=x
    x[1]=5
    x==y
    x=y[:] # kopiowanie listy
    x[1]=6
    x==y   # rozne listy
    range(10)
    x.append(7)
    x.append("aaa")   # rozszerza istniejącą listę
    x+y               # tworzy nową listę
    sum([x**2 for x in y])
    sum(map(lambda x:x**2, y))
    
  • string'i
  • x="abcdef"
    x.find("b")
    len(x)
    "a" in x
    "x" in x
    y=":".join(["abc","def","ghi"])
    y[2:]
    y[:3]
    y[2:3]
    y[-1]
    y[-2]
    y[::-1]
    y.split(":")
    y.split("f")
    y=y.replace(":","-")
    
  • sortowanie wykorzystując sorted
  • z=["aaz","dddd","cc","b"]
    sorted(z)
    sorted(z, reverse=True)
    sorted(z, key=lambda e:len(e))
    sorted(z, key=lambda e:e[-1])
    
  • przekazywanie parametrów przez linię komend: sys.argv
  • import sys
    
    def hello(name):
    	print("Hello "+ name)
    
    if len(sys.argv) >= 2:
    	hello(sys.argv[1])
    else:
    	print("Podaj parametr!")
    
  • opcjonalnie: funkcje
  • opcjonalnie: mierzenie czasów wykonania
  • import timeit
    def test(N):
      return range(N)[N/2]
    
    import __builtin__
    __builtin__.__dict__.update(locals())
    
    t = timeit.timeit("test(10000)", number=10)
    print(t)
    
  • opcjonalnie: różnice pomiędzy Python 2 i Python 3: range, print
  • Ćw 1: implementacja ciągu Fibonacciego