Все программы с циклом for, которые мы до этого писали, нельзя назвать универсальными. Потому что мы сами задавали число повторений тела цикла.
А что делать, если количество повторений будет зависеть от какого-либо другого значения? Например, пользователь сам хочет задать количество повторений цикла.
Что делать в этом случае?
Все очень просто. Вместо числовых начальных и конечных значений мы можем использовать любые переменные, которые могут как вычисляться, так и задаваться пользователем.
Например, нам нужно вывести квадраты чисел от 1 до N, где значение переменной N вводится с клавиатуры пользователем.
Программа будет выглядеть следующим образом:
N = int(input()) #ввод N с клавиатуры
for i in range(1, N+1): # цикл: для всех i от 1 до N - переменная i будет последовательно принимать значения от 1 до N
print("square", i, "=", i*i) #Вывод квадрата числа
При входе в цикл выполняется оператор присваивания i = 1, и затем переменная i с каждым шагом увеличивается на единицу (i += 1). Цикл выполняется пока истинно условие i <= N. В теле цикла единственный оператор вывода печатает на экране само число и его квадрат по заданному формату.
Для возведения в квадрат или другую невысокую степень лучше использовать умножение.
Запустите программу и посмотрите результат ее работы при различных значениях переменной N.