-3
number = input("Enter numbers separated by spaces: ")
if int(number)>5:
    print ('Invalid  Input')
elif int(number)<0:
        print ('Invalid  Input')
elif len(number) !=5 :
        print ('Invalid  Input')
elif len(number) == 5:
    for n in number:
        a = int(n)
        if 0< a <=5:
            print ('x'* a)
        elif a == 0:
            print ('.')

问题是代码将 5 位数字视为一个数字。程序应该检查输入的 5 个数字是否满足所有条件,如果有一个不满足,程序应该打印 INVALID INPUT,然后程序应该停止。我希望程序在做任何事情之前检查条件是否满足,如果它们甚至不是一个数字,程序应该打印无效输入而不是别的。如何将输入的数字转换为列表,然后检查列表中的每个元素是否满足条件?

-程序应在打印任何内容之前检查输入的数字 -程序必须检查输入的数字是否介于 0 和 5 之间。如果输入的数字不是 5,它也会失败。输入失败可以终止程序适当的错误信息。- 输入的数字可能重复。(例如 3、3、3、0、0 是可接受的输入。)

4

1 回答 1

0

您需要拆分输入,以便将每个数字分开。您正在尝试将字符串 '3 0 3 3 0' 转换为整数,这是不可能的。

In [1]: userInput = input().split()
3 0 3 3 0 # the input I gave

In [2]: userInput
Out[2]: ['3', '0', '3', '3', '0']

从那里,您可以将每个数字转换为整数并执行您想要执行的值检查,这在字符串列表中是不可能的。您可以使用列表理解轻松完成第一部分:

numbers = [int(number) for number in userInput]
于 2013-10-08T21:34:54.703 回答