我正在学习Python,而我在使用这段简单的代码时遇到了麻烦:
a = raw_input('Enter a number: ')
if a > 0:
print 'Positive'
elif a == 0:
print 'Null'
elif a < 0:
print 'Negative'
Run Code Online (Sandbox Code Playgroud)
它的效果很好,除了它总是打印'正',无论我输入正数还是负数或零.我猜这是一个简单的解决方案,但我找不到它;-)
提前致谢
小智 7
那是因为a输入了一个字符串.用于int()在进行数值比较之前将其转换为整数.
a = int(raw_input('Enter a number: '))
if a > 0:
print 'Positive'
elif a == 0:
print 'Null'
elif a < 0:
print 'Negative'
Run Code Online (Sandbox Code Playgroud)
或者,input()将为您进行类型转换.
a = input('Enter a number: ')
Run Code Online (Sandbox Code Playgroud)
因为你正在使用raw_input你得到的值是一个字符串,总是被认为大于0(即使字符串是'-10')
相反,请尝试使用raw_input与字段raw_input值匹配的表raw_input.
类似于:raw_inputschedule_items的raw_input开始raw_input
从哪里开始将是一个raw_input与像数据字段raw_input和raw_input会是这样的:2009-09-23
我可以这样做,还是我需要加载所有值然后爆炸并比较我的DATETIME raw_input字段中的值?
扩展我对已接受的答案的评论,这是我将如何做到这一点.
value = None
getting_input = True
while getting_input:
try:
value = int(raw_input('Gimme a number: '))
getting_input = False
except ValueError:
print "That's not a number... try again."
if value > 0:
print 'Positive'
elif value < 0:
print 'Negative'
else:
print 'Null'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |