Перейти к содержимому

Как сделать бесконечное добавление в питоне

  • автор:

Как создать бесконечный цикл в бесконечном цикле на Python

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

 while True: print("Введите 'Добавить' чтобы добавить два числа") user_input = input(": ") if user_input == "Добавить" or "добавить": while True: numb1 = float(input("Введите первое число: ")) numb2 = float(input("Введите второе число: ")) print(str(numb1), str(numb2)) 

Отслеживать
4,507 2 2 золотых знака 9 9 серебряных знаков 28 28 бронзовых знаков
задан 27 апр 2020 в 18:29
1 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака

Исключений, может, и нет. А вот ошибка как раз есть. Условие if user_input == «Добавить» or «добавить»: всегда истинно.

27 апр 2020 в 18:34

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

>>> while True: . print("Введите 'Добавить' чтобы добавить два числа") . user_input = input(": ") . if user_input.lower() == "добавить": . while True: . numb1 = float(input("Введите первое число: ")) . numb2 = float(input("Введите второе число: ")) . print(str(numb1), str(numb2)) . Введите 'Добавить' чтобы добавить два числа : добавить Введите первое число: 10 Введите второе число: 5 10.0 5.0 Введите первое число: 15 Введите второе число: 3 15.0 3.0 Введите первое число: 123 Введите второе число: 10 123.0 10.0 Введите первое число: 

Программа точно следует логике, которую вы в неё заложили, если исправить неправильно составленное условие.
То, что идёт после цикла, не пропускается — до него попросту не доходит очередь. Если вам нужно, чтобы после цикла выполнялся ещё какой-либо код, имеет смысл сделать выход из цикла:

>>> while True: . print("Введите 'Добавить' чтобы добавить два числа") . user_input = input(": ") . if user_input.lower() == "добавить": . while True: . numb1 = float(input("Введите первое число: ")) . numb2 = float(input("Введите второе число: ")) . print(str(numb1), str(numb2)) . if numb1 == numb2: # условие, при котором цикл заканчивается. Я использовал условие равенства двух чисел, у вас оно может быть другим . break . print('***** Бесконечный цикл закончен, код дальше выполняется') . Введите 'Добавить' чтобы добавить два числа : добавить Введите первое число: 3 Введите второе число: 2 3.0 2.0 Введите первое число: 3 Введите второе число: 5 3.0 5.0 Введите первое число: 5 Введите второе число: 5 5.0 5.0 ***** Бесконечный цикл закончен, код дальше выполняется Введите 'Добавить' чтобы добавить два числа : 

Что касательно ошибки в вашем коде:

user_input = input() if user_input == "Добавить" or "добавить": print('Это условие выполняется всегда!') 

Вы можете сами это проверить. Дело в том, что с учётом приоритетов операций условие выглядит так:

if (user_input == "Добавить") or ("добавить"): pass # do something 

Логическое выражение user_input == «Добавить» может принимать как истинное значение, так и ложное, а вот логическое значение строки «добавить» всегда истинно, т.к. любая непустая строка имеет истинное булево представление. Если хотите использовать именно такой подход к решению, а не приведением к нижнему регистру, условие должно иметь вид:

if user_input in ("Добавить", "добавить"): pass # do something 

Python: Цикл While

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

В этом уроке мы переходим к одной из самых сложных базовых тем в программировании — циклам.

Прикладные программы помогают управлять сотрудниками, финансами и могут развлекать. Несмотря на различия, они выполняют заложенные в них алгоритмы, которые похожи. Алгоритм — это последовательность действий, которая приводит к ожидаемому результату.

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

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

Напишем функцию с простым циклом, который будет n раз выводить на экран строку ‘Hello!’ :

def print_hello(n): counter = 0 while counter < n: print('Hello!') counter = counter + 1 print_hello(2) # =>Hello! # => Hello! 

Теперь проанализируем пример функции с циклом, который выводит на экран числа от одного до числа-аргумента:

