询问用户是否想再玩一次

时间:2014-11-16 20:00:53

标签: python loops random

基本上它是一个猜谜游戏,除了最后一部分,它询问用户是否想要再玩一次。我如何编码,我使用while循环正确?

继承我的代码:

import random
number=random.randint(1,1000)
count=1
guess= eval(input("Enter your guess between 1 and 1000 "))

while guess !=number:
count+=1

 if guess > number + 10:
  print("Too high!")
 elif guess < number - 10:
  print("Too low!")
 elif guess > number:
  print("Getting warm but still high!")
 elif guess < number:
  print("Getting warm but still Low!")

 guess = eval(input("Try again "))
print("You rock! You guessed the number in" , count , "tries!")

while guess == number:
 count=1
 again=str(input("Do you want to play again, type yes or no "))
if again == yes:

guess = eval(输入(&#34;输入1到1000之间的猜测&#34;)

if again == no:
break

4 个答案:

答案 0 :(得分:1)

围绕整个计划循环一段时间

import random

play = True

while play:
  number=random.randint(1,1000)
  count=1
  guess= eval(input("Enter your guess between 1 and 1000 "))

    while guess !=number:
      count+=1

      if guess > number + 10:
        print("Too high!")
      elif guess < number - 10:
        print("Too low!")
      elif guess > number:
        print("Getting warm but still high!")
      elif guess < number:
        print("Getting warm but still Low!")

      guess = eval(input("Try again "))
    print("You rock! You guessed the number in" , count , "tries!")

    count=1
    again=str(input("Do you want to play again, type yes or no "))
    if again == "no":
      play = False

答案 1 :(得分:0)

不要使用eval(正如@iCodex所说) - 这有风险,请使用int(x)。一种方法是使用函数:

import random
import sys

def guessNumber():
    number=random.randint(1,1000)
    count=1
    guess= int(input("Enter your guess between 1 and 1000: "))

    while guess !=number:
        count+=1
        if guess > (number + 10):
            print("Too high!")
        elif guess < (number - 10):
            print("Too low!")
        elif guess > number:
            print("Getting warm but still high!")
        elif guess < number:
            print("Getting warm but still Low!")

        guess = int(input("Try again "))

    if guess == number:
        print("You rock! You guessed the number in ", count, " tries!")
        return

guessNumber()

again = str(input("Do you want to play again (type yes or no): "))
if again == "yes":
    guessNumber()
else:
    sys.exit(0)

使用函数意味着您可以根据需要重复使用同一段代码。

在这里,你将猜测部分的代码放在一个名为guessNumber()的函数中,调用函数,最后,让用户再次去,如果他们愿意,他们再次进入函数

答案 2 :(得分:0)

将您的逻辑分离为函数

def get_integer_input(prompt="Guess A Number:"):
    while True:
       try: return int(input(prompt))
       except ValueError:
          print("Invalid Input... Try again")

例如,获取整数输入和主游戏

import itertools
def GuessUntilCorrect(correct_value):
   for i in itertools.count(1):
       guess = get_integer_input()
       if guess == correct_value: return i
       getting_close = abs(guess-correct_value)<10
       if guess < correct_value:
          print ("Too Low" if not getting_close else "A Little Too Low... but getting close")
       else:
          print ("Too High" if not getting_close else "A little too high... but getting close")

然后你可以像

一样玩
tries = GuessUntilCorrect(27) 
print("It Took %d Tries For the right answer!"%tries)

你可以把它放在循环中以永远运行

while True:
     tries = GuessUntilCorrect(27) #probably want to use a random number here
     print("It Took %d Tries For the right answer!"%tries)
     play_again = input("Play Again?").lower()
     if play_again[0] != "y":
        break

答案 3 :(得分:0)

我想修改这个程序,以便它可以询问用户是否要输入另一个号码,如果他们回答“否”,程序终止,反之亦然。这是我的代码:

step=int(input('enter skip factor: '))
num = int(input('Enter a number: '))

while True:
  for i in range(0,num,step):    

    if (i % 2) == 0: 
       print( i, ' is Even')
    else:
       print(i, ' is Odd')
again = str(input('do you want to use another number? type yes or no')
        if again = 'no' :     
            break