Как ИТ-специалист, вы можете столкнуться с ситуациями, когда вам нужно повторно использовать часть кода несколько раз. Например, при автоматизации сбора новых регистраций или заявок на сайте. Вместо повторного написания одной и той же строки кода, что отнимает много времени и неэффективно, вы можете создать функцию или использовать так называемые циклы.

Практический пример — цикл для кодов продуктов

Мы рассмотрим здесь один пример, который демонстрирует использование петель в системах самопокупки, которые можно найти в магазинах. Эти системы позволяют клиентам совершать покупки, вводя коды продуктов. Чтобы обеспечить бесперебойную и эффективную работу, в этих системах обычно используется цикл, который проверяет ввод кода каждые 20 секунд. Этот цикл проверяет, был ли введен код, что позволяет клиентам беспрепятственно выполнять свои транзакции.

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

Есть два ключевых варианта условных циклов в Python:

  1. Для цикла
  2. Пока цикл

Оба варианта позволяют многократно выполнять часть кода. Основное различие между этими двумя функциями совершенно очевидно. Если мы заранее знаем точное количество итераций, мы будем использовать цикл for; иначе — цикл «пока».

1. Для петли

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

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

  1. Перебор списка:
python

fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
    print(fruit)

Выход:

apple
banana
orange

2. Итерация по строке:

python

message = "Hello, World!"
for char in message:
    print(char)

Выход:

H
e
l
l
o
,
 
W
o
r
l
d
!

3. Итерация по диапазону чисел:

python

for i in range(1, 6):
    print(i)

Выход:

1
2
3
4
5

Решение Для цикла

Мы будем использовать опцию «список», так как мы хотим повторить список кодов продуктов. Итак, давайте определим коды в соответствии с UPC (Универсальный код продукта), который состоит из 12 цифр, однозначно присвоенных каждому предмету торговли. Это образец структуры данных, используемый в демонстрационных целях.

Шаг 1. Определите коды продуктов

python
product_codes = ["018375768312", "035674982241", "048293746356"]

После определения списка продуктов нам нужно использовать функцию for in для повторения проверки ввода кода. В этом случае мы будем использовать функцию print для отображения сообщения о проверке.

Шаг 2. Выполните цикл проверки кода

2.1. Укажите сообщение

python

for code in product_codes:
    print("Checking code:")

2.2. Укажите количество итераций

Так как наша задача проверять код каждые 20 секунд, мы должны использовать модуль import time. Python предлагает широкий спектр модулей, которые вы можете импортировать для различных целей. Например, math, random, os, json и т. д. Модуль time в Python предоставляет несколько функций для работы с операциями, связанными со временем. Мы импортируем модуль time для использования функции sleep(), что позволяет нам ввести задержку выполнения кода.
время импорта

import time

for _ in range(3):  # Replace 3 with the desired number of iterations
    code = input("Enter the product code: ")

3. Укажите интервал между проверками кода

python

import time
# Simulating the 20-second interval
    time.sleep(20)

Таким образом, единый код будет выглядеть так

import time

product_codes = ["018375768312", "035674982241", "048293746356"]

for code in product_codes:
    print("Checking code:", code)
    time.sleep(20)

Выход:

Checking code: 018375768312
Checking code: 035674982241
Checking code: 048293746356

2. Пока цикл

Другой вариант — цикл while. Этот цикл while выполняет то же поведение, что и цикл for в предыдущем примере. Он перебирает каждый код в списке product_codes, печатает сообщение и ждет 20 секунд, прежде чем перейти к следующему коду.

import time

product_codes = ["018375768312", "035674982241", "048293746356"]
index = 0
while index < len(product_codes):
    code = product_codes[index]
    print("Checking code:", code)
    index += 1
    time.sleep(20)

Итак, мы уже рассмотрели, почему и как использовать import time и определить product_codes. Новизной этого оператора будет использование переменных while index. Мы инициализируем переменную index значением 0, которое представляет текущую позицию в списке product_codes.

Цикл while продолжает выполняться до тех пор, пока index меньше длины списка product_codes. Внутри цикла мы извлекаем код в текущем index из списка product_codes, используя product_codes[index].

Затем мы печатаем сообщение «Проверка кода:», за которым следует код. После печати мы увеличиваем index на 1, чтобы перейти к следующему коду в списке. Наконец, мы используем time.sleep(20), чтобы ввести 20-секундную задержку перед следующей итерацией цикла.

Важно соблюдать осторожность при использовании циклов while, чтобы избежать создания бесконечных циклов, которые не заканчиваются. Обязательно включите условие, которое в конечном итоге будет выполнено для выхода из цикла.

В заключение следует отметить, что циклы for и while являются мощными инструментами программирования, позволяющими автоматизировать повторяющиеся задачи. Понимание их синтаксиса и использования позволяет оптимизировать код и повысить эффективность.