2015-02-12 3 views
-1

Так что я очень новичок в python, поскольку большую часть своего времени я провожу с помощью HTML и CSS. Я создаю небольшой проект, чтобы помочь мне практиковать, который является количество игр гадать:Как добавить цикл в мою угадающую игру на питоне?

guess_number = (800) 

guess = int(input('Please enter the correct number in order to win: ')) 

if guess != guess_number: 
    print('Incorrect number, you have 2 more attempts..') 

    guess2 = int(input('Please enter the correct number in order to win: ')) 

    if guess2 != guess_number: 
     print('Incorrect number, you have 1 more attempts..') 

     guess2 = int(input('Please enter the correct number in order to win: ')) 

    if guess2 != guess_number: 
     print() 
     print('Sorry you reached the maximum number of tries, please try again...') 

    else: 
     print('That is correct...') 


elif guess == guess_number: 
    print('That is correct...') 

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

Спасибо.

+0

В будущем (поскольку уже есть ответ ..), пожалуйста, попытайтесь ответить на свой вопрос. Вы можете очень легко google python loops и выяснить это –

+0

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

+0

@pythonisking, который будет * всегда иметь место *; кроме самых тривиальных, хорошо известных упражнений, вы не найдете, чтобы кто-то делал именно то, что вы есть. Одним из ключевых навыков программирования (/ жизнь в целом) является использование общих методов и их применение к конкретным проблемам. Если вы не можете принимать общие идеи о цикле и подсчете и применять их к такой простой проблеме, вы потоплены. – jonrsharpe

ответ

0

есть счетчик, который содержит количество дополнительно разрешенных ответов:

guess_number = 800 
tries_left = 3 

while tries_left > 0: 
    tries_left -= 1 
    guess = int(input('Please enter the correct number in order to win: ')) 
    if guess == guess_number: 
     print('That is correct...') 
     break 
    else: 
     print('Incorrect number, you have ' + str(tries_left if tries_left > 0 else 'no') + ' more attempts..') 
0

Если вы не знаете, сколько раз вам нужно зацикливать заранее, используйте петлю while.

correct_guess = False 
while not correct_guess: 
    # get user input, set correct_guess as appropriate 

Если вы знаете, сколько раз (или есть верхняя граница), используйте for петлю.

n_guesses = 3 
correct_guess = False 
for guess_num in range(n_guesses): 
    # set correct_guess as appropriate 

    if correct_guess: 
     # terminate the loop 
     print("You win!") 
     break 
else: 
    # if the for loop does not break, the else block will run 
    print("Out of guesses!") 
0

Вы получите ошибку, TypeError: Can't convert 'int' object to str implicitly если вы идете с ответом, который вы выбрали. Добавьте str(), чтобы преобразовать попытки слева в строку. См. Ниже:

guess_number = 800 
tries_left = 3 

while tries_left > 0: 
    tries_left -= 1 
    guess = int(input('Please enter the correct number in order to win: ')) 
    if guess == guess_number: 
     print('That is correct...') 
     break 
    else: 
     print('Incorrect number, you have ' + (str(tries_left) if tries_left > 0 else 'no') + ' more attempts..') 
+0

Привет, да, я знаю эту ошибку, и я ее исправил. Я отредактировал оригинальный ответ L3viathan, но я жду, когда кто-то его оценит. Исправлено бы: print («Неверное число, у вас есть», + try_left, если try_left> 0 else «нет», «больше попыток ..») – pythonisking

+0

Хорошо, да. Это также устраняет проблему. Спасибо за информацию! Вы случайно знаете, почему исправление запятой также работает? Я пытаюсь узнать больше, так как я новичок в python. Мне сложно найти документацию о том, как это работает, так как я не знаю, как называется этот подход. – Chironian