popov . dev

Главная

Библиотека

Статьи

Все что нужно зн...

Все что нужно знать о циклах в Python

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

  1. Что такое циклы в Python?
  2. Что такое циклы for и while?
  3. Операторы управления циклом

Что такое Циклы в Python?

Циклы в Python позволяют нам выполнять группу инструкций несколько раз. Рассмотрим пример, чтобы понять, почему в Python используются циклы.

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

На рисунке ниже приведена блок-схема цикла:

Выполнение начинается и проверяет, является ли условие True или False (Истина и Ложь соответственно). Условием может быть любая логика, которую мы хотим протестировать в нашей программе. Если оно истинно, то выполняется тело цикла, а если ложно, то выполняется выход из цикла.

Условные операторы

Условные операторы в Python поддерживают обычные логические условия из математики. Например:

  1. Равно: a == b
  2. Не равно: a != b
  3. Меньше, чем: a < b
  4. Меньше или равно: a <= b
  5. Больше, чем: a > b
  6. Больше или равно: a >= b

Эти операторы могут использоваться несколькими способами, наиболее часто в операторе if. Давайте разберемся с концепцией операторов if.

Оператор if

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

Как вы можете видеть, при выполнении выполняется условие if и выполняются соответствующие действия. Если оно равно True, выполняется тело, а если оно равно False, выполняется завершение инструкции if.

a = 10
b = 20
if a < b :
    print("b больше a")

Приведенный выше фрагмент кода иллюстрирует основной пример того, как условие используется в операторе if.

Когда он достигает инструкции if, он проверяет, больше ли значение b или нет. Если b больше, он выводит "b больше". Теперь, если условие False, он выходит из if и продолжает дальнейшее выполнение кода. Чтобы вывести другой результат, в то время когда у нас a больше b, мы можем добавить ключевое слово else. Напишем такую инструкцию else для наглядности.

Инструкция else

Ключевое слово else выполняет все, что не попало под условие. Если условие для оператора if равно False, выполнение переходит к оператору else. Блок-схема оператора else приведена ниже:

Как вы можете видеть, когда оператор if был False, выполнение переходило к блоку else. Разберем на примере.

a = 10
b = 20
if a < b :
    print("b больше a")
else:
    print("a больше b")

Первое условие неверно, поэтому мы перейдем к следующему оператору, который в блоке else, и выведем "a больше b". Если у нас есть еще условия для проверки, мы можем использовать оператор elif.

Инструкция elif

Оператор elif на простом языке означает "попробуйте вместо этого выполнить это условие". Другие условия можно проверять, используя ключевое слово elif. Разберем приведенный ниже код:

a = 10
b = 20
if a < b :
print("b больше a")
elif a == b :
print("a равно b")
else:
print("a больше b")

Когда оператор if не возвращает True, выполнение переходит к оператору elif и проверяет, выполняется ли оно. И, в конце концов, если предыдущие условия не совпали, тогда выполняется код в блоке else.

Поскольку a != b, здесь будет напечатано "b больше a".

Примечание: Python полагается на отступы, другие языки программирования используют фигурные скобки для циклов.

Что такое цикл for и цикл while

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

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

В отличие от цикла while, мы уже указываем количество итераций, которые должны выполняться. Синтаксис цикла for содержит три поля: логическое условие, начальное значение счетной переменной и увеличение счетной переменной (иногда уменьшение). Посмотрите на пример, чтобы лучше это понять:

days = ["пн" , "вт" , "ср" , "чт", "пт", "сб", "вс"]
for x in days:
    print(x)

Здесь мы выполняли итерацию по списку. Чтобы выполнить итерацию по коду заданное количество раз, мы могли бы использовать функцию range().

Функция range()

Для функции range() требуется определенная последовательность чисел. Она начинается с 0, а затем значение увеличивается на 1, пока не будет достигнуто указанное число. Например:

for x in range(3) 
    print(x)

Программа будет выводить значения от 0 до 2, вывод будет следующим:

0  
1 
2
Примечание: диапазон (3) означает не значения от 0 до 3, а значения от 0 до 2.

Ниже приведен еще один пример использования условных операторов:

