Как вернуться в начало цикла Python
Каким образом, при введении длины строки, не попадающей под условие, вернуть цикл в самое начало? main.py:
while len(card) != 8: if len(card) == 8: print('Карта найдена.') else: print('Номер указан неверно. Попробуйте еще раз')
Отслеживать
73.5k 110 110 золотых знаков 38 38 серебряных знаков 55 55 бронзовых знаков
задан 8 ноя 2019 в 20:09
11 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
while True: card = input("Введите номер: ") if len(card) == 8: print('Карта найдена.') break else: print('Номер указан неверно. Попробуйте еще раз')
Отслеживать
ответ дан 8 ноя 2019 в 20:19
73.5k 110 110 золотых знаков 38 38 серебряных знаков 55 55 бронзовых знаков
Сработало. Спасибо
9 ноя 2019 в 16:18
- python
- python-3.x
- циклы
- while
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Циклы for и while, операторы break и continue, волшебное слово else

В этой статье я расскажу о циклах for и while, операторах break и continue, а также о слове else, которое, будучи употребленное с циклом, может сделать программный код несколько более понятным.
Цикл while
While — один из самых универсальных циклов в Python, поэтому довольно медленный. Выполняет тело цикла до тех пор, пока условие цикла истинно.
Цикл for уже чуточку сложнее, чуть менее универсальный, но выполняется гораздо быстрее цикла while. Этот цикл проходится по любому итерируемому объекту (например строке или списку), и во время каждого прохода выполняет тело цикла.
Оператор continue
Оператор continue начинает следующий проход цикла, минуя оставшееся тело цикла (for или while)
Оператор break
Оператор break досрочно прерывает цикл.
Слово else, примененное в цикле for или while, проверяет, был ли произведен выход из цикла инструкцией break, или же «естественным» образом. Блок инструкций внутри else выполнится только в том случае, если выход из цикла произошел без помощи break.
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Как вернуться в самое начало цикла?

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

7EVENx @7EVENx Автор вопроса
edward_freedom, на ютубе показаны примеры только как по сообщению вывести чтото типо пока, привет, а как работать с дальнейшими командами - нет, где это можно найти? только по документации работать сложно

7EVENx @7EVENx Автор вопроса
Illia Nezhyhai, тот же вопрос к Вам
заменить while true на чо нибудь более разумное.

7EVENx @7EVENx Автор вопроса
ввести флаг по которому будет продолжаться цикл. При вводе команды "задолбал" вместо числа для перевода флаг сбрасывается. После сброса флага сразу break.
А лучше плюнь на все это и займись тем, что у тебя действительно получается.
Я не совсем сварщик, но ИМХО, тут нужно писать зацикленный обработчик сообщений с изменяющимся (в зависимости от команд пользователя) состоянием.

7EVENx @7EVENx Автор вопроса
lz961, представь бы тебе сказали плюнь на это, когда ты учился программировать
так вы ведь не учитесь, а ерундой страдаете. Освойте сначала базовые вещи, погуглите, что такое "автоматная программа" например, где то потом разберите API VK и только после этого сочиняйте ботов.

edward_freedom @edward_freedom
7EVENx, ты как то не так начал учиться. Ты прочитал книги, освоил всю теорию?
7EVENx, Проблема в том, что евент бейсед это не совсем просто и тут надо иметь знания, и понимание как можно что-то состряпать, по коду же видно, что этого понимания нет. Тебе надо писать обработчики событий которые будут обрабатывать то, что возвращает longpoll.listen() ну и соответственно хранить как, какие, и от кого события нужно обрабатывать.
А уроки надо не на ютубе искать, а читать статьи и книжки
7EVENx, Ниразу не писал бота для вк, но на, раз уж тут на тебя напали и задизморалили, то вот я тебе написал как бы я это делал если бы пришлось писать бота для вк, может быть тебе это поможет. Но как тебе уже писали, нужна база, сразу за сложные вещи браться это не дело.
STATE_CONVERT_CC = 1 STATE_WAIT_CURRENT_CC = 2 STATE_WAIT_NEW_CC = 3 cc_convert = <> def change_cc(peer_id, text): state = cc_convert[peer_id]["state"] if state == STATE_CONVERT_CC: cc_num(peer_id, text) elif state == STATE_WAIT_CURRENT_CC: current_cc(peer_id, text) elif state == STATE_WAIT_NEW_CC: new_cc(peer_id, text) def cc_num(peer_id, text): if text.isdigit(): cc_convert[peer_id]["number"] = int(text) cc_convert[peer_id]["state"] = STATE_WAIT_CURRENT_CC write_msg(event.peer_id, 'Введите изначальную CC') def current_cc(peer_id, text): if text.isdigit(): cc_convert[peer_id]["from_cc"] = int(text) cc_convert[peer_id]["state"] = STATE_WAIT_NEW_CC write_msg(event.peer_id, 'Введите CC, в которую нужно перевести число') def new_cc(peer_id, text): if text.isdigit(): to_cc = int(text) from_cc = cc_convert[peer_id]["from_cc"] number = cc_convert[peer_id]["number"] result = convert_base(number, to_cc, from_cc) cc_convert.pop(peer_id) write_msg(peer_id, result) # . # MAIN for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: request = event.text if request.lower() == "привет": write_msg(event.user_id, "Здравствуй!") elif request.lower() == "пока": write_msg(event.user_id, "Пока((") elif request.lower() == "спасибо": write_msg(event.user_id, "Всегда пожалуйста!") elif request in set(commands_later): write_msg(event.user_id, 'Скоро все будет)') elif request in set(commands): peer_id = event.peer_id if peer_id not in cc_convert: cc_convert[peer_id] = write_msg(event.peer_id, 'Введите число для перевода в другую CC') else: change_cc(peer_id, event.text)
Как вернуться в начало программы на любом языке программирования?

