运行一个非常简单的Python程序时遇到问题
为什么我的程序在这里出错了?
import random
TheNumber = random.randrange(1,200,1)
NotGuessed = True
Tries = 0
GuessedNumber = int(input("Take a guess at the magic number!: "))
while NotGuessed == True:
if GuessedNumber < TheNumber:
print("Your guess is a bit too low.")
Tries = Tries + 1
GuessedNumber = int(input("Take another guess at the magic number!: "))
if GuessedNumber > TheNumber:
print("Your guess is a bit too high!")
Tries = Tries + 1
GuessedNumber = int(input("Take another guess at the magic number!: "))
if GuessedNumber == TheNumber:
print("You've guess the number, and it only took you " + string(Tries) + "!")
错误出现在最后一行。我该怎么办?
补充:
另外,为什么我在Python中不能使用Tries++?难道没有自动递增的代码吗?
补充 2:错误是:
Traceback (most recent call last):
File "C:/Users/Sergio/Desktop/GuessingGame.py", line 21, in <module>
print("You've guess the number, and it only took you " + string(Tries) + "!")
NameError: name 'string' is not defined
2 个回答
3
在你最后一行,把 string
替换成 str
-- 这样应该能解决 Python 报错的问题,至少是这样。
2
这里用的是 str
,而不是 string
。不过,你的无限循环才是更大的问题。自动递增的写法是这样的:
Tries += 1
总的来说,你可以稍微改进一下你的代码:
the_number = random.randrange(1,200,1)
tries = 1
guessed_number = int(input("Take a guess at the magic number!: "))
while True:
if guessed_number < the_number:
print("Your guess is a bit too low.")
if guessed_number > the_number:
print("Your guess is a bit too high!")
if guessed_number == the_number:
break
else:
guessed_number = int(input("Take another guess at the magic number!: "))
tries += 1
print("You've guessed the number, and it only took you %d tries!" % tries)