Рубрики
Без рубрики

Перегружать программирование Python с этими трюками

Вы когда -нибудь чувствовали, что не кодируете Python настолько продуктивным, как хотите? Вы когда -нибудь fou … Tagged python.

Вы когда -нибудь чувствовали, что не кодируете 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”