print_numbers(3) # => 1 # => 2 # => 3 

Эту функцию невозможно реализовать уже изученными средствами, так как количество выводов на экран заранее неизвестно. А с циклами проблем не будет:

def print_numbers(last_number): # i сокращение от index (порядковый номер) # используется по общему соглашению во множестве языков # как счетчик цикла i = 1 while i 1 # => 2 # => 3 # => finished! 

Цикл while состоит из трех элементов:

  • Ключевое слово while
  • Предикат — условие, которое указывается после while и вычисляется на каждой итерации
  • Блок кода — тело цикла

Каждое выполнение тела называется итерацией. В примере выше print_numbers(3) вызвал три итерации, на каждой из которых была выведена на экран переменная i . Конструкция читается так: «делать то, что указано в теле цикла, пока истинно условие i

Разберем работу этого кода для вызова print_numbers(3) :

# Инициализируется i i = 1 # Предикат возвращает true, поэтому выполняется тело цикла while 1  

Процесс, который порождает цикл, должен остановиться. За это отвечает программист.

Обычно задача сводится к введению переменной — счетчику цикла. Сначала он инициализируется — ему задается начальное значение. В нашем примере это строчка i = 1 . Затем в условии цикла проверяется, не достиг ли счетчик своего предельного значения.

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

Если условие цикла истинно, то выполняется тело, в котором находится элемент остановки — изменение счетчика. Обычно его делают в конце тела, и это изменение — место, где нельзя обойтись без переменной. В примере выше за изменение отвечает строчка i = i + 1 .

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

def print_numbers(last_number): i = 1 # Этот цикл никогда не остановится # и будет печатать всегда одно значение while i  

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

while True: # Что-то делаем 

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

Задание

Модифицируйте функцию print_numbers() так, чтобы она выводила числа в обратном порядке. Для этого нужно идти от верхней границы к нижней. То есть счётчик должен быть инициализирован максимальным значением, а в теле цикла его нужно уменьшать до нижней границы.

Пример вызова и вывода:

print_numbers(4) 
4
3
2
1
finished!

Упражнение не проходит проверку — что делать? ��

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

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

В моей среде код работает, а здесь нет ��

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя ��

Это нормально ��, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно ��

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

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

Полезное

Определения

  • Цикл While — инструкция для повторения кода, пока удовлетворяется какое-то условие.

Циклы в программировании. Цикл while

Циклы являются такой же важной частью структурного программирования, как условные операторы. С помощью циклов можно организовать повторение выполнения участков кода. Потребность в этом возникает довольно часто. Например, пользователь последовательно вводит числа, и каждое из них требуется добавлять к общей сумме. Или нужно вывести на экран квадраты ряда натуральных чисел и тому подобные задачи.

Цикл while

"While" переводится с английского как "пока". Но не в смысле "до свидания", а в смысле "пока имеем это, делаем то".

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

while логическое_выражение

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

В случае while , после того как его тело выполнено, поток возвращается к заголовку цикла и снова проверяет условие. Если логическое выражение возвращает истину, то тело снова выполняется. Потом снова возвращаемся к заголовку и так далее.

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

Рассмотрите блок-схему цикла while .

Блок-схема цикла while

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

С циклом while возможны две исключительные ситуации:

  • Если при первом заходе в цикл логическое выражение возвращает False , то тело цикла не выполняется ни разу. Эту ситуацию можно считать нормальной, так как при определенных условиях логика программы может предполагать отсутствие необходимости в выполнении выражений тела цикла.
  • Если логическое выражение в заголовке while никогда не возвращает False , а всегда остается равным True , то цикл никогда не завершится, если только в его теле нет оператора принудительного выхода из цикла ( break ) или вызовов функций выхода из программы – quit() , exit() в случае Python. Если цикл повторяется и повторяется бесконечное количество раз, то в программе происходит зацикливание. В это время она зависает и самостоятельно завершиться не может.

