Множества
Множество (set) представляют еще один вид набора, который хранит только уникальные элементы. Для определения множества используются фигурные скобки, в которых перечисляются элементы, смотрим 1 часть кода:
Обратите внимание, что несмотря на то, что функция print вывела один раз элемент "Tom", хотя в определении множества этот элемент содержится два раза. Все потому что множество содержит только уникальные значения.
Также для определения множества может применяться функция set(), в которую передается список или кортеж элементов, вторая часть кода:
🐍 Укус питона // 💬 Чат // #теория #множества
Множество (set) представляют еще один вид набора, который хранит только уникальные элементы. Для определения множества используются фигурные скобки, в которых перечисляются элементы, смотрим 1 часть кода:
Обратите внимание, что несмотря на то, что функция print вывела один раз элемент "Tom", хотя в определении множества этот элемент содержится два раза. Все потому что множество содержит только уникальные значения.
Также для определения множества может применяться функция set(), в которую передается список или кортеж элементов, вторая часть кода:
🐍 Укус питона // 💬 Чат // #теория #множества
Что выведет этот код?
Anonymous Quiz
8%
[‘What’, ‘will’, ‘have’, ‘so’, ‘will’]
55%
Wh t will h ve so will
4%
What will have so will
33%
[‘Wh’, ‘t will h’, ‘ve so will’]
Получение результата функции
Подобным образом можно получить результат функции и при необходимости изменить его, смотрим:
Здесь определена функция sum(), которая возвращает сумму чисел. В декораторе check проверяем результат функции и для простоты, если он меньше нуля, то возвращаем 0.
🐍 Укус питона // 💬 Чат // #теория #декораторы #функции
Подобным образом можно получить результат функции и при необходимости изменить его, смотрим:
Здесь определена функция sum(), которая возвращает сумму чисел. В декораторе check проверяем результат функции и для простоты, если он меньше нуля, то возвращаем 0.
🐍 Укус питона // 💬 Чат // #теория #декораторы #функции
Что выведет этот код?
Anonymous Quiz
7%
c, b and a abracad0
16%
a, b and c abracadabra
7%
a, b and c abracadcad
70%
c, b and a abracadabra
Блок finally
При обработке исключений также можно использовать необязательный блок finally. Отличительной особенностью этого блока является то, что он выполняется вне зависимости, было ли сгенерировано исключение, смотрим код:
Как правило, блок finally применяется для освобождения используемых ресурсов, например, для закрытия файлов.
🐍 Укус питона // 💬 Чат // #теория #исключения
При обработке исключений также можно использовать необязательный блок finally. Отличительной особенностью этого блока является то, что он выполняется вне зависимости, было ли сгенерировано исключение, смотрим код:
Как правило, блок finally применяется для освобождения используемых ресурсов, например, для закрытия файлов.
🐍 Укус питона // 💬 Чат // #теория #исключения
Деструктуризация в циклах
Циклы в Python позволяют разложить коллекции на отдельные составляющие, первая часть кода:
Здесь мы перебираем список кортежей people. Каждый кортеж состоит из трех элементов, соответственно при переборе мы можем их передать в переменные name, age и company.
Другой пример - функция enumerate(). Она принимает в качестве параметра коллекцию, создает для каждого элемента кортеж и возвращает набор из подобных кортежей. Каждый кортеж содержит индекс, который увеличивается с каждой итерацией:
🐍 Укус питона // 💬 Чат // #теория #циклы #деструктуризация #распаковка
Циклы в Python позволяют разложить коллекции на отдельные составляющие, первая часть кода:
Здесь мы перебираем список кортежей people. Каждый кортеж состоит из трех элементов, соответственно при переборе мы можем их передать в переменные name, age и company.
Другой пример - функция enumerate(). Она принимает в качестве параметра коллекцию, создает для каждого элемента кортеж и возвращает набор из подобных кортежей. Каждый кортеж содержит индекс, который увеличивается с каждой итерацией:
🐍 Укус питона // 💬 Чат // #теория #циклы #деструктуризация #распаковка
Источник данных iterable
В качестве источника данных iterable может использоваться любой перебираемый объект, например, другой список, словарь и т.д. Например, функция range() возвращает все числя нуля до указанного порога не включая, смотрим:
Нередко данная конструкция применяется, чтобы создать из словаря список. Например, выберем из словаря все ключи во второй части кода:
🐍 Укус питона // 💬 Чат // #теория #list #iterable #данные
В качестве источника данных iterable может использоваться любой перебираемый объект, например, другой список, словарь и т.д. Например, функция range() возвращает все числя нуля до указанного порога не включая, смотрим:
Нередко данная конструкция применяется, чтобы создать из словаря список. Например, выберем из словаря все ключи во второй части кода:
🐍 Укус питона // 💬 Чат // #теория #list #iterable #данные
Операции сдвига
Операции сдвига также производятся над разрядами чисел. Сдвиг может происходить вправо и влево.
• x<<y - сдвигает число x влево на y разрядов. Например, 4<<1 сдвигает число 4 (которое в двоичном представлении 100) на один разряд влево, то есть в итоге получается 1000 или число 8 в десятичном представлении.
• x>>y - сдвигает число x вправо на y разрядов. Например, 16>>1 сдвигает число 16 (которое в двоичном представлении 10000) на один разряд вправо, то есть в итоге получается 1000 или число 8 в десятичном представлении.
Таким образом, если исходное число, которое надо сдвинуть в ту или другую строну, делится на два, то фактически получается умножение или деление на два. Поэтому подобную операцию можно использовать вместо непосредственного умножения или деления на два. Например, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #операции #числа
Операции сдвига также производятся над разрядами чисел. Сдвиг может происходить вправо и влево.
• x<<y - сдвигает число x влево на y разрядов. Например, 4<<1 сдвигает число 4 (которое в двоичном представлении 100) на один разряд влево, то есть в итоге получается 1000 или число 8 в десятичном представлении.
• x>>y - сдвигает число x вправо на y разрядов. Например, 16>>1 сдвигает число 16 (которое в двоичном представлении 10000) на один разряд вправо, то есть в итоге получается 1000 или число 8 в десятичном представлении.
Таким образом, если исходное число, которое надо сдвинуть в ту или другую строну, делится на два, то фактически получается умножение или деление на два. Поэтому подобную операцию можно использовать вместо непосредственного умножения или деления на два. Например, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #операции #числа
Вставка значений в строку
Python позволяет встравивать в строку значения других переменных. Для этого внутри строки переменные размещаются в фигурных скобках {}, а перед всей строкой ставится символ f, смотрим пример:
В данном случае на место {userName} будет вставляться значение переменной userName. Аналогично на вместо {userAge} будет вставляться значение переменной userAge.
🐍 Укус питона // 💬 Чат // #теория #данные #переменные
Python позволяет встравивать в строку значения других переменных. Для этого внутри строки переменные размещаются в фигурных скобках {}, а перед всей строкой ставится символ f, смотрим пример:
В данном случае на место {userName} будет вставляться значение переменной userName. Аналогично на вместо {userAge} будет вставляться значение переменной userAge.
🐍 Укус питона // 💬 Чат // #теория #данные #переменные
Что выведет этот код?
Anonymous Quiz
29%
[6.222e-04, ‘aboy’, True, 641]
16%
[6.2202, ‘aboy’, 1, 641]
46%
TypeError
9%
[6.2202, ‘aboy’, False, 87]