Я немного новичок в python и задаю себе задачу, мне нужна игра с угадыванием чисел, которая заставит вас угадать четыре цифры, и программа будет рассказывать вам, сколько чисел вы угадываете, пока не угадаете полный список чисел.
running = True import random def compareLists(a, b): return list(set(a) Get ready to guess 4 numbers!») for i in range(0, 4): x = int(input(«Guess: «)) gNums.append(x) print(«You guessed: «, gNums) comparison = len(compareLists(rNums, gNums)) while gNums and rNums: if gNums != rNums: print(«You guessed » + str(comparison) + » numbers right, keep guessing!») break elif gNums == rNums: print(«What amazing luck!») while running: start()
Проблема в том, что когда я использую break, создается новый список из 4 чисел, я хочу, чтобы python просто возвращался к началу цикла, а не создавал новый список!
Лучший ответ:
rNums = random.sample(range(10), 4)
вне цикла и передать rNums для запуска. Таким образом, у вас будут одинаковые четыре числа в списке. Надеюсь это поможет
Уроки Python / Повторное использование кода с помощью функций и модулей (часть 1)
Вы хотите использовать continue . Попробуйте это с помощью примера с игрушкой:
i = 0; while i < 10: i += 1 if i % 2 == 0: continue print i
1 3 5 7 9
Чтобы свести к минимуму количество циклов, происходящих в вашем коде, я бы, вероятно, сначала поместил ваши случайные числа в словаре.
Что-то вроде этого (возможно, более эффективный способ сделать это… но это первое, что появилось в моей голове):
from collections import Counter d = Counter(random.sample(range(10), 4))
Начните свой цикл while и продолжайте просить пользователя угадать. Каждый раз, когда они делают правильное предположение, просто выполните эту операцию:
d.pop(correctly_guessed_num)
Как только ваш словарь пуст, вы закончите, и вы сломаете цикл.
EDIT добавляет мой быстрый удар по реализации. Не все продумано, могут быть некоторые крайние случаи, которые нарушают это… но это общая идея. Надеюсь, поможет.
from collections import Counter import random d = Counter(random.sample(range(1, 10), 4)) size = len(d) — 1 while True: x = int(input(«Guess: «)) if size == 0: print(«you guessed them all, way to go») break if x not in d: print(«keep going buddy») continue else: d.pop(x) size -= 1 print(«A right guess»)
Источник: techarks.ru
Python. Как вернуться в начало?
Как мне сделать кнопку, возвращающую все в начало, то есть до кнопки click ?
- Вопрос задан более двух лет назад
- 705 просмотров
Решения вопроса 0
Ответы на вопрос 1
лужу, паяю, ЭВМы починяю
Оберни то, что надо повторять, в цикл while True: и вставь ожидание ввода (типа input() )
Как работает return в Python / Как работает return в Питоне
или проверку event-а какого-нибудь.
Ответ написан более двух лет назад
Нравится Комментировать
Источник: qna.habr.com
Функция return в Python
Оператор возврата в python используется для возврата значений из функции. Мы можем использовать оператор return только в функции. Его нельзя использовать вне функции Python.
Функция без оператора возврата
Каждая функция в Python что-то возвращает. Если функция не имеет никакого оператора возврата, она возвращает None.
def print_something(s): print(‘Printing::’, s) output = print_something(‘Hi’) print(f’A function without return statement returns ‘)