Вспомним наш пример из урока про исключения. Пользователь должен ввести целое число. Поскольку функция input() возвращает строку, то программный код должен преобразовать введенное к целочисленному типу с помощью функции int() . Однако, если были введены символы, не являющиеся цифрами, то возникает исключение ValueError , которое обрабатывается веткой except . На этом программа завершается.

Другими словами, если бы программа предполагала дальнейшие действия с числом (например, проверку на четность), а она его не получила, то единственное, что программа могла сделать, это закончить свою работу досрочно.

Но ведь можно просить и просить пользователя корректно вести число, пока он его не введет. Вот как может выглядеть реализующий это код:

n = input("Введите целое число: ") while type(n) != int: try: n = int(n) except ValueError: print("Неправильно ввели!") n = input("Введите целое число: ") if n % 2 == 0: print("Четное") else: print("Нечетное")

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

Примечание 2. В выражении type(n) != int с помощью функции type() проверяется тип переменной n . Если он не равен int , то есть значение n не является целым числом, а является в данном случае строкой, то выражение возвращает истину. Если же тип n равен int , то данное логическое выражение возвращает ложь.

Примечание 3. Оператор % в языке Python используется для нахождения остатка от деления. Так, если число четное, то оно без остатка делится на 2, то есть остаток будет равен нулю. Если число нечетное, то остаток будет равен единице.

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

Здесь в ветке try совершается попытка преобразования строки к целочисленному типу. Если она была удачной, то ветка except пропускается, и поток выполнения снова возвращается к заголовку while .

Теперь n связана с целым числом, следовательно, ее тип int , который не может быть не равен int . Он ему равен. Таким образом логическое выражение type(n) != int возвращает False , и весь цикл завершает свою работу. Далее поток выполнения переходит к оператору if-else, находящемуся в основной ветке программы. Здесь могло бы находиться что угодно, не обязательно условный оператор.

Вернемся назад. Если в теле try попытка преобразования к числу была неудачной, и было выброшено исключение ValueError , то поток выполнения программы отправляется в ветку except и выполняет находящиеся здесь выражения, последнее из которых просит пользователя снова ввести данные. Переменная n теперь имеет новое значение.

После завершения except снова проверяется логическое выражение в заголовке цикла. Оно даст True , так как значение n по-прежнему строка.

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

Рассмотрим следующий пример:

total = 100 i = 0 while i  5: n = int(input()) total = total - n i = i + 1 print("Осталось", total)

Сколько раз "прокрутится" цикл в этой программе, то есть сколько итераций он сделает? Ответ: 5.

  1. Сначала переменная i равна 0. В заголовке цикла проверяется условие i < 5 , и оно истинно. Тело цикла выполняется. В нем меняется значение i , путем добавления к нему единицы.
  2. Теперь переменная i равна 1. Это меньше пяти, и тело цикла выполняется второй раз. В нем i меняется, ее новое значение 2.
  3. Два меньше пяти. Тело цикла выполняется третий раз. Значение i становится равным трем.
  4. Три меньше пяти. На этой итерации i присваивается 4.
  5. Четыре по прежнему меньше пяти. К i добавляется единица, и теперь ее значение равно пяти.

"Смысловая нагрузка" данного цикла – это последовательное вычитание из переменной total вводимых чисел. Переменная i в данном случае играет только роль счетчика итераций цикла. В других языках программирования для таких случаев предусмотрен цикл for , который так и называется: "цикл со счетчиком". Его преимущество заключается в том, что в теле цикла не надо изменять переменную-счетчик, ее значение меняется автоматически в заголовке for .

В языке Python тоже есть цикл for . Но это не цикл со счетчиком. В Питоне он предназначен для перебора элементов последовательностей и других сложных объектов. Данный цикл и последовательности будут изучены в последующих уроках.

Для while наличие счетчика не обязательно. Представим, что надо вводить числа, пока переменная total больше нуля. Тогда код будет выглядеть так:

total = 100 while total > 0: n = int(input()) total = total - n print("Ресурс исчерпан")

