Найти в Дзене
<Блог Питониста>

Цикл for в Python

Всем привет, это уже 3 статья на тему циклов в языке программирования Python. Сегодня мы рассмотрим второй тип цикла, и называется он for, в переводе с английского для.
Цикл for вызывается для коллекции чисел с помощью функции range() или списков, которые мы пока не проходили. Также мы чаще всего задаем итерируемую локальную переменную, которая не используется нигде, кроме цикла, смотрите
Оглавление

Всем привет, это уже 3 статья на тему циклов в языке программирования Python. Сегодня мы рассмотрим второй тип цикла, и называется он for, в переводе с английского для.

Цикл for вызывается для коллекции чисел с помощью функции range() или списков, которые мы пока не проходили. Также мы чаще всего задаем итерируемую локальную переменную, которая не используется нигде, кроме цикла, смотрите внимательно:

for i in 'hello world':
print(i * 2, end='')

Вывод:

hheelllloo wwoorrlldd

Как мы можем заметить, цикл обошел каждый символ в нашем hello world, и умножил его на два. end= в конце функции print() указывает нам, что ему стоит делать в конце каждой итерации. Я поставил пустые кавычки потому, что по умолчанию функция print() ставит \n, то есть перенос на следующую строку. Без этой команды вывод получился бы таким:

hh
ee
ll
ll
oo
ww
oo
rr
ll
dd

Давайте попробуем немного приукрасить программу, добавим условие и оператор continue

for i in 'hello world':
if i == 'o':
continue
print(i * 2, end='')

Вывод:

hheellll wwrrlldd

По нашему условию, если в итерации переменная i становится равна о, то срабатывает оператор continue, который её пропускает

Факториал

Предлагаю снова сделать программу для расчета факториала, но на этот раз уже через цикл for:

Для этого нам понадобится функция range()- как она работает? Сейчас объясню:

range()

Функция range имеет следующие формы:

range(stop): возвращает все целые числа от 0 до stop(не включая)
range(start, stop): возвращает все целые числа в промежутке от start (включая) до stop (не включая). Выше в программе факториала использована именно эта форма.
range(start, stop, step): возвращает целые числа в промежутке от start (включая) до stop (не включая), которые увеличиваются на значение step

Например, давайте выведем с помощью цикла все числа от нуля до 5:

for i in range(6):
print(i, end=" ")

С функцией range() вроде разобрались, так что же там с факториалом?

Для реализации подобной программы нам понадобится переменная, которую будет задавать пользователь с помощью int(input()), которую мы в последствии поместим в нашу функцию range() вида (start, stop) {start=1, stop=n(наша переменная)+1}. Функция range() должна начинаться с 1, потому что при умножении нуля мы всегда получим 0, а добавлять 1 к нашей переменной нужно потому, что число, которое мы ведем, само по себе не будет входить в наши вычисления, и факториал не будет посчитан корректно. Также нам понадобится статистическая переменная factorial, равная 1, которая будет умножаться на i и перезаписываться:

number = int(input("Введите число: "))
factorial = 1
for i in range(1, number + 1):
factorial *= i
print(f'Факториал числа {number} равен {factorial}')

Вложенный цикл

Как и условные операторы, циклы тоже могут быть вложенными. Давайте попрактикуем немного магии вне Хогвартса и выведем себе в консоль красивую таблицу чисел от 0 до 100:

Для этого нам понадобится два цикла for с функциями range(1, 11) и функция print(), которая будет перемножать их локальные переменные i и j, и выводить это все в консоль. Для красоты будем использовать \t в конце каждой итерации и \n в конце выполнения 1 итерации первого цикла, смотрите:

for i in range(1, 11):
for j in range(1, 11):
print(i * j, end='\t')
print("\n")
-2

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

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

Важное объявление

Друзья, мне очень важно ваше мнение! Я стараюсь выпускать для вас обучающие статьи, основанные на собственном опыте, каждый день, и поэтому мне было бы очень приятно получать от вас любую критику в свою сторону. Если вы дочитали статью, то я призываю вас не полениться и оставить комментарий, указать в нем, что вам понравилось, а что нет, а также оценить доступность подаваемой информации! Спасибо за внимание!