在打印任何内容之前检查输入是否符合要求

时间:2013-10-08 20:34:21

标签: python python-2.7

input_list = raw_input("Enter numbers separated by spaces: ")

number = input_list.split()
if len(number) == 5:
    for n in number:
        a = int(n)
        if 0< a <=5:
            print 'x'* a
        elif a == 0:
            print '.'
        else:
            print "Number does not lie in the range 0 to 5."
else:
    print "Invalid Input."

我希望我的程序检查5个输入的数字是否满足所有条件,如果有一个则无法打印INVALID INPUT并停止程序。此外,我不太明白我的程序如何检查每个输入的号码,因为我的老师帮助了我,但没有解释。 在打印任何内容之前,程序应该询问该数字五次 程序必须检查输入的数字是否在0到5之间。如果输入的数字不是5,则也会失败。输入失败可以使用相应的错误消息终止程序。 输入的数字可能是重复的。 (例如,3,3,3,0,0是可接受的输入。)

2 个答案:

答案 0 :(得分:1)

这就是Python的断言声明:

>>> x = 5
>>> try:
...     assert(x==4)
... except(AssertionError):
...     print("Error!")
... 
>>> Error!

在assert子句中,您将声明一个强制为true的布尔条件。如果不是这样,您可以使用except语句捕获错误并在那里处理它。

在你的情况下你可以:

assert(((x <= 5) and (x >= 0)))

答案 1 :(得分:0)

number = raw_input("Enter numbers separated by spaces: ")
2   num_list = number.split()
3   for n in num_list:
4       a = 'True'
5       if int(n) <0 or int(n) >5:
6           a = 'False'
7           break       
8   if (len(num_list) == 5) and a == 'True':
9       for n in num_list:
10          b = int(n)
11          if 0< b <=5:
12              print ('x'* b)
13          elif b == 0:
14              print ('.')
15  else:
16      print 'Invalid Input!'