Какие имена являются правильными в питон
Перейти к содержимому

Какие имена являются правильными в питон

  • автор:

Какие имена являются правильными в питон

Главное меню

Соглашение

Регистрация

Английский язык

Астрономия

Белорусский язык

Информатика

Итальянский язык

Краеведение

Литература

Математика

Немецкий язык

Обществознание

Окружающий мир

Русский язык

Технология

Физкультура

Для учителей

Дошкольникам

VIP — доступ

Автор: Кущева Александра Владимировна | ID: 16776 | Дата: 2.3.2022

Помещать страницу в закладки могут только зарегистрированные пользователи
Зарегистрироваться

Получение сертификата
о прохождении теста

Переменные#

Переменные в Python не требуют объявления типа переменной (так как Python – язык с динамической типизацией) и являются ссылками на область памяти. Правила именования переменных:

  • имя переменной может состоять только из букв, цифр и знака подчёркивания;
  • имя не может начинаться с цифры;
  • имя не может содержать специальных символов @, $, %.

Пример создания переменных в Python:

In [1]: a = 3 In [2]: b = 'Hello' In [3]: c, d = 9, 'Test' In [4]: print(a,b,c,d) 3 Hello 9 Test 

Обратите внимание, что в Python не нужно указывать, что «a» это число, а «b» это строка.

Переменные являются ссылками на область памяти. Это можно продемонстрировать с помощью id(), которая показывает идентификатор объекта:

In [5]: a = b = c = 33 In [6]: id(a) Out[6]: 31671480 In [7]: id(b) Out[7]: 31671480 In [8]: id(c) Out[8]: 31671480 

В этом примере видно, что все три имени ссылаются на один и тот же идентификатор, то есть, это один и тот же объект, на который указывают три ссылки – «a», «b» и «c». С числами у Python есть одна особенность, которая может немного сбить с понимания: числа от -5 до 256 заранее созданы и хранятся в массиве (списке). Поэтому при создании числа из этого диапазона фактически создаётся ссылка на число в созданном массиве.

Эта особенность характерна именно для реализации CPython, которая рассматривается в книге

Это можно проверить таким образом:

In [9]: a = 3 In [10]: b = 3 In [11]: id(a) Out[11]: 4400936168 In [12]: id(b) Out[12]: 4400936168 In [13]: id(3) Out[13]: 4400936168 

Обратите внимание, что a , b и число 3 имеют одинаковые идентификаторы. Все они являются ссылками на существующее число в списке.

Если сделать то же самое с числом больше 256, идентификаторы у всех будут разные:

In [14]: a = 500 In [15]: b = 500 In [16]: id(a) Out[16]: 140239990503056 In [17]: id(b) Out[17]: 140239990503032 In [18]: id(500) Out[18]: 140239990502960 

При этом, если сделать присваивание переменных друг другу, то идентификаторы будут у всех одинаковые (в таком варианте a , b и c ссылаются на один и тот же объект):

In [19]: a = b = c = 500 In [20]: id(a) Out[20]: 140239990503080 In [21]: id(b) Out[21]: 140239990503080 In [22]: id(c) Out[22]: 140239990503080 

Имена переменных#

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

  • имена переменных обычно пишутся или полностью большими или полностью маленькими буквами (например DB_NAME, db_name);
  • имена функций задаются маленькими буквами, с подчёркиваниями между словами (например, get_names);
  • имена классов задаются словами с заглавными буквами без пробелов, это так называемый CamelCase (например, CiscoSwitch).

Python. Начальный уровень

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

Основные понятия языка программирования PYTHON. Начальный уровень
Система оценки: 5 балльная

Список вопросов теста

Вопрос 1

Как получить данные от пользователя?

Варианты ответов
  • Использовать метод read()
  • Использовать метод get()
  • Использовать метод cin()
  • Использовать метод readLine()
  • Использовать метод input()
Вопрос 2

Какая функция выводит что-либо в консоль (на экран монитора)?

Варианты ответов
  • out();
  • log();
  • print();
  • write();
Вопрос 3

Какие существуют типы переменных у чисел(выбрать несколько вариантов):