Важной частью процесса создания программы является способность организовывать логику ее выполнения и, при необходимости, вернуться в начало программы. Этот процесс может потребоваться в различных сценариях, например, для обработки ошибок, выполнения повторных итераций или просто для создания интерактивных приложений. В этой статье мы рассмотрим различные способы возврата к началу программы на различных языках программирования. Мы рассмотрим использование циклов, условных операторов и других инструментов, которые помогут вам эффективно управлять потоком выполнения вашей программы и делать ее более гибкой и интерактивной.
Теория
Для возврата к началу программы на любом популярном языке программирования вы можете использовать циклы, такие как for, while или do-while, либо оператор goto. Однако использование оператора goto не рекомендуется, так как он может делать код менее читаемым и управляемым, и может привести к проблемам с поддержкой и отладкой. Рекомендуется использовать циклы и условные операторы для организации логики вашей программы.
Ниже представлены примеры использования цикла while для создания бесконечного цикла, который может быть прерван с помощью условия. В этих примерах программа будет выполняться до тех пор, пока переменная равна true. Как только пользователь введет «нет» в ответ на вопрос, программа завершит выполнение и выйдет из цикла. Вы можете изменить логику внутри цикла в зависимости от ваших потребностей.
C++
Этот код на языке C++ представляет собой простую программу, которая выполняет цикл, позволяя пользователю решать, хочет ли он продолжить выполнение программы или завершить ее.
#include int main() < bool continueProgram = true; while (continueProgram) < // Ваш код здесь std::cout > continueProgram; if (!continueProgram) < std::cout > return 0; >
Давайте разберем, что делает каждая часть кода:
Это объявление переменной continueProgram, которая имеет тип bool (логический тип данных) и инициализируется значением true. Эта переменная будет использоваться для управления выполнением программы.
bool continueProgram = true;
Это цикл while, который выполняется, пока значение переменной continueProgram равно true. Внутри этого цикла находится блок кода, который будет выполняться повторно, пока пользователь не решит завершить программу.
while (continueProgram)
Этот код выводит на экран сообщение, предлагая пользователю выбрать, хочет ли он продолжить выполнение программы.
std::coutЭтот код считывает ввод пользователя и сохраняет его в переменную continueProgram. Если пользователь введет 1, то continueProgram останется равным true, и программа продолжит выполнение. Если пользователь введет 0, то continueProgram станет равным false, и цикл завершится.
std::cin >> continueProgram;Это условный оператор if, который проверяет, если значение continueProgram равно false, т.е., если пользователь выбрал завершить программу, то выводится сообщение «Программа завершена.».
if (!continueProgram)Таким образом, программа будет продолжать выполняться до тех пор, пока пользователь не введет 0 (то есть пока не введен 0 программа будет возвращаться в начало), после чего она завершится.
C#
using System; class Program < static void Main() < bool continueProgram = true; while (continueProgram) < // Ваш код здесь Console.Write("Хотите продолжить? (да/нет): "); string input = Console.ReadLine(); if (input.ToLower() != "да") < continueProgram = false; Console.WriteLine("Программа завершена."); >> > >Python
Рассмотрим пример, как можно вернуться в начало программы на Python.
while True: # Ваш код здесь response = input("Хотите продолжить? (да/нет): ") if response.lower() != "да": print("Программа завершена.") break # Выход из бесконечного циклаЕсли пользователь вводит что-то отличное от «да», программа завершит выполнение и выйдет из цикла с помощью оператора break.
Java
import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner scanner = new Scanner(System.in); String response; while (true) < // Ваш код здесь System.out.print("Хотите продолжить? (да/нет): "); response = scanner.next(); if (!response.equalsIgnoreCase("да")) < System.out.println("Программа завершена."); break; // Выход из бесконечного цикла >> > >Pascal
program StartOverDemo; var ContinueProgram: Boolean; Response: string; begin ContinueProgram := True; while ContinueProgram do begin // Ваш код здесь Write('Хотите продолжить? (да/нет): '); Readln(Response); if not SameText(Response, 'да') then begin ContinueProgram := False; Writeln('Программа завершена.'); end; end; end.JavaScript
let continueProgram = true; while (continueProgram) < // Ваш код здесь let response = prompt('Хотите продолжить? (да/нет)'); if (response && response.toLowerCase() !== 'да') < continueProgram = false; alert('Программа завершена.'); >>