-1

该程序应该在打印任何内容之前询问整数。程序必须检查输入的数字是否介于 0 和 5 之间。如果输入的数字不是 5,它也会失败。失败的输入可以终止程序并显示适当的错误消息。输入的数字可能重复。(例如 3, 3, 3, 0, 0 是可接受的输入。)基本上我需要帮助的是让程序打印出一个“。” 如果输入 = 0。并同时要求所有 5 位数字。

nums[]
nums= input
number=int(input)
for n in number:
   if n<0 and n>=5 and if len(n)=5:
      print 'x'*n   
   elif n==0 and if len(n)==5:
      print '.'
   elif n>0 or n<5 or len(n)!=5:
      print "Invalid Input"
4

3 回答 3

2

你的程序有点乱。如果我有点粗鲁,请原谅我

首先,这是不允许的:

nums[]

第二,

number = int(input) 

无效,因为输入不是有效数字。

第三,

for n in number

number 是一个整数,而不是列表!

第四,即使 number 是一个列表:

len(n) ==5:

仍然是无效的,因为 n 是一个整数!

试试这个:

input_list = raw_input("Enter number list: ")
try:
    number=eval(input_list)
except:
    number = list(input_list)
if len(number) == 5:
    for n in number:
       if n<0 and n>=5:
          print 'x'*n   
       elif n==0:
          print '.'
       #elif n>0 or n<5: #Not needed, it will make any input invalid
        #  print "Invalid Input"
else:
  print "Invalid Input"

执行:

>>>Enter number list: [3,3,3,0,0]
   xxx
   xxx
   xxx
   .
   .

或者:

>>>Enter number list: 33300
   xxx
   xxx
   xxx
   .
   .

我假设你的 python 版本是 2.x

这是你想要的吗?

于 2013-10-07T04:33:03.997 回答
0
input_list = 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.")

我的固定代码

于 2013-10-07T20:14:03.730 回答
0
input_list = 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.")

是的,上述方法有效,但应首先检查输入以确保其有效

于 2013-10-08T20:27:10.497 回答