PRO_PYTHON_CODE Telegram 1094
Подборка полезных фишек с кодом.

Проверка наличия элемента в множестве
Мы можем проверить, находится ли тот или иной элемент в списке с помощью оператора in:

large_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

if 5 in large_list:
print("5 найден в списке.")
else:
print("5 не найден в списке.")

То же применимо и для множеств (set):

large_set = set(large_list)

if 5 in large_set:
print("5 найден в множестве.")
else:
print("5 не найден в множестве.")

Автоматическое добавление ключа словарю
Если создать словарь средствами collections.defaultdict, добавить хотя бы один элемент, а затем обратиться к несуществующему ключу:

from collections import defaultdict

my_dict = defaultdict(int)

my_dict['apple'] = 3
my_dict ['banana' ] = 2
print(my_dict['orange'])
print(my_dict)


то интерпретатор самостоятельно добавит новый элемент:

... 0
... defaultdict(<class 'int'>, {'apple': 3, 'banana': 2, 'orange': 0})


try / except + else + finally
Мастхэв для начинающих питонистов — пара try / except, обработчик исключений. Шикарным дополнением к такому блоку является, на мой взгляд, else: он опишет поведение программы на случай других ошибок, которых может быть немало!

Более того, добавив finally, вы выполните завершающие работы, например, скомандуете выслать уведомление:

try:
>>> result = 10 / 2
>>> except ZeroDivisionError:
>>> print( "Ошибка: деление на ноль невозможно.")
>>> else:
>>> print("Результат:", result)
>>> finally:
>>> print( "Программа выполнена.")
... Результат: 5.0

... Программа выполнена.

Проверка существования переменной с помощью «моржового» оператора
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора := (Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else:

>>> if name == '__main__':
>>> name1, name2 = '', ''
>>>
>>> if name := name1 or name2:
>>> print(name1)
>>> print('Успешно!')
>>> else:
>>> print('Имя не найдено...')... Имя не найдено...

Во втором случае заполнена только одна из переменных, но программа отработает без ошибки:

>>> if name == '__main__':
>>> name1, name2 = 'Сергей', ''
>>>
>>> if name := name1 or name2:
>>> print(name1)
>>> print('Успешно!')
>>> else:
>>> print('Имя не найдено...')
... Сергей
... Успешно!

Оператор match для проверки типа
Теперь освоение новых библиотек у вас точно ускорится.


Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных:

>>> var = 1
>>>
>>> match var:
>>> case str():
>>> print('Строковый тип')
>>> case bool():
>>> print('Булевый тип')
>>> case float():
>>> print('Число с плавающей запятой')
>>> case int():
>>> print('Целочисленный тип')
>>> case list():
>>> print('Список')
>>> case None:
>>> print("None")
>>> case _:
>>> print('Другой тип данных')... Целочисленный тип

Встроенные функции попытаются привести к своему значению переменную. Но если положить в var единицу, как примере выше, то мы минуем float().

Чтобы программа не упала, стоит заложить дальнейшую обработку var только в подходящие функции-наследнице кейсы.
Включение генераторов, сетов
В предыдущей статье с фишками я рассказывала, что есть эффективный способ генерировать списки — «списковое включение» (List Comprehension):

names = ['Данил','Михаил', 'Оля']
[x for x in names if"a"in x]] # Выберет имена, где есть "а"... ['Данил', 'Михаил']

Оказывается, этому поддаются и другие составные типы — генераторы и сеты.

>>> s = {s*2 for s in range(10)} # Перемножит числа 1-10 на два
>>> print(s)
... {0, 2, 4, 6, 8, 10, 12, 14, 16, 18}


@pro_python_code
👍105🔥4



tgoop.com/pro_python_code/1094
Create:
Last Update:

Подборка полезных фишек с кодом.

Проверка наличия элемента в множестве
Мы можем проверить, находится ли тот или иной элемент в списке с помощью оператора in:

large_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

if 5 in large_list:
print("5 найден в списке.")
else:
print("5 не найден в списке.")

То же применимо и для множеств (set):

large_set = set(large_list)

if 5 in large_set:
print("5 найден в множестве.")
else:
print("5 не найден в множестве.")

Автоматическое добавление ключа словарю
Если создать словарь средствами collections.defaultdict, добавить хотя бы один элемент, а затем обратиться к несуществующему ключу:

from collections import defaultdict

my_dict = defaultdict(int)

my_dict['apple'] = 3
my_dict ['banana' ] = 2
print(my_dict['orange'])
print(my_dict)


то интерпретатор самостоятельно добавит новый элемент:

... 0
... defaultdict(<class 'int'>, {'apple': 3, 'banana': 2, 'orange': 0})


try / except + else + finally
Мастхэв для начинающих питонистов — пара try / except, обработчик исключений. Шикарным дополнением к такому блоку является, на мой взгляд, else: он опишет поведение программы на случай других ошибок, которых может быть немало!

Более того, добавив finally, вы выполните завершающие работы, например, скомандуете выслать уведомление:

try:
>>> result = 10 / 2
>>> except ZeroDivisionError:
>>> print( "Ошибка: деление на ноль невозможно.")
>>> else:
>>> print("Результат:", result)
>>> finally:
>>> print( "Программа выполнена.")
... Результат: 5.0

... Программа выполнена.

Проверка существования переменной с помощью «моржового» оператора
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора := (Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else:

>>> if name == '__main__':
>>> name1, name2 = '', ''
>>>
>>> if name := name1 or name2:
>>> print(name1)
>>> print('Успешно!')
>>> else:
>>> print('Имя не найдено...')... Имя не найдено...

Во втором случае заполнена только одна из переменных, но программа отработает без ошибки:

>>> if name == '__main__':
>>> name1, name2 = 'Сергей', ''
>>>
>>> if name := name1 or name2:
>>> print(name1)
>>> print('Успешно!')
>>> else:
>>> print('Имя не найдено...')
... Сергей
... Успешно!

Оператор match для проверки типа
Теперь освоение новых библиотек у вас точно ускорится.


Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных:

>>> var = 1
>>>
>>> match var:
>>> case str():
>>> print('Строковый тип')
>>> case bool():
>>> print('Булевый тип')
>>> case float():
>>> print('Число с плавающей запятой')
>>> case int():
>>> print('Целочисленный тип')
>>> case list():
>>> print('Список')
>>> case None:
>>> print("None")
>>> case _:
>>> print('Другой тип данных')... Целочисленный тип

Встроенные функции попытаются привести к своему значению переменную. Но если положить в var единицу, как примере выше, то мы минуем float().

Чтобы программа не упала, стоит заложить дальнейшую обработку var только в подходящие функции-наследнице кейсы.
Включение генераторов, сетов
В предыдущей статье с фишками я рассказывала, что есть эффективный способ генерировать списки — «списковое включение» (List Comprehension):

names = ['Данил','Михаил', 'Оля']
[x for x in names if"a"in x]] # Выберет имена, где есть "а"... ['Данил', 'Михаил']

Оказывается, этому поддаются и другие составные типы — генераторы и сеты.

>>> s = {s*2 for s in range(10)} # Перемножит числа 1-10 на два
>>> print(s)
... {0, 2, 4, 6, 8, 10, 12, 14, 16, 18}


@pro_python_code

BY Python RU


Share with your friend now:
tgoop.com/pro_python_code/1094

View MORE
Open in Telegram


Telegram News

Date: |

In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020. "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart.
from us


Telegram Python RU
FROM American