Цикл for в Python
Циклы используются для повторения выполнения определенного блока кода. Например, если нам нужно показать определенное сообщение 100 раз, то мы можем использовать цикл. Это простой пример, но с помощью циклов мы можем сделать многое.
Есть 2 типа циклов в Python:
Цикл for в Python
Цикл for используется для выполнения блока кода определенное количество раз. Он используется с любыми последовательностями, такими как списки, кортежи, строки и др.
Синтаксис цикла for:
Здесь val получает доступ к каждому элементу последовательность на каждой итерации. Цикл продолжается до тех пор, пока не будет достигнут последний элемент в последовательность .
Блок-схема выполнения цикла for в Python:

Рассмотрим пример использования цикла for со списком:
Swift
Python
Go
JavaScript
Здесь мы создали список language . Изначально значением language является первый элемент списка, т.е. Swift , после чего выполняется код внутри цикла — оператор print . Затем language обновляется значением следующего элемента списка, и оператор print выполняется снова. Таким образом, цикл выполняется до тех пор, пока не будет достигнут последний элемент списка.
Цикл for и range()
Диапазон представляет собой ряд значений между двумя числовыми интервалами. В Python используется встроенная функция range() для определения диапазона значений. Например:
Здесь 4 внутри range() определяет диапазон, содержащий значения 0, 1, 2, 3.
В Python мы можем использовать цикл for с диапазонами значений. Например:
For in range python что это
Темой четвертой лекции курса «Python для журналистов» станут циклы while и for. Циклы позволяют проходить по всем элементам итерируемых объектов. При этом к итерируемым объектам относятся не только различные массивы данных (такие, как, например, списки), но и строки. Учитывая, что мы уже знаем, что такое строки и как с ними работать (а если вы не знаете, то посмотрите и почитайте нашу вторую лекцию), рассмотрим циклы на примере работы со строками.
Цикл while
Основной цикл в Python — цикл while (на русский язык переводится как «до тех пор пока. »). Его синтаксис похож на синтаксис условных конструкций (if, elif, else — об этом была наша третья лекция): while не будет выполнено условие: делай что-то.
Попробуем для начала распечатать каждую букву какой-нибудь строки. Например, начала стихотворения Александра Сергеевича Пушкина «Буря мглою. ». Введем имя poem и присвоим ему значение: poem = ‘Буря мглою’
Для того чтобы итерировать эту строку, нам нужно понять, каким должно быть условие остановки цикла. В данном случае таким условием будет конец строки. Иными словами, наш цикл должен печатать каждую букву до тех пор не закончится строка. Условно: while не закончится строка: print(букву)
Но как компьютер поймет, что закончилась строка? Все просто: у строк есть длина (функция len), так вот строка заканчивается тогда, когда индекс последней буквы равен длине строки. Давайте проверим длину нашей строки: len(poem). Значение ровно 10.
Теперь введем новое имя index и присвоим ему значение 0: index = 0. И мы готовы написать наш первый цикл.
while index != len(poem):
В этой конструкции нужно обратить внимание на несколько вещей. Первая: имя временной переменной index в цикле может быть любым, то есть мы могли написать и так: while i != len(poem) Вторая: знак != в Python означает неравенство. То есть в нашем примере мы как бы говорим: «До тех пор пока index не равен длине строки, печатай каждую букву строки». Это означает, что как только index станет равен 10, цикл завершит свою работу. Третья: у каждого элемента строки есть свой индекс, поэтому мы можем печатать букву под каждым следующим индексом. Четвертая: для того, чтобы условие цикла было выполнено, нам нужно на каждой итерации увеличивать index. В противном случае, цикл окажется вечным и наша программа зависнет. Так вот для того, чтобы index увеличивался на каждой итерации, мы прибавляем к нему единицу: index += 1.
Конструкция += — это так называемый «синтаксический сахар» языка Python, то есть синтаксис, который позволяет писать более удобный, читаемый и краткий код. Конструкция index += 1 равносильна выражению index = index + 1
Посчитаем гласные
Теперь, когда мы знаем, как итерировать строки, попробуем решить простую задачку — посчитать количество гласных в нашей строке. Для этого введем новое имя vowels (что переводится как «гласные» на русский язык) и присвоим ему значение ‘аоэеиыуёюя’ — это все гласные русского алфавита.
Когда у нас есть список всех гласных алфавита, мы можем проверить, является ли буква из нашей строки poem гласной. Для этого можно использовать ключевое слово Python — in: poem[0] in vowels — распечатает False, что логично, потому что буква «Б» (первая буква стихотворения) — согласная. А вот poem[1] in vowels распечатает True, потому что буква «у» (вторая в стихотворении) — гласная.
Теперь мы можем написать такой цикл:
while index != len(poem):
if poem[index].lower() in vowels:
Этот цикл проверяет каждую букву строки — относится она к гласным или нет. Если да (if poem[index].lower() in vowels), то эта буква распечатывается. Обратите внимание, что мы также меняем регистр каждой буквы с помощью функции lower(), чтобы проверить в том числе заглавные буквы.
Но пока мы только распечатываем гласные буквы, а нам бы хотелось их сохранить и посчитать их количество. Сделать это просто. Введем новое имя poem_vowels и присвоим ему значение пустой строки: poem_vowels = » Теперь немного изменим наш цикл:
while index != len(poem):
if poem[index] in vowels:
У нас изменилась всего лишь одна строчка: poem_vowels += poem[index] — это изменение основано на том, что строки можно конкатенировать, то есть складывать. И мы как бы говорим циклу: «До тех пор пока index не равен длине строки; если буква гласная, то прибавляй ее к строке poem_vowels».
Теперь poem_vowels — это строка со всеми гласными из стихотворения. И, чтобы узнать, сколько в ней этих гласных, нужно просто узнать ее длину с помощью функции len: print(len(poem_vowels))
Цикл for
Цикл for — это тоже «синтаксический сахар» языка Pytnon, благодаря которому проще итерировать объекты, а код становится более читаемым. Например, если бы мы хотели распечатать все буквы того же стихотворения, как мы это делали с циклом while, нам бы потребовалось написать гораздо меньше кода:
Обратите внимание, что в цикле for нам даже не нужно помнить об индексе — цикл «проходится» по каждому элементу массива (в данном случае строки), зная, когда она закончится. Таким образом, чтобы решить ту же задачку по поиску гласных в стихотворении, нам нужно написать такой цикл:
if i.lower() in vowels:
Функция range
Конструкция цикла for, безусловно, удобна тем, что она позволяет добираться до каждого элемента итерируемого объекта без индекса, но что если мы хотим все-таки знать индекс? Например, мы бы хотели проверить, является ли каждая буква нашего стихотворения гласной, и если да, то распечатать её и её индекс, чтобы понимать, в каком месте строки она находится. Как нам это сделать? Воспользуемся функцией range, которая позволяет создавать любые последовательности чисел. Например, если бы мы хотели создать последовательность чисел от 0 до 10, нам бы потребовалось написать всего лишь одну строчку кода: range(11)
Функция range принимает три параметра: range(start, stop, step). Start — это начало (по умолчанию, начинается с 0) последовательности (включительно); stop — это конец (не включительно, и поэтому, чтобы создать последовательность чисел до 10 включительно, нам нужно прибавить единицу); step — это шаг последовательности. Если мы хотим, допустим, распечатать каждый четный элемент последовательности до 10 включительно, то мы можем написать такой цикл:
for i in range(0, 11, 2):
Теперь вернемся к нашей задаче: как добраться до индекса каждой буквы в строке и, если буква гласная, распечатать её вместе с индексом? Для этого воспользуемся range:
for i in range(len(poem)):
if poem[i].lower() in vowels:
print(f’Это гласная буква
Обратите внимание, что в этом цикле for мы уже обращаемся не напрямую к каждому элементу строки, а к их индексам.
Вложенные циклы
Циклы, как и условия, могут быть вложенными. Попробуем разобраться на примере двух массивов данных. Первый — это список с возрастом мужчин (male_data), второй — список с возрастом женщин (female_data). Предположим, наша задача состоит в том, чтобы взять каждого мужчину и сравнить его возраст с возрастом каждой женщины из массива. Для этого нам потребуется вложенный цикл for:
for male_age in male_data:
for female_age in female_data:
if male_age > female_age:
print(f’Возраст мужчины больше возраста женщины на
print(f’Возраст женщины больше возраста мужчины на
В этом блоке кода мы сначала берем первый элемент первого массива (male_data), затем проходимся по всем элементам второго массива (female_data) и сравниваем первый элемент первого массива с каждым элементом второго массива. Затем мы берем второй элемент первого массива и снова сравниваем его со всеми элементами второго массива. И так мы делаем до тех пор, пока не закончатся все элементы первого массива.
Тетрадку Jupyter Notebook с этим уроком можно найти в нашем GitHub здесь.
Python For Loop Range — How to Loop Through a Range in Python
Everyone and their grandmothers know about Python’s for loop. But did you know you can combine it with the built-in range() function to simplify iterating over a range of numbers? If you didn’t, you’re in luck, because today you’ll learn the ins and outs of Python for loop range syntax.
We’ll start simple with the basic range iteration examples, and then dive deeper into more advanced use cases and real-world applications, such as iterating through a Python list with a Python for loop range, reversing the range order, reversing a list, and much more.
Let’s get started!
Table of contents:
Python For Loop Range — How to Use the range() Function
The range() function in Python allows you to generate a sequence of numbers. It’s commonly used in for loops to iterate over a specific range of values. The range() function accepts one, two, or three arguments: start , stop , and step . These aren’t named arguments, so specify only the values when working with range() .
Let’s go over each of them next.
range(stop)
When you use range(stop) , the function will generate a sequence of numbers starting from 0 and ending at stop — 1 . It increments the value by 1 at each iteration. Here’s an example:
Here’s the output you should see:

Image 1 — Python for Loop Range with stop argument (image by author)
In a nutshell, use this syntax if you only care about the stop value, and are fine with starting at zero.
range(start, stop)
By using range(start, stop) , you can define starting and stopping point for the sequence. The range() function generates numbers starting from start and stops before reaching stop . Let’s see an example:
And here’s the output:

Image 2 — Python for Loop Range with stop and stop arguments (image by author)
Values from 2 to 6 are printed, since range() stops before the stop argument. Keep that in mind.
range(start, stop, step)
Adding a third argument, step , allows you to specify the increment between each number in the sequence. The step value can be positive or negative. We’ll cover only the positive value in this section and will focus on the negative extensively later.
Consider the following example:
Here’s the output:

Image 3 — Python for Loop Range with start, stop, and step arguments (image by author)
As you can see, the range() function now generates numbers from 1 to 10 (not included) with a step of 2. Neat use case if you need only the odd numbers in some range.
How to Iterate Through a Python List with Python For Loop Range
The for loop, when combined with the range() function, provides a convenient way to iterate through a Python list. You can utilize the index values provided by the range() function to access and manipulate individual elements of the list.
Consider the following example in which we have a list of employees and want to print each of them one by one:
This is the output you will see:

Image 4 — Iterating through a list with range() (image by author)
In the above example, we use the len() function to determine the length of the employee list. The range() function generates a sequence of index values corresponding to the length of the list. By iterating over these indices, we can access each element of the list using indexing ( employees[i] ) within the for loop.
As with almost anything in Python, there’s a simpler approach.
The alternative is to directly iterate over the list itself:
The output is identical to the one we had before:

Image 5 — Iterating through a list with range() (2) (image by author)
In this case, the for loop directly iterates over the elements of the employee list, eliminating the need for indexing. This approach is more readable and convenient because you don’t need to manipulate the index values.
Up next, let’s go over reversing the range in Python.
How to Reverse the Range Order in Python
There are situations where you need to iterate through a range in reverse order. Python provides a couple of approaches to achieve this: by using the reversed() function or utilizing a negative step value within the range() function.
Let’s go over each next.
Using the reversed() Function
The reversed() function allows you to reverse any iterable object, including a range. By wrapping the range() function with reversed() , you can effortlessly iterate through the range in reverse order.
Consider the following example:
Our numbers are now printed from 4 to 0:

Image 6 — Python reversed() function (image by author)
In the above example, range(5) generates a sequence of numbers from 0 to 4. By passing this range to the reversed() function, the order of iteration is reversed, resulting in a reverse range from 4 to 0.
Using Negative Step
The alternative approach is to use the negative step value within the range() function. This will essentially count down from the starting to the stopping point. The syntax might look strange at first since you have to specify at least one negative value ( step ).
Here’s an example:
This is the output you should see:

Image 7 — Python range() negative step function (image by author)
In this example, range(4, -1, -1) generated a range that starts from 4, decrements by 1 at each iteration, and stops before reaching -1.
Up next, let’s apply this knowledge to a practical Python problem — list reversal.
How to Reverse a List with Python For Loop Range
In addition to iterating through a range in reverse order, you may also need to reverse the order of the elements within a list itself. Python’s for loop in conjunction with the range() function can be utilized to accomplish this task efficiently.
Take a look at the following example — it declares a list of numbers and an empty list to store the reversed number. We then use the range() function with a negative step value to iterate through the indices of the numbers list in reverse order. By appending the elements from numbers to rev_numbers using the reversed indices, we effectively reverse the order of the elements:
This is the output you’ll see:

Image 8 — Reversing a list in Python (image by author)
Python being Python, you can achieve the same by using a list comprehension instead of a for loop. Take a look at the following code:
The output is identical to what we had before:

Image 9 — Reversing a list in Python (2) (image by author)
And Python being Python once again, you can use the special [::-1] syntax to reverse a list and avoid loops or comprehensions altogether:
Once again, the output is identical to what we had before:

Image 10 — Reversing a list in Python (3) (image by author)
The moral of the story is that there are many ways to reverse a list in Python. The last one might not get you through a technical interview but is surely the most developer-friendly approach.
Python For Loop Range FAQ
We’ll now go over a series of commonly asked questions and answers addressing Python for loop range.
Q: Can You Iterate Through a Range in Python?
A: Absolutely! Python’s for loop is specifically designed for iterating over sequences, including ranges. By utilizing the range() function within a for loop, you can easily iterate through a range of numbers and perform operations on each iteration.
Just reference any code example in this article and you’ll be good to go.
Q: How Do You Start a Loop Range at 1 in Python?
A: By default, the range() function starts from 0. However, if you want to start a loop range at 1, you can simply specify 1 as the start argument while using the range() function. Here’s an example:
This is the output you will see:

Image 11 — Python range() custom starting position (image by author)
And that’s how you can start a loop range at 1 in Python, or at any value for that matter.
Q: Does range() Return a List?
A: No, the range() function does not return a list. Instead, it returns an iterable range object. The range object is a space-efficient representation of a sequence of numbers and is optimized for performance. It generates the numbers in the range dynamically as you iterate over them, rather than generating the entire sequence upfront like a list.
However, if you need a list containing the range elements, you can convert the range object to a list using the list() function. For example:
Here are the variable contents and their data types:

Image 12 — Python range() return value and data type (image by author)
Q: What Does range(len() — 1) Do in Python?
A: Using range(len() — 1) allows you to iterate through a range of indices for a given sequence, excluding the last index. It is commonly used when you need to perform operations on all but the last element of a list, string, or other sequence types.
For example, consider the following code snippet:
Here’s the output:

Image 13 — Custom length example (image by author)
Using range(len() — 1) here allowed us to skip the last value in the list.
Summing up Python For Loop Range
In this article, we have explored the versatility and power of Python’s for loop in combination with the range() function. We started by understanding the different forms of the range() function, including range(stop) , range(start, stop) , and range(start, stop, step) . We then dived deep into practical examples and real-world use cases, such as reversing a list and reversing the range order, which will come in handy when working as a Python developer.
If you want to start a career in Data Science, grab your free copy of our eBook tailored to data science beginners:

Start a Career in Data Science
Learn data science fully online from the comfort of your home. Get your free eBook today.
Цикл for в Python
Цикл в любом языке программирования — это многократное выполнение одного и то же действия. Цикл for проходится по данной последовательности элементов. Он состоит из двух компонент: переменной (переменных) цикла и итерируемой (перебираемой) последовательности. Приведу пример:
for i in ‘one’ , ‘two’ , ‘three’ :
print (i)
# one
# two
# three
Приведу еще несколько примеров:
for i in ‘1’ , ‘hello’ , 2 , 1990 , True, False:
print (i)
for j in ‘orange’ , ‘red’ , ‘purple’ :
print (j)
for k in ‘first’ , ‘last’ :
print (k)
Функция range()
Теперь пришло время познакомиться с встроенной в Python функцией range(). «range» переводится как «диапазон». Она может принимать один, два или три аргумента. Если задан только один, то генерируются числа от 0 до указанного числа, не включая его. Если заданы два, то числа генерируются от первого до второго, не включая его. Если заданы три, то третье число – это шаг. Рассмотрим случай с одним аргументом:
for number in range ( 5 ):
print (number)
for number in 0 , 1 , 2 , 3 , 4 :
print (number)
Напечатаются числа от 0 до 4. Это связано с тем, что функция range с одним аргументом генерирует диапазон от 0 до n-1, где n — это переданный аргумент.
Передадим в функцию два аргумента: 5 и 10. В этом случае range cгенерирует последовательность чисел от 5 до 9.
for el in range ( 5 , 10 , 2 ):
print (el)
Если передать в range три аргумента: 5, 10, 2, то мы получим последовательность от 5 до 10 с шагом в 2
for el in range ( 5 , 10 ):
print (el)
Перебор строк и функция len()
С помошью цикла for мы можем перебрать любую последовательность, например, строку:
for letter in ‘hello’ :
print (letter)
for l in ‘python’ :
print (l)
Любая последовательность имеет длину, это означает, что мы можем ее посчитать
Примеры решения задач
1. Посчитать сумму чисел от 0 до number
number = int ( input ())
summa = 0
for i in range (number +1 ):
# summa = summa + i
summa += i
print (summa)
2. Посчитать сумму четных чисел от 0 до number
number = int ( input ())
summa = 0
for i in range (number +1 ):
if i % 2 == 0 :
# summa = summa + i
summa += i
print (summa)
3. Посчитать произведение чисел от 1 до number
number = int ( input ())
multi = 1
for i in range ( 1 , number +1 ):
multi *= i
print (multi)
Решение задач
1. Вывести числа от 0 до 10.
2. Вывести числа от 0 до n, где n — это случайное число или число, введенное с клавиатуры
3. Вывести нечетные числа в диапазона от 0 до n (диапазон — это последовательность чисел от 0 до n)
4. Вывести четные числа из диапазона от 0 до n.
5. Вывести числа, делящиеся на три без остатка, в диапазоне от 0 до n.
6. Вывести числа, делящиеся на три или на семь без остатка, в диапазоне от 0 до n.
7. Найти сумму всех чисел от 1 до n.
7. Найти сумму четных чисел от 1 до n.
8. Даны два целых числа a и b a . Найти сумму всех целых чисел от a до b включительно.
9. Найти сумму чисел от 1 до n, делящихся на 3 .
10. Дано целое число n. Найти сумму 1 + 1/2 + 1/3 + . + 1/n
11. Дано целое число n. Найти сумму 1 + 2 + 4 + 8 + 16 + . + 2**n
где 2**n — это 2*2*2*. *2 раз. Таким образом, 2**4 = 2*2*2*2. Операция ** называется операцией возведения в степень.
12. Дано целое число n. Найти сумму: 1.1 + 1.2 + 1.3 + . + (1 + 0.1*n)
13. Дано целое число n. Найти значение выражения 1.1 − 1.2 + 1.3 − . (N слагаемых, знаки чередуются).
14. Дано целое число n. Найти квадрат данного числа, используя для его вычисления следующую формулу: n**2 = 1 + 3 + 5 + . + (2*N − 1) После добавления к сумме каждого слагаемого выводить текущее значение суммы
15. Дано вещественное число A и целое число N (> 0). Найти A в степени N: A**N = A * A * . * A (числа A перемножаются N раз). Операцию ** не использовать.
16. По данному натуральному n ≤ 30 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов. Посмотрите статью про ввод и вывод данных.