num = int(input("число: "))

factorial = 1
if num < 0 :
    print("Числов должно быть больше 0")
elif num == 0:
    print("Факториал = 1")
else:
    for i in range( 1 , num+1):
        factorial = factorial * i
print(factorial)

Цикл while

Цикл while выполняет набор инструкций до тех пор, пока условие истинно.

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

Чтобы понять это, давайте взглянем на приведенный ниже пример.

i = 1
while i < 6 :
     print(i)
     i += 1

Программа выведет:

1
2
3
4
5

Выполнение будет продолжаться до тех пор, пока значение i не достигнет 6.

Цикл while требует, чтобы соответствующая переменная была готова, здесь нам нужна индексирующая переменная (счетчик), которая может иметь любое значение.

Рассмотрим другой пример:

num = int(input("Введите число: "))
while num > 0:
    if num < 13:
        print("Число больше")
        break
    elif num < 13:
        print("Число меньше")
        break
    elif num == 13:
        print("Выход: победил")
        break
Примечание: не забывайте использовать переменную счетчика, как в предыдущем примере, иначе цикл будет продолжаться вечно. Если здесь не будет управляющего оператора break, цикл будет бесконечно повторяться. Попробуйте удалить оператор break и запустите код снова.

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

Операторы управления циклом

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

В Python у нас есть три управляющих оператора:

Break

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

Как вы можете видеть, выполнение переходит к выражению после цикла, когда break возвращает значение True. Давайте лучше разберемся в этом на примере:

for val in "строка":
    if val == "о":
        break
    print(val)
print("Конец")

Вывод:

с
т
р
Конец

Здесь выполнение остановится, как только в строке будет встречена буква о. И затем выполнение перейдет к следующему оператору.

Continue

Оператор continue используется для пропуска остальной части кода в цикле для текущей итерации. Он не завершает цикл, как оператор break, и продолжает выполнение оставшихся итераций.

Когда встречается continue, он пропускает оставшийся цикл только для этой итерации. Например:

for val in "строка":
    if val == "о":
        continue
    print(val)
print("Конец")

Вывод:

с
т
р
к
а
Конец

Буква о в выводе будет пропущена, и остальные итерации все равно будут выполнены. Все буквы в строке, кроме о, будут напечатаны.

Pass

Оператор pass является пустой операцией. По сути, это означает, что оператор необходим синтаксически, но вам нет необходимости выполнять какую-либо команду или код. В следующем примере приведено его использование:

for val in "строка":
    if val == "р":
        pass
        print("блок pass")
    print(val)

Вывод:

с
т
блок pass
р
о
к
а

Это не повлияет на выполнение, он просто напечатает блок pass, как только встретит букву р. И выполнение продолжится с р и выполнит остальные оставшиеся итерации.

Цикл while с использованием оператора break

Давайте разберемся, как мы можем использовать цикл while, вместе с оператором break, на следующем примере:

i = 1
while i < 6 : 
    print(i)
    if i == 3 :
        break
    i += 1

Вывод:

1
2

Выполнение будет завершено, когда итерация дойдет до 3, и будет выполнен код после цикла.

Использование оператора continue

Давайте рассмотрим пример инструкции continue в цикле while:

i = 1
while i < 6: 
    print(i)
    if i == 3 :
        continue
        i += 1

Вывод:

1
2
4
5

Здесь выполнение будет пропущено, и будут выполнены остальные итерации.

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

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

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

Пример использования цикла for внутри другого цикла for:

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

Вывод:

1
22
333
4444
55555

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

Базовый синтаксис для использования вложенного цикла while:

while условие:
    while условие:
        оператор(s)
    оператор(s)

Пример, вложенных циклов while и for:

travelling = input("да или нет: ")
while travelling == "да" :
    num = int(input("Количество человек: "))
    for num in range( 1 , num+1):
        name = input("Имя: ")
        age = input("Возраст: ")
        gender = input("Пол: ")
        print(name)
        print(age)
        print(gender)
    travelling = input("хм, кого-то пропустили? да или нет: ")

В этой программе мы использовали цикл while, а внутри тела цикла while мы включили цикл for.

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

Комментарии

Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте