-4
print 'enter a number'
s = raw_input()
s = float(s)
q = int(s)
if s == q:
    print 'it is an integer'
else:
    print 'it is not an integer'

当有人输入一个字符时,我还希望显示消息“它不是整数”。我怎样才能做到这一点?

4

3 回答 3

3

你应该try

try:
    q = int(s)
    print 'it is an integer'
except ValueError:
    print 'it is not an integer'

Python 的哲学是“请求宽恕比请求许可更好”,即尝试解析s为 int 并捕获任何错误,而不是首先检查是否s可解析为 int。

请注意,您也可以使用float(s).

于 2013-10-15T13:38:11.063 回答
2

try在您转换为整数的位置周围使用一个块并捕获一个ValueError. 这是演员失败时抛出的错误:

s = raw_input("Enter a number: ")
try:
    q = int(s)
except ValueError as e:
    print "{} is not an integer!".format(q)

另外,请注意您可以在raw_input()呼叫中包含提示。

于 2013-10-15T13:38:52.227 回答
0
try:
    q = int(s)
except ValueError:
    print 'It is not an integer.'
于 2013-10-15T13:38:36.850 回答