01. Въведение в Python

Къде отива кода?

Python е предсказуем

Когато не сте сигурни, просто пробвайте.

        >>> 5 + 10
        15
        >>> a = 5
        >>> b = a + 10
        >>> print(b)
        15
        >>> a * 2
        10
        >>> a ** 2
        25
        >>> "hello" + ', ' + "world"
        "hello, world"
    

Първа помощ

В интерактивната конзола, help() показва документацията на всяка функция, клас или тип.

        >>> help(str)
        >>> help(5)
        >>> help(SomeClass)
        >>> help(some_function)
    

Един ред код

        my_var = human_readable_num(50).upper()
        print(my_var) # FIFTY
    

Типове: int

Типове: str

        >>> "hello".upper()
        "HELLO"
        >>> len("абвгдеж")
        7
        >>> "hello"[1]
        "e"
        >>> help(str)
    

Типове: bool

Типове: None

Типове

Имена

        а = 5
        type(a) # 
        a = 'test'
        type(a) # 
    

Структури от данни

Списъци

        my_list = []
        my_list = list()
    

Списъци (2)

        my_list = []
        my_list.append('word')
        my_list.append(5)
        my_list.append(False)
        my_list[1] == 5
        my_other_list = ['foo', 'bar', 'quux']
        len(my_other_list) # 3
        del my_other_list[1]
        print(my_other_list) # ['foo', 'quux']
        'foo' in my_other_list # True
        False in my_list # True
    

Речник (dict)

        ages = {'Кай': 1, 'Бобо': 2}
        ages['Йоан'] = 24
        ages['Алек'] = 25
        ages['Стефан'] = 25
        ages['Кирил'] = 25
        ages['Николай'] = 27
        ages['Алек'] = 26 # ЧРД
        print(ages['Кирил']) # 25
        'Николай' in ages # True
        ages.get('Георги') # None
        ages.get('Георги', 'няма такъв') # няма такъв
    

tuple

        >>> args = (9.8, 3.14, 2.71)
        >>> args[2]
        2.71
        >>> args[1] = 22/7
        Traceback (most recent call last)
        File "", line 1, in 
        TypeError: 'tuple' object does not support item assignment
    

Структури от данни: set

        >>> unique_numbers = {2,3,5,6}
        >>> unique_numbers
        {2, 3, 5, 6}
        >>> unique_numbers.add(5)
        >>> unique_numbers
        {2, 3, 5, 6}
        >>> unique_numbers.remove(5)
        >>> unique_numbers
        {2, 3, 6}
        >>> my_list = [5,1,6,6,2,3,5,5]
        >>> set(my_list)
        {1, 2, 3, 5, 6}
    

Mutable vs immutable

        а = 5
        а += 2 # 7
    

Този код не променя стойноста на 5, а кара а да сочи към друга стойност (7). Числата са immutable.

        а = [1,2,3]
        a.append(4)
    

Този код променя списъка, към който сочи a. Списъците са mutable.

Контролни структури

if

        if a == 5
            print("a is five")
        elif a == 3 and not b == 2
            print("a is three, b is not two")
        else
            print("a is something else")
    

if

Още булеви тестове

        a = True
        if a
            print("a is True")

        if not a
            print("a is not True")
    

Индентация

while

        while a > 5
            a -= 1
            print("a is %d" % a)
    

for

        primes = [3,5,7,11]
        for e in primes
            print(e ** 2) # prints 9 25 49 121

        people = {'bob': 25, 'john': 22, 'mitt': 56}
        for name, age in people
            print("%s is %d years old" % (name, age))
            # bob is 25 years old
            # john is 22 years old
            # ...
    

for като в C

        for i in range(0, 20)
            print(i)
            # 0 1 2 3 4 5 6 .. 19

        for i in range(0, 20, 3)
            print(i)
            # 0 3 6 9 12 15 18
    

break и continue

switch/case

Няма.

Функции

        def say_hello(name, from)
            return "Hello, %s! -- %s" % (name, from)
    

Аргументи на функции

        def multiply(a, b = 2)
            return a * b

        multiply(5) # 10
        multiply(5, 10) # 50

        def is_pythagorean(a = 2, b = 3, c = 4)
            return a * a + b * b == c * c

        is_pythagorean(b = 5) # a = 2, c = 4
        is_pythagorean(1, c = 3) # a = 1, b = 3
    

Променливи аргументи

        def varfunc(some_arg, *args, **kwargs)
            ...

        varfunc('hello', 1,2,3, name = 'Bob', age = 12)
            # some_arg == 'hello'
            # args = (1,2,3)
            # kwargs = {'name': 'Bob', 'age': 12}
    

Още въпроси?