伪代码
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
答案 0 :(得分:0)
您的问题是,当您定义并调用printOutput
时,您将参数命名为list
。但是,在main()
和printOutput
中,正在使用的变量实际上名为num
。会发生什么:
main
调用printOutput(list)
,将内置list
:printOutput
收到该参数并将其分配给本地名称list
;和printOutput
的第一行尝试使用不在范围内的num
,导致NameError
。 您应该修改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()