我正在尝试创建一个从用户请求数值的基本程序。
如果值介于.5和1之间,程序应打印" good"。
如果该值介于0到0.49之间,则输出状态" fair"。
如果用户提供的数字输入超出0到1,则表示:"再次尝试"。
如果输入无法转换为数字,则表明:"输入无效"。
这是我到目前为止所得到的:
val=abs(1)
while True:
num = raw_input("Enter a number: ")
if num == "val" : break
print 'try again between 0 to 1'
try:
num = float(num)
except:
print "Invalid input"
if .5 < num < 1:
print 'Good'
if 0 < num < .49:
print 'Fair'
答案 0 :(得分:1)
您的代码存在一些问题。关于我认为你真正想做的事情,我已经清理了你的代码,并评论了大部分的变化。如果您的需求略有不同,应该可以轻松调整。
val = 1 # abs(1) is the same as 1
while True: # get user input
num = raw_input("Enter a number: ")
try: # indented
num = float(num) # goes to except clause if convertion fails
if not 0 <= num <= val: # check against val, not "val",moved to try block
print 'try again between 0 to 1' # indented
else:
break # input ok, get out of while loop
except ValueError: # indented, only excepting ValueErrors, not processor is burning errors
print "Invalid input"
if .5 <= num <= 1:
print 'Good'
else: # 0 <= num < 0.5
print 'Fair'