2013-06-03 64 views
-1
def is_number(s): 
    try: 
     float(s) 
     return True 
    except ValueError: 
     return False 


flag = True 
while flag != False: 
    numInput = raw_input("Enter your first number: ") 
    if is_number(numInput): 
     numInput = float(numInput) 
     flag = True 
     break 
    else: 
     print "Error, only numbers are allowed" 

我看不到问题。
为什么它不进入一个循环?
不打印什么,只是被卡住。为什么我的代码不能进入循环?

+0

'flag!= False'与'flag'相同。 – 2013-06-03 13:28:40

+0

同样,'is_number(numInput)== TRUE'应该只是'is_number(numInput)'。 –

+0

您可能想告诉我们您的代码应该做什么。 – georg

回答

1

flag = False这里不需要:

else: 
    print "Error, only numbers are allowed" 
    flag = False <--- remove this 

只需使用:

while True: 
    numInput = raw_input("Enter your first number: ") 
    if is_number(numInput): 
     numInput = float(numInput) 
     break 
    else: 
     print "Error, only numbers are allowed" 

演示:

Enter your first number: foo 
Error, only numbers are allowed 
Enter your first number: bar 
Error, only numbers are allowed 
Enter your first number: 123 
0

试试这个:

while True: 
    numInput = raw_input("Enter your first number: ")  
    try: 
     numInput = float(numInput) 
     break 
    except: 
     print "Error, only numbers are allowed" 
+0

也在循环结束后,该值将被赋值给'numInput'变量,以便您可以使用它的脚本。 – abhishekgarg

相关问题