Basic Python
Основи Python
Корисна інформація
list(xrange()) == range() --> У Python3 range є xrange у Python2 (це не список, а генератор) Відмінність між Tuple та List полягає в тому, що позиція значення в кортежі має значення, а списки - це просто упорядковані значення. У кортежах є структури, а у списків - порядок.
Основні операції
Для піднесення числа використовується: 3**2 (не 3^2) Якщо ви виконуєте 2/3, воно повертає 1, оскільки ви ділите два цілих числа (integers). Якщо ви хочете десяткові числа, вам слід ділити числа з плаваючою комою (2.0/3.0). i >= j i <= j i == j i != j a and b a or b not a float(a) int(a) str(d) ord("A") = 65 chr(65) = 'A' hex(100) = '0x64' hex(100)[2:] = '64' isinstance(1, int) = True "a b".split(" ") = ['a', 'b'] " ".join(['a', 'b']) = "a b" "abcdef".startswith("ab") = True "abcdef".contains("abc") = True "abc\n".strip() = "abc" "apbc".replace("p","") = "abc" dir(str) = Список усіх доступних методів help(str) = Визначення класу str "a".upper() = "A" "A".lower() = "a" "abc".capitalize() = "Abc" sum([1,2,3]) = 6 sorted([1,43,5,3,21,4])
Об'єднання символів 3 * ’a’ = ‘aaa’ ‘a’ + ‘b’ = ‘ab’ ‘a’ + str(3) = ‘a3’ [1,2,3]+[4,5]=[1,2,3,4,5]
Частини списку ‘abc’[0] = ‘a’ 'abc’[-1] = ‘c’ 'abc’[1:3] = ‘bc’ від [1] до [2] "qwertyuiop"[:-1] = 'qwertyuio'
Коментарі # Коментар у один рядок """ Кілька рядків коментаря Ще один """
Цикли
Кортежі
t1 = (1, '2', 'three') t2 = (5, 6) t3 = t1 + t2 = (1, '2', 'three', 5, 6) (4,) = Одиночний d = () порожній кортеж d += (4,) --> Додавання до кортежу НЕ МОЖЛИВО! --> t1[1] == 'Нове значення' list(t2) = [5, 6] --> З кортежу у список
Список (масив)
d = [] порожній a = [1, 2, 3] b = [4, 5] a + b = [1, 2, 3, 4, 5] b.append(6) = [4, 5, 6] tuple(a) = (1, 2, 3) --> Зі списку у кортеж
Словник
d = {} порожній monthNumbers={1:'Jan', 2: 'feb','feb':2}—> monthNumbers ->{1:'Jan', 2: 'feb','feb':2} monthNumbers[1] = 'Jan' monthNumbers['feb'] = 2 list(monthNumbers) = [1, 2, 'feb'] monthNumbers.values() = ['Jan', 'feb', 2] keys = [k for k in monthNumbers] a={'9':9} monthNumbers.update(a) = {'9':9, 1:'Jan', 2: 'feb','feb':2} mN = monthNumbers.copy() #Незалежна копія monthNumbers.get('key',0) #Перевірка наявності ключа, Повертає значення monthNumbers["key"] або 0, якщо його немає
Множини
У множинах немає повторень myset = set(['a', 'b']) = {'a', 'b'} myset.add('c') = {'a', 'b', 'c'} myset.add('a') = {'a', 'b', 'c'} #Без повторень myset.update([1, 2, 3]) = set(['a', 1, 2, 'b', 'c', 3]) myset.discard(10) #Якщо присутній, видалити, якщо нічого myset.remove(10) #Якщо присутній, видалити, якщо нічого, викликати виняток myset2 = set([1, 2, 3, 4]) myset.union(myset2) #Значення myset АБО myset2 myset.intersection(myset2) #Значення в myset ТА myset2 myset.difference(myset2) #Значення в myset, але не в myset2 myset.symmetric_difference(myset2) #Значення, які не в myset ТА myset2 (не в обох) myset.pop() #Отримати перший елемент множини та видалити його myset.intersection_update(myset2) #myset = Елементи як в myset, так і в myset2 myset.difference_update(myset2) #myset = Елементи в myset, але не в myset2 myset.symmetric_difference_update(myset2) #myset = Елементи, які не в обох
Класи
Метод в __It__ буде використовуватися для порівняння об'єкта цього класу з іншим, щоб визначити, чи є він більшим.
map, zip, filter, lambda, sorted та однорядкові вирази
Map це як: [f(x) для x в ітерабельному] --> map(tutple,[a,b]) = [(1,2,3),(4,5)] m = map(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) --> [False, False, True, False, False, True, False, False, True]
zip зупиняється, коли коротший з foo або bar зупиняється:
Лямбда використовується для визначення функції (lambda x,y: x+y)(5,3) = 8 --> Використання лямбди як простої функції sorted(range(-5,6), key=lambda x: x** 2) = [0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5] --> Використання лямбди для сортування списку m = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) = [3, 6, 9] --> Використання лямбди для фільтрації reduce (lambda x,y: x*y, [1,2,3,4]) = 24
mult1 = [x для x в [1, 2, 3, 4, 5, 6, 7, 8, 9] якщо x%3 == 0 ]
Винятки
Assert()
Якщо умова є хибною, рядок буде надрукований на екрані
Генератори, yield
Генератор, замість повернення чогось, "подає" щось. Коли ви звертаєтеся до нього, він "повертає" перше згенероване значення, після цього ви можете звертатися до нього знову, і він поверне наступне згенероване значення. Таким чином, всі значення не генеруються одночасно, і використання цього може заощадити багато пам'яті порівняно зі списком усіх значень.
Якщо ви запустите його, ви побачите щось схоже на наступне:
Last updated