基本程序控制流程&例外尝试

时间:2014-06-27 19:34:46

标签: python exception exception-handling python-2.x

我正在尝试创建一个从用户请求数值的基本程序。

如果值介于.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'      

1 个答案:

答案 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'