Вопрос Вопрос программистам. Как вы обозначаете свои переменные в программах:

Регистрация
16 Мар 2013
Сообщения
97
Репутация
0
Спасибо
0
Монет
0
Задача на нахождение среднего ариф. чисел.
Пишите
total = 0
for i in range(10):
num = int(input())
total = total + num
average = total / 10
print('Среднее значение равно', average)
ИЛИ КАК Я__________________________________________
a = 0
c = int(input())
for i in range(c):
b = int(input())
a = a + b
print(a / c)
????
Преподы на сайтах предлагают писать как в первом варианте. Как вы считаете?
 
Если код в 5 строчек, ещё можно позволить себе использовать второй вариант, но когда ты начнёшь писать код большего объёма и более сложной логики, без осмысленного именования переменных и функций не обойтись. А также без комментариев. Иначе по прошествии времени ты сам не сможешь читать своё поделие, не то что другие люди. Идентификаторы вроде i и j всё же используются, но как локальные счётчики в циклах. Также, например, в питоне принято обозначать неважные локальные переменные символом "_". Так, например, для js-кода (исполняемого на стороне клиента, и передаваемого ему при прогрузке веб-страниц) использует обфускацию - переименование всех объектов и функций, а также "сжатие" кода в одну строку без переносов и табуляций, добавление бессмысленных элементов кода для усложнения его анализа. Не надо приучать себя писать "обфусцированный" код:)
 
Первый варант безоговорочно выигрывает. Если задача достаточно маленькая (учебная), или из контекста задачи и так понятно, о чем эти переменные - однобуквенные вполне допустимы. Но даже в таких случаях полезно придумывать хорошие названия для переменных, чтобы мозги к ним привыкли. Например, однобуквенными можно делать не только переменные, но и названия функций. Как будет удобнее?) a() b() c() d() или open_window() load_level(1) create_zombies() show_guns() Бывало, по полчаса думал и колебался, как назвать одну функцию) Названия должны быть такими, чтобы не приходилось вникать в весь код, чтобы понять, о чем он. Что делает этот код?)
u_6bf2e5fa046e8a968316e9193669ba69_800.png
 
data = [int(input()) for _ in range(int(input()))] print(sum(data) / len(data)) Но если серьёзно, то параметр цикла можно обозначать однобуквенной переменной, но смысл всех прочих имён (будь то переменные или функции) должен быть понятен из их названия. Это называется "самодокументированный код". Переменные a, b, c затрудняют чтение кода. Если ты пишешь для себя - это не важно. Но если это коммерческий проект, в котором твой код будут многократно читать и модернизировать, это начинает играть существенное значение.
 
Поскольку я обычно решаю несколько более комплексные задачи, чем приведенная выше, я даю переменным осмысленные названия. Однобуквенными у меня могут быть параметры каких-то простейших функций вроде string foo(string _s) или параметры циклов. С простенькими учебными примерчиками лично я не вижу смысла сильно заморачиваться, там и так все понятно. Но! Преподы по-своему правы, поскольку хотят привить юным падаванам хороший стиль именования переменных. И стоит их, наверное, все же слушаться.
 
Первый вариант это самодокументированный код, а во втором варианте имена переменных не несут никакого смысла.
 
Если кто-то после тебя будет работать над программой, если ты будешь в этой области работать, то 1 вар. лучше, 2 вар. могут просто не понять. Я когда как обозначаю. В тестовых и простых прогах по 2 вар. Если посложнее - по 1 вар.
 
В длинных программах с десятками переменных надо обозначать понятными переменными. Преподаватели правильно рекомендуют. Есть еще прием - обозначать русскими словами, но в английском алфавите.
 
Назад
Сверху