Именование в Python — как выбирать имена и почему это важно

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

Но проект растёт, количество кода увеличивается, и в один прекрасный день разработчик понимает, что 80% его времени уходит на чтение кода и его модификацию (а вовсе не на написание нового кода). Код, написанный неделю назад, кажется незнакомым — приходиться тратить время и силы чтобы вспомнить, что он делает. Плохое именование усугубляет картину:

# Пример кода с плохим именованием. Чтобы понять, что тут происходит, нужно полностью прочитать код. import re def clear_list(list, flag=False): # что делает функция clean_list? что такое list и flag? res = [] # что такое res? for item in list: # что такое item и какого он типа? if flag and item[0].islower(): # почему при этом условии нужно сделать continue? continue if re.match(«^[A-Za-zА-Яа-я]*$», item): # регулярное выражение это и есть смысл всей функции? res.append(item) return res f = open(«file.txt», «r», encoding=’utf-8′) # что находится в файле? content = f.read().splitlines() # какую информацию мы получим в переменной content? users = clear_list(content, True) # users — это какие-то абстрактные пользователи

Минусы такого именования:

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

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

Управление сложностью является сущностью компьютерного программирования.

Ниже рассмотрим, как правильно именовать переменные в Python, какую нотацию использовать + кратко рассмотрим стандарт РЕР8.

Допустимые имена переменных в Python

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

Правила для переменных в Python:

  • Имя переменной должно начинаться с буквы ( test ) или символа подчеркивания ( _test );
  • Имя переменной не может начинаться с цифры;
  • Имя переменной может содержать только буквенно-цифровые символы и подчеркивание (Az, 0-9 и _);
  • Имена переменных чувствительны к регистру ( test , Test и TEST — три разные переменные).
  • Имя переменной не должно совпадать с зарезервированным ключевым словом.

Список всех зарезервированных ключевых слов можно посмотреть так:

import keyword print(keyword.kwlist)

Если нарушить правило именования, получим SyntaxError :

3r = 10 print(3r) File «test.py», line 1 3r = 10 ^ SyntaxError: invalid syntax

Нотация в Python: CamelCase или under_score?

Нотация — это соглашение об именовании. Наиболее популярные нотации в программировании — camel case и underscore.

camelCase (еще называется «верблюжья нотация») — это стиль, в котором слова пишутся слитно, а каждое слово начинается с прописной (большой) буквы. Имеется два подвида этого стиля: lowerCamelCase (все слова кроме первого начинаются с прописной буквы) и UpperCamelCase (все слова, в том числе и первое пишутся с большой буквы).

under_score (snake_case) — при использовании этого стиля в качестве разделителя используется символ подчеркивания «_», а все слова начинаются со строчной (маленькой) буквы;

�� Существует также стиль kebab-case , который похож на under_score, но вместо знака подчеркивания «_» в нем используется тире «-«.

В Python преимущественно используется нотация under_score

Одно из правил Zen of Python ( PEP20 ) — «читаемость имеет значение». Нотация under_score отлично вписывается в это правило, т.к. она удобна для чтения. Это подтверждено исследованием , проведенным в департаменте компьютерных наук Кентского государственного университета в США. В нем, на основании количества фиксаций и продолжительности взгляда был произведен анализ влияния типа нотации на точность, время и усилия, необходимые для распознавания идентификатора. В ходе исследования было доказано, что новички распознают переменные, разделенные подчеркиванием в два раза быстрее и тратят на это меньше усилий. У опытных пользователей эта разница не так велика.

Однако under_score — не единственная нотация, рекомендуемая к использованию в Python. Вот гайдлайн по именованию, основанный на рекомендациях Гвидо ван Россума (автора языка Python):

Как выбирать имена для переменных в Python

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

  • Почему эта переменная (функция, класс и т.п.) существует?
  • Что она делает? (или какие данные в ней хранятся?)
  • Как используется?

�� Пример плохого именования:

def area(side1, side2): return side1 * side2 d = area(4, 5)

В данном примере переменная d не обозначает ровным счётом ничего. По названию функции area не понятно, что она делает, какие параметры принимает и что возвращает.