Сколько раз здесь выполнится цикл? Неизвестно, все зависит от вводимых значений. Поэтому у цикла со счетчиком известно количество итераций, а у цикла без счетчика – нет.

Самое главное для цикла while – чтобы в его теле происходили изменения значений переменных, которые проверяются в его заголовке, и чтобы хоть когда-нибудь наступил случай, когда логическое выражение в заголовке возвращает False . Иначе произойдет зацикливание.

Примечание 1. Не обязательно в выражениях total = total - n и i = i + 1 повторять одну и ту же переменную. В Python допустим сокращенный способ записи подобных выражений: total -= n и i += 1 .

Примечание 2. При использовании счетчика он не обязательно должен увеличиваться на единицу, а может изменяться в любую сторону на любое значение. Например, если надо вывести числа кратные пяти от 100 до 0, то изменение счетчика будет таким i = i - 5 , или i -= 5 .

Примечание 3. Для счетчика не обязательно использовать переменную с идентификатором i . Можно назвать переменную-счетчик как угодно. Однако так принято в программировании, что счетчики обозначают именами i и j (иногда одновременно требуются два счетчика).

Практическая работа

  1. Измените последний код из урока так, чтобы переменная total не могла уйти в минус. Например, после предыдущих вычитаний ее значение стало равным 25. Пользователь вводит число 30. Однако программа не выполняет вычитание, а выводит сообщение о недопустимости операции, после чего осуществляет выход из цикла.
  2. Используя цикл while , выведите на экран для числа 2 его степени от 0 до 20. Возведение в степень в Python обозначается как ** . Фрагмент вывода:
. 32 64 128 256 512 1024 .

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

Какая функция нужна для числа пи в Python?

Число Пи может быть вызвано с помощью константы pi встроенного в Python пакета math.

import math # для использования функции импортировать библиотеку math print(math.pi) # => 3.141592653589793 

11 апреля 2023

Мало ли кому интересно. Формула для вычисления любого количества знаков после запятой на питоне.

 epsilon: n += 1 arith = (a + b)/2 geom = sqrt(a*b) a, b = arith, geom series += 2**(n+1) * (a*a - b*b) diff = a - b # a and b have converged to the AGM my_pi = 4*a*a/(1 - series) error = fabs(pi - my_pi) decimal_places = int(-log10(error)) print("Number of steps used: %d" % n) print("Number of correct decimal places: %d" % decimal_places) print(pi) 

Python | Как сделать бесконечное прибавление к переменной?

Сделал скрипт который должен создать 2 файла:
a = 1
f = open('text' + str(a+1) + '.txt', 'w')
f = open('text' + str(a+1) + '.txt', 'w')
f.close()
Но создаётся только один, text2.txt
А я планировал: text2.txt и text3.txt
Как это сделать?

  • Вопрос задан более трёх лет назад
  • 1525 просмотров

17 комментариев

Простой 17 комментариев

longclaps

Это бесконечно трудная задача.
Meakin @Meakin Автор вопроса
longclaps, Сарказм.. и 'умники', Толку от тостера не особо, уже сам догадался

longclaps

Meakin, а ты быстро соображаешь! Мои поздравления.

kshnkvn

Meakin, тут не в тостере дело, вы не знакомы с базовыми операциями python, которые описываются в первой-второй главе любой книги, при этом что-то пытаетесь сделать.

Meakin @Meakin Автор вопроса

Ivan Yakushenko, В таком случае, тостер бесполезен) Какой бы вопрос ты не задал, кроме тупых ответов ты не получишь, разве что от экспертов, по поводу "базовых операций" Я знаю, просто не хочу сейчас листать учебник а протестить одну программу, поэтому задал вопрос сюда чтобы написали бесконечный цикл нескольких действий
(Не знаю как реализовать:)
num = 1
while num < 10:
a = 1
a+=1
f = open('text' + str(a) + '.txt', 'w')
a+=1
f = open('text' + str(a) + '.txt', 'w')
a+=1
f = open('text' + str(a) + '.txt', 'w')
a+=1
f = open('text' + str(a) + '.txt', 'w')
a+=1
f = open('text' + str(a) + '.txt', 'w')
a+=1
f = open('text' + str(a) + '.txt', 'w')
f.close()

