[英]Guess Number Python 2.7
我在使用这个程序时遇到了问题。 它应该生成一个 1 到 1000 之间的随机整数,但它会生成类似 627.689698698679869857476409674875985638765868054675765876986765876976878
from random import *
def main():
numGuess = input ("guess your number")
ranNum = randint(8, 100000)
while ranNum <> numGuess:
print numGuess
numGuess = input ("guess your number")
print numGuess
ranNum = randint(0,1000)
if numGuess > ranNum :
print("ugg, your number is too big")
else:
print("whoops, your number is too small")
if numGuess == ranNum :
print("YAHOO, YOU GOT IT RIGHT!!!!!!!!")
main()
有人可以告诉我为什么这不起作用(它是在 python 2.7 编辑器中运行的),当您第一次输入您的数字时,它不会告诉您是否应该猜测更高或更低。
一些东西。 您通常不应在 Python 导入中使用 * ( from module import *
)。 如果您只使用模块中的一个函数,那么使用from random import randint
会更安全,并且您的代码将更容易理解。
您在第一次猜测后重新分配您的 runNum。 一旦将 ranNum 重新分配给新值,您的第一个猜测可能会更改为正确答案。
此外,您的描述说您希望生成一个 1 到 1000 之间的随机数,但是您对 ranNum 的第一个分配是ranNum == randint(8, 10000)
,这将生成一个 8 到 10000 之间的随机整数。
我的建议是删除循环外的名称分配并将您的 while 条件更改为while True:
然后在您的if numGuess == ranNum:
逻辑中,添加一个break
语句来中断 main() 内的循环。
至于您的问题,我不相信您会得到像使用 randint() 提供的结果那样长的结果。 您是否遗漏了一部分代码?
一些事情要么是多余的,要么是做错了,以下是对您的解决方案的修改,并进行了一些更改:
from random import *
def main():
numGuess = -1
ranNum = randint(1, 1000)
while ranNum <> numGuess:
numGuess = input ("guess your number")
print numGuess
if numGuess > ranNum :
print("ugg, your number is too big")
elif numGuess < ranNum:
print("whoops, your number is too small")
else:
print("YAHOO, YOU GOT IT RIGHT!!!!!!!!")
main()
ranNum = randint(8, 100000)
的调用 - 不需要ranNum = randint(0,1000)
一次试试这个,只是在你的代码中更正了..
from random import *
def main():
numGuess = 1
ranNum = 10
while ranNum <> numGuess:
ranNum = randint(1,1000)
numGuess = input ("guess your number")
#print ranNum, "random"
if numGuess > ranNum :
print("ugg, your number is too big")
elif numGuess < ranNum:
print("whoops, your number is too small")
else:
print("YAHOO, YOU GOT IT RIGHT!!!!!!!!")
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.