В настоящее время я преподаю немного программирования на Python некоторым довольно молодым студентам. Я хочу, чтобы они узнали, как написать цикл for.
Пока что я показал это студентам так:
for i in range(1,11):
print(i)
который дает цикл, где i
иду от 1 до 10.
Моя проблема в том, что студентам кажется странным, что им нужно написать 11 в качестве второго аргумента для range(1,11)
когда они хотят, чтобы цикл увеличился до 10. Студенты находят это непонятным.
В C/C++ и родственных языках такой цикл можно записать так:
for(int i = 1; i <= 10; i++)
{ /* do something */ }
Мне кажется, что способ выражения цикла C++ более интуитивен, поскольку в этом случае я могу явно записать 1 и 10, которые являются первым и последним значениями, которые я хочу, чтобы переменная цикла принимала.
Работая с циклами for в python, я в конечном итоге говорю студентам что-то вроде: "мы просто должны признать, что нам нужно написать 11, когда мы хотим, чтобы цикл перешел на 10, это немного раздражает, но вам просто нужно научиться что функция диапазона работает таким образом ". Я не рад этому; Я хочу, чтобы они узнали, что программирование - это весело, и я боюсь, что подобные вещи делают его менее увлекательным.
Поскольку python часто описывается как язык, подчеркивающий удобочитаемость, я подозреваю, что есть более хороший способ выразить цикл for, способ, который вызвал бы меньше путаницы для моих учеников.
Есть ли лучший и/или менее запутанный способ выразить этот вид цикла for в языке Python?