�� Пример хорошего именования:

def get_rectangle_area(length, width): return length * width area = get_rectangle_area(4, 5)

В примере понятно что делает функция get_rectangle_area (передав длину и ширину, функция вычисляет и возвращает площадь прямоугольника). Результат попадет в переменную area (площадь).

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

Вот еще несколько рекомендаций по выбору имён в Python:

⚡ Подбирайте имена на английском языке. Не нужно использовать русские имена переменных и писать их транслитом. Для программиста важно знать английский язык.

def proverka_zdorovya(): # плохо pass def health_check(): # хорошо pass

⚡ Для функций используйте глагол (например «купить», «получить», «распечатать»), для переменных, модулей и классов используйте существительное (например «список», «покупатели», «товары»).

Частая ошибок новичков — называть функцию существительным:

def speed_calculator(distance, time): # неправильно (калькулятор скорости) pass def calculate_speed(distance, time): # правильно (рассчитать скорость) pass

⚡ Имена функций должны быть как можно короче. Функция выполняет всего одно действие и именно оно должно отображаться в её имени.

def create_text_utf8_pipe_from_input(): # плохо pass def create_pipe(): # хорошо pass

⚡ Перед именами булевских переменных (и методов, возвращающих тип bool ), добавляйте префикс «is».

def is_goal_state(): # хорошо pass is_active = True # хорошо

Там где не получается использовать «is», можно использовать «has» или «can». Пример: has_children() .

⚡ Используйте удобопроизносимые имена. Людям удобно работать со словами. Часть мозга специализируется на обработке слов — нужно использовать эту часть мозга.

# пример плохого именования (имена трудно произносить вслух) class GlobalFRTEV: # плохо def get_any_mdhd(self): # плохо pass def get_any_mdhl(self): # плохо pass def get_any_mdhf(self): # плохо pass

Имена будут использоваться в обсуждении с коллегами. Рассказывать про баг в методе get_any_mdhf класса GlobalFRTEV будет достаточно проблематично.

⚡ Использовать однобуквенные переменные не рекомендуется. Их можно использовать исключительно для локальных переменных в небольших методах.

r = requests.get(‘https://pythonchik.ru’) # плохо response = requests.get(‘https://pythonchik.ru’) # хорошо

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

tm1_word = «Hello» # плохо

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

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

�� Больше полезных сведений о выборе имен идентификаторов и другие советы, которые пригодятся при написании кода, можно найти в книгах:

  • Роберт Мартин » Чистый код » («Содержательные имена», стр. 39);
  • Стив Макконнелл » Совершенный код » («Сила имен переменных», стр. 252).

Именование переменных в PEP8

В стандарте РЕР8 описаны следующие стили именования:

  • b — идентификатор из одной маленькой буквы;
  • B — идентификатор из одной большой буквы;
  • lowercase — одно слово в нижнем регистре;
  • lower_case_with_underscores — нескольких слов из маленьких букв, между словами подчеркивания;
  • UPPERCASE — одно слово заглавными буквами;
  • UPPERCASE_WITH_UNDERSCORES — слова из заглавных букв, между словами подчеркивания;
  • CapitalizedWords — несколько слов без пробелов между ними, но каждое начинается с прописной буквы (CamelCase);
  • mixedCase — несколько слов без пробелов между ними, первое слово пишется с маленькой буквы, каждое последующее — с большой;
  • Capitalized_Words_With_Underscores — имена переменных состоят из нескольких слов, которые начинаются с большой буквы, разделенных между собой знаком подчеркивания «_».

О стандартах именования читайте в PEP8 (раздел «Naming Conventions») .

��‍♂️ Для удобства, среды разработки (например PyCharm) автоматически проверяют, насколько код соответствует рекомендациям стандарта РЕР8. Если имя идентификатора не будет соответствовать соглашениям, то IDE подчеркнет переменную, а если навести на нее мышку, появится сообщение с подсказкой.

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

Чтобы прокачать навык именования переменных, читайте чужой код крупных проектов (например на github). Смотрите, какие имена используют опытные разработчики, анализируйте и применяйте в своих проектах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *