Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 猜谜游戏:将用户输入与随机生成的数字匹配_Python_Python 3.x - Fatal编程技术网

Python 猜谜游戏:将用户输入与随机生成的数字匹配

Python 猜谜游戏:将用户输入与随机生成的数字匹配,python,python-3.x,Python,Python 3.x,因此,对于这个程序,我试图找出如何让用户输入一个数字,并猜测程序生成的数字(1到10)。似乎每次我输入一个值,它总是给我“你猜对了数字!”字符串,即使我输入的值高于10 编辑:为什么有人会否决我的问题o_o你需要在while循环中获取用户的输入,以便用户的输入在每次迭代中都得到更新 def var (guess): return guess guess = int(input("Guess a number 1 through 10: ")) import random num =

因此,对于这个程序,我试图找出如何让用户输入一个数字,并猜测程序生成的数字(1到10)。似乎每次我输入一个值,它总是给我“你猜对了数字!”字符串,即使我输入的值高于10


编辑:为什么有人会否决我的问题o_o

你需要在while循环中获取用户的输入,以便用户的输入在每次迭代中都得到更新

 def var (guess):
    return guess


guess = int(input("Guess a number 1 through 10: "))
import random
num = (random.randint(1,10))

while True:
    try:
        guess = num
        print("you guessed the right number!")
        break
    except:
        print("try again")
        break

try/except
用于异常处理,不匹配值。您要查找的是
if
stations,例如:

import random
num = (random.randint(1,10))

while True:
    try:
        guess = int(input("Guess a number 1 through 10: "))
        if guess == num:
            print("you guessed the right number!")
            break
        else:
            print("try again")
    except:
        print('Invalid Input')
我认为您可能打算继续循环,直到猜到正确的数字,在这种情况下,这将起作用:

guess = int(input("Guess a number 1 through 10: "))
import random
num = (random.randint(1,10))
if guess == num:
    print("You guessed the right number!")
else:
    print("Try again")

您需要阅读
if
语句,即
if guess==num
现在您正在设置
guess=num
。另外,
try except
并不意味着替换
if
语句为什么它不总是打印正确的数字消息?在这种情况下,最好使用
except ValueError
而不是普通的
except
,因为普通的
except
将捕获所有异常(其中一些您可能不希望被捕获),而
除了ValueError
将只捕获预期类型的异常。在这种情况下,我没有发现任何其他异常,但是使用特定的
except
子句而不是泛型的
except
通常是更好的做法。哇,谢谢!起初我不明白,但我明白了。原来是错误的,因为一旦用户输入一个值,它将只允许用户输入一次。如果用户猜错了数字,它不会提示再次猜,因为输入不在while循环中。既然我在while循环中有了输入,那么如果用户一直猜错了号码,程序只会提示用户继续猜。
import random
num = (random.randint(1,10))
while True:
    guess = int(input("Guess a number 1 through 10: "))
    if guess == num:
        print("You guessed the right number!")
        break
    else:
        print("Try again")