2016-09-22 7 views
1

Запуск на Python, это пример моего кода:Как я могу спросить пользователя, хотят ли они снова играть и повторить цикл while?

import random 

comp = random.choice([1,2,3]) 

while True: 
    user = input("Please enter 1, 2, or 3: ") 
    if user == comp 
      print("Tie game!") 
    elif (user == "1") and (comp == "2") 
      print("You lose!") 
      break 
    else: 
      print("Your choice is not valid.") 

Так эта часть работы. Однако, как мне выйти из этого цикла, потому что после ввода правильного ввода он продолжает спрашивать «Пожалуйста, введите 1,2,3».

Я также хочу спросить, если игрок хочет играть снова:

Psuedocode:

 play_again = input("If you'd like to play again, please type 'yes'") 
    if play_again == "yes" 
     start loop again 
    else: 
     exit program 

Является ли это связано с вложенного цикла каким-то образом?

+0

Что вы имеете в виду "правильный вход"? Ваша программа позволяет в большинстве случаев «Галстук!». Это после ввода правильного ввода? Вы хотите разбить цикл после этого? Если да, то вы можете легко следовать той же схеме «Ты проиграешь!». case ... –

ответ

3

Очки для вашего кода:

  1. код вы вставили не ':' после if,elif и else.
  2. Все, что вы хотите, может быть achived с помощью инструкций Flow Control, как continue and break. Please check here for more detail.
  3. Вам необходимо удалить разрыв с "YOU LOSE", так как вы хотите спросить пользователя, хочет ли он играть.
  4. Код, который вы написали, никогда не ударит «Tie Game», поскольку вы сравниваете строку с целым числом. Пользовательский ввод, который сохраняется в переменной, будет строкой, а comp, который является выходным из случайного, будет целым. Вы конвертируете пользовательский ввод в целое число как int(user).
  5. Проверка ввода пользователя действительна или нет, можно просто проверить с помощью оператора in.

Код:

import random 

while True: 
    comp = random.choice([1,2,3]) 
    user = raw_input("Please enter 1, 2, or 3: ") 
    if int(user) in [1,2,3]: 
     if int(user) == comp: 
      print("Tie game!") 
     else: 
      print("You lose!") 
    else: 
      print("Your choice is not valid.") 

    play_again = raw_input("If you'd like to play again, please type 'yes'") 
    if play_again == "yes": 
     continue 
    else: 
     break 
+0

@Lizzie - Пожалуйста, ознакомьтесь с обновленным кодом и комментариями –

Смежные вопросы