Meakin @Meakin Автор вопроса

Meakin, Хочу сделать так, только бесконечно, а то самому 1000000 раз копировать и вставлять это не хочу..да и тупо.

kshnkvn

Цикл for в python.
Не считая листинга там 164 слова. При средней скорости чтения в 120 слов в минуту вы потратите чуть больше минуты на прочтение этой статьи. На прочтение с попыткой понять - не более 5 минут, я думаю.
Сколько времени вы потратили с момента создания этого вопроса и сколько вы уже ждете, пока кто-то за вас сделает то, что вы хотите сделать для себя?

Как создать бесконечный цикл в бесконечном цикле на Python

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

 while True: print("Введите 'Добавить' чтобы добавить два числа") user_input = input(": ") if user_input == "Добавить" or "добавить": while True: numb1 = float(input("Введите первое число: ")) numb2 = float(input("Введите второе число: ")) print(str(numb1), str(numb2)) 

Отслеживать
4,507 2 2 золотых знака 9 9 серебряных знаков 28 28 бронзовых знаков
задан 27 апр 2020 в 18:29
1 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака

Исключений, может, и нет. А вот ошибка как раз есть. Условие if user_input == "Добавить" or "добавить": всегда истинно.

27 апр 2020 в 18:34

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

>>> while True: . print("Введите 'Добавить' чтобы добавить два числа") . user_input = input(": ") . if user_input.lower() == "добавить": . while True: . numb1 = float(input("Введите первое число: ")) . numb2 = float(input("Введите второе число: ")) . print(str(numb1), str(numb2)) . Введите 'Добавить' чтобы добавить два числа : добавить Введите первое число: 10 Введите второе число: 5 10.0 5.0 Введите первое число: 15 Введите второе число: 3 15.0 3.0 Введите первое число: 123 Введите второе число: 10 123.0 10.0 Введите первое число: 

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

>>> while True: . print("Введите 'Добавить' чтобы добавить два числа") . user_input = input(": ") . if user_input.lower() == "добавить": . while True: . numb1 = float(input("Введите первое число: ")) . numb2 = float(input("Введите второе число: ")) . print(str(numb1), str(numb2)) . if numb1 == numb2: # условие, при котором цикл заканчивается. Я использовал условие равенства двух чисел, у вас оно может быть другим . break . print('***** Бесконечный цикл закончен, код дальше выполняется') . Введите 'Добавить' чтобы добавить два числа : добавить Введите первое число: 3 Введите второе число: 2 3.0 2.0 Введите первое число: 3 Введите второе число: 5 3.0 5.0 Введите первое число: 5 Введите второе число: 5 5.0 5.0 ***** Бесконечный цикл закончен, код дальше выполняется Введите 'Добавить' чтобы добавить два числа : 

Что касательно ошибки в вашем коде:

user_input = input() if user_input == "Добавить" or "добавить": print('Это условие выполняется всегда!') 

Вы можете сами это проверить. Дело в том, что с учётом приоритетов операций условие выглядит так:

if (user_input == "Добавить") or ("добавить"): pass # do something 

Логическое выражение user_input == "Добавить" может принимать как истинное значение, так и ложное, а вот логическое значение строки "добавить" всегда истинно, т.к. любая непустая строка имеет истинное булево представление. Если хотите использовать именно такой подход к решению, а не приведением к нижнему регистру, условие должно иметь вид:

if user_input in ("Добавить", "добавить"): pass # do something 

Какая функция нужна для числа пи в Python?

Число Пи может быть вызвано с помощью константы pi встроенного в Python пакета math.

