Вы когда -нибудь чувствовали, что не кодируете Python настолько продуктивным, как хотите?
Вы когда -нибудь повторяли те же утверждения последовательно, но каждый с небольшими изменениями?
Ну, тогда руководство для вас. Красота Python в том, что он дает нам несколько ценных конструкций, чтобы избежать повторения и Сделайте больше работы с меньшим количеством кода .
Возможно, вы уже знаете такие драгоценные камни, как то, что я называю «трюком с двумя переменными», включающим использование кортежей или трюк «многочисленные значения», который получает много переменных от input ()
Запустив полученную строку через Сплит ("")
, или даже однострочная подгонка, разворачивая массив, используя [::-1]
, но эта статья даст вам еще больше ярлыков для использования.
Переменные номера аргументов
Вы можете знать, что есть некоторые C -функции, такие как printf ()
, которые принимают переменное количество аргументов в зависимости от значения первого. Это легко воспроизвести в Python, используя расширение списка после начальных позиционных аргументов.
def fun1(*a): res=1 for ele in a: res*=ele return res ans=fun1(5,6,9,6,9,6,6) print(ans) # prints `524880`
(из 10 трюков на питоне, которые будут удивлять Ты )
Вот еще один более органический пример, калькулятор, который использует позиционные аргументы:
OP_ADD = 1 OP_SUBTRACT = 2 OP_MULTIPLY = 3 #... def calculator(op, *var): if op == OP_ADD: a, b = *var return a + b elif op == OP_NEG: a = *var return -a #...
Выборочно печатая текст
Вы когда -нибудь писали код, как это?
if foo == True: print("All is well!") else: print("We may have a problem")
Вам не нужно этого делать! Это можно сделать в одной линии, используя конденсированную форму Если
утверждение.
print("All is well!" if foo == True else "We may have a problem")
Сделать таблицу возникновения элемента
Используя count ()
Метод.
li=[1,5,8,6,5,9,6,9,5,6,9,6,5,4,"a","a","b","b","a","a","a"] di={k: li.count(k) for k in li}
Двусторонние сравнения
В Python вы можете цепорить двух менее или больше, чем операторы, чтобы проверить, находится ли число в пределах диапазона. Больше не нужно проверять их отдельно!
if 1 < x < 10: #...
Усовершенствованная трассировка с использованием ICECREAM
Это случилось с большинством из нас. Отладчик уходит в Капут, и он заставляет нас посыпать Распечатать()
Заявления повсюду, чтобы отслеживать выполнение программы, находя ошибку. Теперь видеть – это все, и большинство людей не могут писать хорошие слова, которые помогают кому -то определить, где находится поток управления (я знаю, что не могу).
Вот где Icecream
пригодится. мороженое
это модуль PYPI, который содержит функцию, которую вы можете разместить в любом месте программы, и когда вы называете ее без аргументов, он сообщит вам файл и номер строки, а также функцию, а также текущее время.
Когда ты сделать Назовите это с аргументом, однако, он распечатает имя и значение переменной, которую вы передали. Удобно избегать массового повторения от написания кучу собственной print ()
заявления.
from icecream import ic def hello(user:bool): if user: ic() else: ic() hello(user=True) num1 = 30 num2 = 40 ic(num1) ic(num2)
(от https://link.medium.com/v69x59yfhfb )
Антипаттернс
Сказав все это, убедитесь, что вы избегаете следующих ловушек во время кодирования:
- Использование понимания списка в обширном массиве. Это будет использовать излишне большие объемы памяти.
- Используя
Диапазон (Len (
Для итератора в)) для
петли. Это заставляет вас снова получить длину списка, используяLen ()
Анкет Лучше использоватьenumerate ()
В таких сценариях, чтобы получить как значение, так и индекс. Кроме того, избегайте использованияпотому что я в ...
Синтаксис, если вам нужны индексы в цикле. - Использование квадратных кронштейнов
[]
Чтобы получить доступ к клавишам словаря, если они не могут существовать. Вместо обращенияKeyerror
Исключения (и заманчиво опуститьПопробуйте Группы при доступе к клавишам случайных словаря), используйте
get ()Метод словарей, который вернет
НетЕсли ключа не существует. Получившись
Еслиусловное гораздо легче обрабатывать в коде.
Итак, как вы только что видели, Python – очень богатый язык, который дает вам более простые способы программирования одного и того же. И где функциональность не встроена, обычно есть модуль PYPI, который делает это.
Оригинал: “https://dev.to/zenulabidin/supercharge-your-python-programming-with-these-tricks-457i”