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是可接受的输入。)
答案 0 :(得分: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]