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

Как написать лучший код Python?

Мы все любим питона. Легко писать и понять, но это не дает нам право злоупотреблять … Помечено Python, начинающим, 100Дасофкодом, производительностью.

Мы все любим питона. Легко писать и понимать, но это не дает нам право злоупотреблять чудесным языком, игнорируя правила и написание кода в негазированном виде. Рассмотрим эту статью как Дзен Питона : Расширенный. Вот 10 способов написать лучший код в Python:

Если бы вас попросили распечатать все элементы в списке вместе со своими указателями и первым, что пришло на ваш разум, это было это –

for i in range(len(arr)):  
    print(i, arr[i])

Тогда вы, мой друг, все еще пишу код C. Позвольте мне представить вас на перечислять Отказ Он индексирует все элементы в вашем списке/строке, и ваш код становится –

for i, j in enumerate(arr):  
    print(i, j)

Ну, теперь это выглядит лучше и больше питон. Как насчет преобразования списка в строку?

# The C way  
string = ''  
for i in arr:  
    string += i

# The Python way  
string = ''.join(arr)

Так же, как Присоединяйтесь к У Python есть множество волшебных ключевых слов, так что не работайте на языке, заставляйте язык работать для вас.

Это как главная книга, которую вы, вероятно, выбрасываете, потому что вы один из крутых детей. Я не прошу вас религиозно следовать за ним, все, что я прошу, это следовать большему количеству из этого, потому что наш отец-основатель сказал, что «код читается намного чаще всего, чем написано», и он был прав.

Вы когда-нибудь смотрите на свой код и удивляетесь? Что, черт возьми, это делает? Почему это там? Почему я существую? Ну, Pep8 это ответ на большинство этих вопросов. Хотя комментарии хорошим способом объяснить ваш код, вам все равно нужно изменить код, и если вы не можете вспомнить, что i , J , Считать И т. Д. Стенд, вы тратите свое ценное время, а также бедный человек, который придется прочитать и изменить ваш код.

«Любой дурак может написать код, который может понять компьютер. Хорошие программисты написать код того, что люди могут понять ».

Предпочитаю Камера Для занятий, Exper_with_underscores для констант, а lower_with_underscores Для переменных, методов и модулей имен. Избегайте функций одним именем, даже при использовании лямбда Отказ В духе этого давайте изменим наш предыдущий код в –

for ind, val in enumerate(arr):  
    print(ind, val)

Если вы еще не знаете об этом или не убеждены, почему вы должны использовать его, позвольте мне дать вам пример

# bad code  
positives = []  
for val in arr:  
    if val >= 0:  
        positives.append(val)

# good code  
positives = [val for val in arr if val >= 0]

Вы можете использовать это для словарей и наборов. Это даже идеально подходит для игры в Golf Golf, будучи читаемым.

Если вы забывчивый человек, как я, Python у вас спина. Вместо явно открытия вашего файла, а затем набрав filename.close.Close.Close. () Каждый раз, просто используйте с

with open('filename.txt', 'w') as filename:  
    filename.write('Hello')
# when you come out of the 'with' block, the file is closed

И итераторы, и генераторы являются мощными инструментами в Python, которые стоит освоить. Итератор возвращает объект итератора, одно значение одновременно, в то время как генераторы дают последовательность значений, будучи эффективными памятью, поскольку они не хранят весь диапазон значений, скорее генерируют один только при просьбу об этом, в отличие от итерации, которые возвращают весь диапазон значений. Это делает генераторы чрезвычайно быстрыми, компактными и простыми.

При использовании генераторов, слепо использовать урожай . Он замораживает состояние генератора и возобновить снова, откуда вы остановились, если вам требуется другое значение. Но не используйте его, только ради не использования вернуть Отказ У обоих есть свое место, и это не нравится использовать доходность Ни обычные для использования вернуть Отказ

Быстрее, более эффективный способ проведения алгебры итератора. От Считать и цикл к группа по и товар это модуль У некоторых удивительных инструментов облегчает вашу жизнь. Если вы хотите все комбинации символов в строке или количестве в списке, вы можете просто записать

from itertools import combinations
names = 'ABC'  
for combination in combinations(names, 2):  
    print(combination)
''' Output -  
    ('A', 'B')  
    ('A', 'C')  
    ('B', 'C')  
'''

Коллекции Модуль предоставляет альтернативы встроенным типам данных, таких как обдумывать , кортеж , так далее. У них есть различные контейнеры, такие как по умолчанию , Упорядоченный , NamedTuple. , Счетчик , Дейко и т. Д. Это действительно эффективно работает для некоторых проблем. Позвольте мне продемонстрировать –

# frequency of all characters in a string in sorted order
from collections import (OrderedDict, Counter)
string = 'abcbcaaba'  
freq = Counter(string)  
freq_sorted = OrderedDict(freq.most_common())
for key, val in freq_sorted.items():  
    print(key, oval)
''' Output -  
    ('a', 4)  
    ('b', 3)  
    ('c', 2)  
'''

Не чрезвычайно используйте классы. Вись на Java и C ++ выглядывает, кто там, чтобы получить меня. Вы можете сохранить все свои модные классы и функции, которые являются рабами на объекты (да, Java, я смотрю на вас), но при использовании Python вы можете просто повторно использовать код с помощью функций и модулей. Вам не нужно создавать классы, когда на нем есть абсолютно Zilch.

Вы действительно продвигались в качестве программиста, когда предпочитаете документы по учебникам или штату. Я абсолютно не имею в виду, что документация – это лучшее существо, и учебники не должны существовать, однако, как только вам удобно с языком, читайте документы чаще, особенно для чего-то такого красивого, как Python Там, где все так прекрасно объяснило, что вы можете прочитать его как история. Вы найдете интересные вещи, чтобы играть с и даже если вы их не используете, это будет забавный ледяной выключатель на вечеринке всех кодеров: P

Фрагменты бонусного кода для счастливых людей, которые остались до конца –

# bad code  
def is_positive(num):  
    if num >= 0:  
        return True  
    else:  
        return False
# good code  
def is_positive(num):  
    return num >= 0

# bad code  
if value == None:  
    # some task
# good code  
if value is None:  
    # some task

# unpacking a list into a variable and another list  
roll, *marks = roll_and_marks

Есть много других способов, которыми мы можем написать больше Pythonic Code, но это были мои два цента на самых основных. Комментарий вниз ниже, если вы согласны со мной, не согласны или просто хотите пожелать мне хороший день. Вы также можете добраться до меня на Twitter Отказ Поздравляю! Теперь вы питонисты.

Оригинал: “https://dev.to/dsckiitdev/how-to-write-better-python-code-4ia4”