虽然循环,if-else语句:猜我的号码游戏

问题描述:

我是一个初学者使用python,并正在写一个“猜我的号码游戏”。到目前为止,我有一切正常工作。计算机从1到3之间选取一个随机数,并要求玩家猜测数字。如果猜测高于随机数,程序打印“下”,反之亦然。玩家只有5次尝试,当玩家用完时,玩家会收到一条消息,游戏结束。如果玩家猜对了,他们会被祝贺,游戏结束。但是,有时当数猜中,程序不打印贺电,我想不通为什么...虽然循环,if-else语句:猜我的号码游戏

import random 

print("\tWelcome to 'Guess My Number'!:") 
print("\nI'm thinking of a numer between 1 and 100.") 
print("Guess carefully, you only have 5 tries!.\n") 

#sets initial values 
the_number = random.randint(1,3) 
guess = int(input("Take a guess: ")) 
tries = 1 
guesses = 4 


#guessing loop 
while guess != the_number: 
    if guess > the_number: 
     print("Lower...") 
    elif guesses <= 0: 
     print("Sorry, you're out of guesses! Try again...") 
     break 

    elif guess < the_number: 
     print("Higher...") 



    guess = int(input("Take a guess: ")) 
    tries += 1 
    guesses -= 1 

    if guess == the_number: 
     print("You guessed it! The number was", the_number) 
     print("And it only took you", tries, "tries!\n") 
+1

'如果guess == the_number'在while循环中......它永远不会是真的 –

+0

啊......当然。谢谢! –

假定其他一切作品,取消缩进的最后检查。您不能检查guess == the_number趁其不等于

#guessing loop 
while guess != the_number: 
    # do logic 

# outside guessing loop 
if guesses > 0: 
    print("You guessed it! The number was", the_number) 
    print("And it only took you", tries, "tries!\n") 
+1

'if'仍然需要,因为循环可能会由于猜测用完而结束。 – Barmar

+0

是的,公平点。 –

如果你想在你的第一次尝试的数量,程序将需要另一种猜测仍然因为

guess = int(input("Take a guess: ")) 
tries += 1 
guesses -= 1 

if guess == the_number: 
    print("You guessed it! The number was", the_number) 
    print("And it only took you", tries, "tries!\n") 

当你已经要求在循环之外进行猜测时。你应该只要求输入回路内:

the_number = random.randint(1,3) 
tries = 0 
guesses = 5 

#guessing loop 
guess = None 
while guess != the_number: 
    guess = int(input("Take a guess: ")) 
    tries += 1 
    guesses -= 1 

    if guess > the_number: 
     print("Lower...") 
    elif guess < the_number: 
     print("Higher...") 

    if guess == the_number: 
     print("You guessed it! The number was", the_number) 
     print("And it only took you", tries, "tries!\n") 

    if guesses <= 0: 
     print("Sorry, you're out of guesses! Try again...") 
     break 

要回答你的是,缺乏贺电的正确数量的原题,结束与输入(代码),以确保它不显示上次之前终止信息。

订单计算的:

  1. 给输入猜
  2. 减小猜测(开始于5),增加的尝试(从1开始)
  3. 即时断裂如果猜测== 0
  4. 评估猜测(更低,更高或相等,其将在循环结束时)

import random 
 

 
print("\tWelcome to 'Guess My Number'!:") 
 
print("\nI'm thinking of a numer between 1 and 3.") 
 
print("Guess carefully, you only have 5 tries!.\n") 
 

 
#sets initial values 
 
the_number = random.randint(1,3) 
 
guess = int(input("Take a guess: ")) 
 
tries = 1 
 
guesses = 5 
 

 

 
#guessing loop 
 

 

 
while guess != the_number: 
 
    tries += 1 
 
    guesses -= 1 
 

 
    if guesses == 0: 
 
     print("Sorry, you're out of guesses! Try again...") 
 
     break 
 

 
    elif guess > the_number: 
 
     print("Lower...") 
 
    elif guess < the_number: 
 
     print("Higher...") 
 

 
    
 

 
    guess = int(input("Take a guess: ")) 
 

 
if guess == the_number: 
 
    print("You guessed it! The number was", the_number) 
 
    print("And it only took you", tries, "tries!\n") 
 

 
input()