Python如何只接受数字作为输入

noe*_*rce 0 python python-2.x

mark= eval(raw_input("What is your mark?"))
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"
Run Code Online (Sandbox Code Playgroud)

所以我需要创建一个python程序来查看你的标记,并根据它的不同给你不同的响应.

但是我还需要添加一种方法来阻止随机文本输入到程序中而不是数字.

我以为我找到了一个解决方案,但它不会让它通过故障安全代码的第一个声明,如果它不是数字,它就是要捕获它.

所以发生的事情就是如果我输入hello而不是数字,它在第一行失败并给我一个错误exceptions:NameError: name 'happy' is not defined.

如何更改它以便它可以使代码为他们提供输入数字所需的print语句?

Pad*_*ham 7

删除eval并且您的代码是正确的:

mark = raw_input("What is your mark?")
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"
Run Code Online (Sandbox Code Playgroud)

只检查一个浮点数就行了:

try:
    float(mark)
except ValueError:
    print "This is not a number"
Run Code Online (Sandbox Code Playgroud)