Задача на нахождение среднего ариф. чисел.
Пишите
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)
????
Преподы на сайтах предлагают писать как в первом варианте. Как вы считаете?
Python
Вопрос программистам. Как вы обозначаете свои переменные в программах:
data = [int(input()) for _ in range(int(input()))]
print(sum(data) / len(data))
Но если серьёзно, то параметр цикла можно обозначать однобуквенной переменной, но смысл всех прочих имён (будь то переменные или функции) должен быть понятен из их названия. Это называется "самодокументированный код".
Переменные a, b, c затрудняют чтение кода. Если ты пишешь для себя - это не важно. Но если это коммерческий проект, в котором твой код будут многократно читать и модернизировать, это начинает играть существенное значение.
print(sum(data) / len(data))
Но если серьёзно, то параметр цикла можно обозначать однобуквенной переменной, но смысл всех прочих имён (будь то переменные или функции) должен быть понятен из их названия. Это называется "самодокументированный код".
Переменные a, b, c затрудняют чтение кода. Если ты пишешь для себя - это не важно. Но если это коммерческий проект, в котором твой код будут многократно читать и модернизировать, это начинает играть существенное значение.
когда у меня был большой проект, я написал маленький препроцессор, который переводил русские имена с кирилицы на латиницу в определённом порядке, т. е. буквы, которых нет на латинице (например Ш или Ь), переводились некоторым одинаковым способом. аналогично осуществлялся обратный перевод.
и все важные переменные были на нормальном русском языке с нормальным смыслом. это актуально, если программа очень большая и исполнителей несколько человек
и все важные переменные были на нормальном русском языке с нормальным смыслом. это актуально, если программа очень большая и исполнителей несколько человек
Поскольку я обычно решаю несколько более комплексные задачи, чем приведенная выше, я даю переменным осмысленные названия. Однобуквенными у меня могут быть параметры каких-то простейших функций вроде string foo(string _s) или параметры циклов.
С простенькими учебными примерчиками лично я не вижу смысла сильно заморачиваться, там и так все понятно. Но! Преподы по-своему правы, поскольку хотят привить юным падаванам хороший стиль именования переменных. И стоит их, наверное, все же слушаться.
С простенькими учебными примерчиками лично я не вижу смысла сильно заморачиваться, там и так все понятно. Но! Преподы по-своему правы, поскольку хотят привить юным падаванам хороший стиль именования переменных. И стоит их, наверное, все же слушаться.
Первый вариант это самодокументированный код, а во втором варианте имена переменных не несут никакого смысла.
В длинных программах с десятками переменных надо обозначать понятными переменными. Преподаватели правильно рекомендуют.
Есть еще прием - обозначать русскими словами, но в английском алфавите.
Есть еще прием - обозначать русскими словами, но в английском алфавите.
Миша Сапер
Нерекомендуемый прием, если пишется не для себя))
Aleks Moyseyenko
Я применяю оба.)
Айдар Исмагилов
"обозначать русскими словами, но в английском алфавите" - это говнокод.
Андрей Борисов
1) это называется транслит
2) зачем так извращаться, если, насколько помню, питон поддерживает кириллицу?
2) зачем так извращаться, если, насколько помню, питон поддерживает кириллицу?
Первый варант безоговорочно выигрывает.
Если задача достаточно маленькая (учебная), или из контекста задачи и так понятно, о чем эти переменные - однобуквенные вполне допустимы.
Но даже в таких случаях полезно придумывать хорошие названия для переменных, чтобы мозги к ним привыкли.
Например, однобуквенными можно делать не только переменные, но и названия функций. Как будет удобнее?)
a()
b()
c()
d()
или
open_window()
load_level(1)
create_zombies()
show_guns()
Бывало, по полчаса думал и колебался, как назвать одну функцию) Названия должны быть такими, чтобы не приходилось вникать в весь код, чтобы понять, о чем он.
Что делает этот код?)

Если задача достаточно маленькая (учебная), или из контекста задачи и так понятно, о чем эти переменные - однобуквенные вполне допустимы.
Но даже в таких случаях полезно придумывать хорошие названия для переменных, чтобы мозги к ним привыкли.
Например, однобуквенными можно делать не только переменные, но и названия функций. Как будет удобнее?)
a()
b()
c()
d()
или
open_window()
load_level(1)
create_zombies()
show_guns()
Бывало, по полчаса думал и колебался, как назвать одну функцию) Названия должны быть такими, чтобы не приходилось вникать в весь код, чтобы понять, о чем он.
Что делает этот код?)

Ергали Дюсенгалиевич
Return и Def пока не изучал))
да какая в опу разница? главное, чтобы прога работала.
Ергали Дюсенгалиевич
говорят, "потом будем работать над большими программами, запутаешься". Это так?
Код должен читаться как текст
в любой ситуации лучше давать хорошие, осмысленные названия всему. это вообще одна из самых сложных вещей в программировании и чем чаще ты это будешь использовать, тем больше будет расти скилл.
п. с. если только речь не идет о спортивном программировании. там другие цели
п. с. если только речь не идет о спортивном программировании. там другие цели
Если кто-то после тебя будет работать над программой, если ты будешь в этой области работать, то 1 вар. лучше, 2 вар. могут просто не понять. Я когда как обозначаю. В тестовых и простых прогах по 2 вар. Если посложнее - по 1 вар.
Если код в 5 строчек, ещё можно позволить себе использовать второй вариант, но когда ты начнёшь писать код большего объёма и более сложной логики, без осмысленного именования переменных и функций не обойтись. А также без комментариев. Иначе по прошествии времени ты сам не сможешь читать своё поделие, не то что другие люди. Идентификаторы вроде i и j всё же используются, но как локальные счётчики в циклах. Также, например, в питоне принято обозначать неважные локальные переменные символом "_".
Так, например, для js-кода (исполняемого на стороне клиента, и передаваемого ему при прогрузке веб-страниц) использует обфускацию - переименование всех объектов и функций, а также "сжатие" кода в одну строку без переносов и табуляций, добавление бессмысленных элементов кода для усложнения его анализа.
Не надо приучать себя писать "обфусцированный" код:)
Так, например, для js-кода (исполняемого на стороне клиента, и передаваемого ему при прогрузке веб-страниц) использует обфускацию - переименование всех объектов и функций, а также "сжатие" кода в одну строку без переносов и табуляций, добавление бессмысленных элементов кода для усложнения его анализа.
Не надо приучать себя писать "обфусцированный" код:)
Похожие вопросы
- Вопрос программистам самоучкам, которые уже работают!
- Как использовать переменную созданную в def во всей программе python
- Глупый вопрос начинающего программиста.
- Программисты что вам мешаеть придумать программу от которой вы разбогатеете как Билл Гейтс?
- Зачем Python программисту надо знать несколько ЯП? Мне писали, что на одном питоне можно писать программы.
- Программисты держат в голове как писать программу? или пользуются вспомогательных учебниками?
- Вопросы про программиста.
- Вопрос знающим программистам
- зачем программисту физика?
- Я хочу быть программистом, но я гуманитарий.
Помниццо, было у меня в одной БД поле, которое называлось MEGAYES. Признак да/нет такой. И я долго думал, что это за yes такой, да еще не просто yes, а аж mega. Жизнеутверждающий такой yes. Основательный. Фундаментальный. Но все оказалось гораздо проще: это был מגייס.
Поэтому я искренне надеюсь, что автор вопроса вашему примеру все же не последует и именовать переменные будет по-английски, чтобы они сочетались с операторами, пространствами имен, классами и методами стандартных библиотек и всем прочим.