-1
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 是可接受的输入。)

4

2 回答 2

1

这就是 Python 的 assert 语句的作用:

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

在 assert 子句中,您声明了一个布尔条件,您强制该条件为真。如果不正确,您可以使用 except 语句捕获错误并在那里处理它。

在您的情况下,您可以:

assert(((x <= 5) and (x >= 0)))
于 2013-10-08T20:46:11.353 回答
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!'
于 2013-10-09T03:52:03.220 回答