Yura Y Yura Регистрация 23 Мар 2013 Сообщения 96 Репутация 0 Спасибо 0 Монет 0 7 Фев 2023 #1 Например это викторина, пользователь не правильно ввёл ответ и нужно чтобы программа его переспрашивала до тех пор, пока он не введёт ответ верно.
Например это викторина, пользователь не правильно ввёл ответ и нужно чтобы программа его переспрашивала до тех пор, пока он не введёт ответ верно.
русл Р русл Регистрация 11 Ноя 2013 Сообщения 79 Репутация 0 Спасибо 0 Монет 0 7 Фев 2023 #2 никак! зачем вам вообще это понадобилось?
Svolo4b S Svolo4b Регистрация 13 Ноя 2013 Сообщения 70 Репутация -2 Спасибо 0 Монет 0 7 Фев 2023 #3 Да никак, используй while и управляй через счетчик..
nikitagraff N nikitagraff Регистрация 20 Авг 2013 Сообщения 90 Репутация 1 Спасибо 1 Монет 0 7 Фев 2023 #4 Отвечая именно на вопрос в заголовке: использовать свой класс в качестве итерируемого объекта и в нем делать действия, которые будут являться возвратом. А так вайлом проще конечно. class TipaRange: def __init__(self, a, b): self.a = a - 1 self.b = b def __iter__(self): return self def __next__(self): self.a += 1 if self.a >= self.b: raise StopIteration return self.a def return_back(self): self.a -= 1 r = TipaRange(1, 5) for i in r: x = int(input(f"{i} % 2 = ")) if i % 2 != x: r.return_back()
Отвечая именно на вопрос в заголовке: использовать свой класс в качестве итерируемого объекта и в нем делать действия, которые будут являться возвратом. А так вайлом проще конечно. class TipaRange: def __init__(self, a, b): self.a = a - 1 self.b = b def __iter__(self): return self def __next__(self): self.a += 1 if self.a >= self.b: raise StopIteration return self.a def return_back(self): self.a -= 1 r = TipaRange(1, 5) for i in r: x = int(input(f"{i} % 2 = ")) if i % 2 != x: r.return_back()
ямокаси Я ямокаси Регистрация 17 Дек 2013 Сообщения 74 Репутация 0 Спасибо 1 Монет 0 7 Фев 2023 #5 По-нормальному - такой цикл с помощью while делается.