Циклы и диапазоны в Python

PythonBeginner
Практиковаться сейчас

Введение

В этом практическом занятии вы научитесь использовать циклы for и функцию range() в Python. Циклы for позволяют перебирать последовательность элементов, например, список или строку. Функция range() — это встроенная функция, которая возвращает последовательность чисел, начиная с 0 по умолчанию, с шагом 1 (также по умолчанию) и заканчивая указанным числом.

Достижения

  • Циклы for
  • Функция range()
  • Функция enumerate()
  • Функция zip()

Цикл for

Цикл for — это оператор управления потоком, который позволяет перебирать последовательность элементов. Синтаксис цикла for выглядит следующим образом:

for variable in sequence:
    statements

где sequence — это последовательность элементов (например, список, кортеж или строка), а variable — это переменная, которая последовательно принимает каждое значение из последовательности. statements внутри цикла будут выполняться для каждого значения в последовательности.

Откройте новый интерпретатор Python.

python3

Вот пример простого цикла for, который перебирает список целых чисел и выводит каждое значение:

numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(number)

Перебор строки:

for char in 'Hello':
    print(char)

Функция range()

Функция range() — это встроенная функция в Python, которая возвращает последовательность чисел. Синтаксис функции range() выглядит следующим образом:

range(start, stop, step)

где start — это начальное число последовательности (по умолчанию 0), stop — это конечное число последовательности (не включается), а step — это приращение между каждым числом в последовательности (по умолчанию 1).

Вы можете использовать функцию range() в цикле for для перебора последовательности чисел. Например:

for i in range(5):
    print(i)

Вы также можете указать значения start и stop для функции range():

for i in range(2, 5):
    print(i)

Вы даже можете указать значение шага:

for i in range(2, 10, 2):
    print(i)

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

Можно также использовать несколько циклов for для перебора вложенных последовательностей. Например:

for i in range(1, 3):
    for j in range(1, 4):
        print(f'i: {i}, j: {j}')

Упражнение

Теперь轮到你来练习使用循环语句 for 和函数 range() 了。编写一个程序,输出以下图案:

*
**
***
****
*****

一些提示:

你的程序应该使用两个循环,一个嵌套在另一个里面。外层循环应该遍历行数,内层循环应该遍历列数。

要完成这个练习,你需要使用 print() 函数来输出星号。你可以使用 range() 函数来控制循环的迭代次数。

Функция enumerate()

Функция enumerate принимает итерируемый объект, такой как список, и возвращает итератор, который генерирует кортежи, содержащие индекс и значение каждого элемента. В следующем примере мы используем оператор распаковки (index, fruit), чтобы присвоить индекс и значение каждого кортежа переменным index и fruit соответственно.

## Пример использования функции enumerate в цикле for в Python

## Примерный список для перебора
fruits = ['apple', 'banana', 'cherry']

## Использование цикла for и функции enumerate для перебора списка
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

## Вывод:
## Index: 0, Fruit: apple
## Index: 1, Fruit: banana
## Index: 2, Fruit: cherry

В приведенном выше примере мы определяем список fruits, содержащий элементы apple, banana и cherry.

Затем мы используем цикл for для перебора списка fruits и функцию enumerate, чтобы получить как индекс, так и значение каждого элемента в списке. Внутри цикла мы используем форматирование строк, чтобы вывести индекс и фрукт. Функция enumerate по умолчанию начинает计数 с 0, но вы можете использовать необязательный аргумент start, чтобы указать другое начальное значение для计数。

Функция zip()

Функция zip() может быть полезной при работе с несколькими списками или другими итерируемыми объектами, когда вы хотите перебирать их элементы парами, или когда вы хотите объединить несколько итерируемых объектов в один.

## Пример использования функции zip() в цикле for в Python

## Примерные списки для перебора
fruits = ['apple', 'banana', 'cherry']
prices = [1.2, 3.5, 2.5]

## Использование цикла for и функции zip для перебора списков
for fruit, price in zip(fruits, prices):
    print(f"Fruit: {fruit}, Price: ${price}")

## Вывод:
## Fruit: apple, Price: $1.2
## Fruit: banana, Price: $3.5
## Fruit: cherry, Price: $2.5

В приведенном выше примере мы определяем два списка fruits и prices, содержащие элементы apple, banana, cherry и 1.2, 3.5, 2.5 соответственно.

Затем мы используем цикл for для перебора элементов из двух списков с использованием функции zip(). Функция zip() принимает несколько итерируемых объектов в качестве входных данных и возвращает итератор, который генерирует кортежи, содержащие элементы входных итерируемых объектов в соответствующих позициях. В приведенном выше примере мы используем оператор распаковки (fruit, price), чтобы присвоить элементы каждого кортежа переменным fruit и price соответственно. Внутри цикла мы используем форматирование строк, чтобы вывести Fruit и цену.

Если длина входного итерируемого объекта не равна, функция zip() остановится в конце самого короткого итерируемого объекта.

Резюме

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

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