如何解决python字符串格式?

时间:2017-07-09 23:36:29

标签: python python-3.5

我为简单的数学编写了下面的代码。据我所知它应该完美。但我收到字符串格式的错误。 shell显示消息“NameError:name'suject'未定义”。但是变量已经在那里定义了。

import random
import re

#select a random number
myNumber = random.randint(1, 20)


#loop for the game
while True:
    try:
        guess = int(input("Guess a number and put here : "))
    except ValueError:
        print("not a number {}".format(guess))
    else:
        if not guess in range(1, 20):
            print('Put only number between 1 - 20')
            continue
        elif guess == myNumber:
            print("that's right")
            break
        else: 
            print("Bummer!")

1 个答案:

答案 0 :(得分:1)

只有在guess子句中没有引发错误时,才会定义

try。因此,当引发错误 时,将永远不会定义guess,并且Python将引发NameError。您需要在guess块之前为try/except提供默认值。或者,正如@John Gordon所提到的,您可以在for循环之外获取用户输入,并且只尝试在try子句内重新定义为整数。