Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Написать работающий код не всегда достаточно; вы должны попытаться написать хорошо структурированный код, который также легко понять. Чистый код облегчит вам — и другим — поддержку вашего программного обеспечения.

Python имеет множество возможностей и функций, которые помогут вам писать более чистый код. Вот некоторые из лучших.

1. Автоматизируйте закрытие ресурсов с помощью контекстного менеджера

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

Этот код открывает файл, а затем закрывает его вручную:

файл = открыть('test.txt', 'р')
file_contents = файл.чтение()
файл.закрыть()
слова = file_contents.split(' ')
число_слов = длина (слов)
печать (слово_счетчик)
instagram viewer

Вы можете автоматизировать закрытие файла с помощью контекстного менеджера. Контекстные менеджеры управляют ресурсами за вас, поэтому вам не нужно помнить об управлении ими вручную. Использовать с оператор для создания контекста для управления ресурсом:

с открыть('test.txt', 'р') как файл:
file_contents = файл.чтение()
слова = file_contents.split(' ')
число_слов = длина (слов)
печать (слово_счетчик)

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

2. Написание более чистых условных операторов

Вы можете столкнуться с тем, что пишете много ненужного кода при работе с операторы if-else. В Python есть тернарные операторы, которые помогут вам писать более компактные операторы. В приведенном ниже блоке кода показан обычный оператор if-else.

условие = Истинный

если состояние:
х = 1
еще:
х = 0

распечатать (х)

Вы можете переписать этот код, используя тернарный оператор, который позволяет записать условие в одну строку кода.

условие = Истинный
х = 1если состояние еще0
распечатать (х)

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

3. Отслеживание элементов с помощью функции перечисления

При переборе списка Python вы можете получить доступ к индексу текущего элемента двумя способами. Один из способов — использовать традиционный цикл for. Это прекрасно работает, но код не так чист, как мог бы быть. Это также требует, чтобы вы инициализировали индекс вручную.

автомобили = [«Бугатти», "Мерседес", "Тойота"]
индекс = 0

для машина в легковые автомобили:
печать (индекс, машина)
индекс += 1

Другой способ — использовать встроенную функцию перечисления Python. Это позволит вам получить доступ к индексу и соответствующему значению в списке во время цикла.

автомобили = [«Бугатти», "Мерседес", "Тойота"]

для указатель, машина в перечислить (автомобили):
печать (индекс, машина)

Теперь вам не нужно отслеживать индекс вручную.

4. Перебор нескольких списков с помощью функции Zip

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

english_names = ['еда', 'вода', 'машина']
испанские_имена = [алименто, 'агуа', 'авто']

для индекс, имя в перечислить (english_names):
испанский = испанские_имена [индекс]
Распечатать (ж' {имя} на испанском {испанский язык}')

Это прекрасно работает, но вам придется написать много ненужного кода, если количество списков увеличится. Чтобы написать более чистый код, вы можете использовать функцию zip и передать ей имена вашего списка.

english_names = ['еда', 'вода', 'машина']
испанские_имена = [алименто, 'агуа', 'авто']

для английский испанский в zip (английские_имена, испанские_имена):
Распечатать(ж' {английский} на испанском {испанский язык}')

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

При вводе конфиденциальной информации ввод не должен отображаться в виде обычного текста на экране. Обычный способ ввода данных в Python — использовать функцию ввода:

имя пользователя = ввод('Имя пользователя: ')
пароль = ввод('Пароль: ')
Распечатать('Вход в систему...')

Однако функция ввода делает пароль видимым в виде простого текста на экране во время ввода. Чтобы убедиться, что пароль не отображается на экране, вместо этого следует использовать функцию getpass:

от получить пропуск Импортировать получить пропуск
имя пользователя = ввод('Имя пользователя: ')
пароль = получить пароль('Пароль:')
Распечатать('Вход в систему...')

Модуль getpass является частью стандартной библиотеки Python, поэтому его не нужно устанавливать.

6. Делаем большие числа читабельными с помощью заполнителей подчеркивания

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

число1 = 10000000000
число2 = 100000000
всего = число1 + число2
печать (всего)

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

число1 = 10_000_000_000
число2 = 100_000_000
всего = число1 + число2
Распечатать(ж'{общий:,}')

Строка f в функции печати разделяет вывод с помощью разделителя тысяч.

7. Использование функции справки для получения дополнительной информации о модуле

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

Чтобы узнать, какие методы и атрибуты вы можете использовать, замените функцию справки на функцию dir.

Функция dir возвращает методы и атрибуты, поддерживаемые модулем, а не всю документацию. Это полезно, когда вы хотите получить представление о том, что делает модуль.

Написание более чистого кода Python

Python — очень разнообразный язык. Как и в случае с любым другим языком, со временем вы научитесь писать более чистый код на Python.

Python имеет множество встроенных модулей и функций. В некоторых случаях вы можете написать трудночитаемый код, потому что вам не хватает знаний о существовании определенной функции. Чтобы убедиться, что вы более информированы, вам следует прочитать больше статей о том, как писать лучший код.