import math # для использования функции импортировать библиотеку math print(math.pi) # => 3.141592653589793 

11 апреля 2023

Мало ли кому интересно. Формула для вычисления любого количества знаков после запятой на питоне.

 epsilon: n += 1 arith = (a + b)/2 geom = sqrt(a*b) a, b = arith, geom series += 2**(n+1) * (a*a - b*b) diff = a - b # a and b have converged to the AGM my_pi = 4*a*a/(1 - series) error = fabs(pi - my_pi) decimal_places = int(-log10(error)) print("Number of steps used: %d" % n) print("Number of correct decimal places: %d" % decimal_places) print(pi) 

Циклы в Python: как работают и какие бывают

Они есть практически в каждом языке программирования, но в Python с ними работать приятнее всего. Как, впрочем, и со всем остальным.

Иллюстрация: Катя Павловская для Skillbox Media

Иван Стуков

Иван Стуков
Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.

Код в Python обычно выполняется последовательно: первая строка, потом вторая, третья и так далее. Но некоторые конструкции позволяют нарушать этот порядок, чтобы совершать более сложные операции.

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

  • Функция range()
  • Однострочный цикл: генератор списков
  • Прерывание цикла: ключевое слово break
  • Пропуск части цикла: ключевое слово continue
  • Последнее действие в цикле: ключевое слово else
  • Бесконечный цикл
  • Как сделать аналог do while в Python
  • Вложенные циклы в Python

Как работают циклы

Любой цикл состоит из двух обязательных элементов:

  • условие — начальный параметр; цикл запустится только при его выполнении и закончится, как только условие перестанет выполняться;
  • тело — сама программа, которая выполняется внутри цикла.

Схематически его можно представить так:

В синтаксисе Python в конце строки с условием ставится двоеточие, а всё тело выделяется отступом (табуляцией или четырьмя пробелами).

В Java и C++ такое достигается с помощью конструкции do while, но в Python её нет. Зато можно сделать аналог. Для этого нужно использовать бесконечный цикл, а внутри его тела прописать условие завершения.

Можно вкладывать друг в друга сколько угодно циклов. При этом для каждого нового уровня вложенности нужно увеличивать отступ. Выглядит это так:

while condition: pass while inner_condition: pass pass

Напишем программу, которая будет выводить номер итерации внешнего и внутреннего цикла.

for i in range(3): print(f'Итерация внешнего цикла: ') for j in range(2): print(f'Итерация внутреннего цикла: ') >>> Итерация внешнего цикла: 0 >>> Итерация внутреннего цикла: 0 >>> Итерация внутреннего цикла: 1 >>> Итерация внешнего цикла: 1 >>> Итерация внутреннего цикла: 0 >>> Итерация внутреннего цикла: 1 >>> Итерация внешнего цикла: 2 >>> Итерация внутреннего цикла: 0 >>> Итерация внутреннего цикла: 1

Резюмируем

  • Циклы — один из основных инструментов любого Python-разработчика. С их помощью всего за пару строчек кода можно совершить сразу множество повторяющихся действий.
  • Циклы состоят из условия и тела. Код в теле выполняется только до тех пор, пока соблюдено условие.
  • В Python есть два вида циклов: while и for. В while условие задаётся явным образом. В for перебирается каждый элемент коллекции.
  • К обоим видам можно применять разные операторы: break для прерывания, continue для пропуска части тела, else для совершения последнего действия перед выходом из цикла.
  • Циклы можно делать бесконечными (тогда программа никогда не завершится или завершится только при выполнении определённого условия) и вкладывать друг в друга.

Больше интересного про код в нашем телеграм-канале. Подписывайтесь!

Читайте также:

  • Типы данных в Python для начинающих: какие бывают и как с ними работать
  • Тест: что ты знаешь про Никлауса Вирта — разработчика Pascal
  • Чат-боты в Telegram на Python. Часть 1. Выбираем библиотеку и пишем первого бота

То есть объект, который может возвращать элементы по одному.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *