Написать работающий код не всегда достаточно; вы должны попытаться написать хорошо структурированный код, который также легко понять. Чистый код облегчит вам — и другим — поддержку вашего программного обеспечения.
Python имеет множество возможностей и функций, которые помогут вам писать более чистый код. Вот некоторые из лучших.
1. Автоматизируйте закрытие ресурсов с помощью контекстного менеджера
Закрытие ресурсов вручную может быть неудобным, если ваш код взаимодействует с большим количеством ресурсов. Вы можете забыть закрыть ресурс. Это заставляет вашу программу использовать системные ресурсы неэффективно, что может привести к утечка памяти.
Этот код открывает файл, а затем закрывает его вручную:
файл = открыть('test.txt', 'р')
file_contents = файл.чтение()
файл.закрыть()
слова = file_contents.split(' ')
число_слов = длина (слов)
печать (слово_счетчик)
Вы можете автоматизировать закрытие файла с помощью контекстного менеджера. Контекстные менеджеры управляют ресурсами за вас, поэтому вам не нужно помнить об управлении ими вручную. Использовать с оператор для создания контекста для управления ресурсом:
с открыть('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 имеет множество встроенных модулей и функций. В некоторых случаях вы можете написать трудночитаемый код, потому что вам не хватает знаний о существовании определенной функции. Чтобы убедиться, что вы более информированы, вам следует прочитать больше статей о том, как писать лучший код.