2013-10-08 82 views
-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是可接受的输入。)

+1

你是如何解决这个问题的?你看什么资源? – Marcin

+0

可能我建议将提示更改为“输入5个空格分隔的数字:”? – SethMMorton

回答

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]