运行非常简单的Python程序时出现问题

2024-04-28 08:58:07 发布

您现在位置: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

Tags: thenumberinputifis错误magicat
2条回答

在最后一行中,将string替换为str——这至少可以解决python所抱怨的错误。

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)

相关问题 更多 >