如何在python中从用户输入创建列表,然后输出列表详细信息

时间:2014-02-16 07:25:33

标签: python-3.x

伪代码

def main():
  create an empty list
  value = getInput()
  while value isnt zero:
    add value to the list
    value = getInput()
  printOutput(list)

def getInput():
  prompt the user for a value
  make sure that the value is an int (convert to int)
  return the number

def printOutput(list):
  print out the number of input values
  print out the individual input values
  print out the sum of the input values

2 个答案:

答案 0 :(得分:0)

您的问题是,当您定义并调用printOutput时,您将参数命名为list。但是,在main()printOutput中,正在使用的变量实际上名为num。会发生什么:

  1. main调用printOutput(list),将内置list
  2. 传递给它
  3. printOutput收到该参数并将其分配给本地名称list;和
  4. printOutput的第一行尝试使用不在范围内的num,导致NameError
  5. 您应该修改printOutput的调用和定义以使用num而不是list(实际上,您永远不应该将影响内置插件的变量命名为list,{ {1}}等)。我怀疑他的参数在伪代码中被称为int,以显示函数应该期望的对象类型。

答案 1 :(得分:0)

我相信你正在寻找这样的东西:

def getInput():
 try:
  value=int(input("Enter a value: "))
 except ValueError:
     value=int(input("You must enter a number:  "))
 return value


def printOutput(lis):
    print(len(lis))
    print(lis)
    print(sum(lis))

def main():
 list_1=[]
 value=getInput()
 while value!=0:
     list_1+=[value]
     value=getInput()
 printOutput(list_1)

main()