我想编写2个函数。一种功能,可从用户处获取输入并将其添加到列表中。第二个函数获取从第一个函数返回的列表,并打印出用空格分隔的每个元素。我想我很亲近,但是有些不对劲。键入-999不会停止循环,并且我无法确定我是否正确调用了函数...
有什么想法吗?
def listFunc():
num = 0
list1 = []
while num != -999:
x = int(input('Enter a number, -999 to quit: '))
list1.append(x)
return list1
def formatFunc(y):
final = str(y)
' '.join(final)
print(final)
formatFunc(listFunc())
答案 0 :(得分:2)
它应该与while循环中使用的变量相同。
num = int(input('Enter a number, -999 to quit: '))
if num != -999:
list1.append(num)
和
# final = str(y) This is not required, why cast list as str
final = ' '.join(final)
答案 1 :(得分:1)
x = int(input('Enter a number, -999 to quit: '))
list1.append(x)
num=x
会起作用!
答案 2 :(得分:1)
如果打算打印listfunc的输入,则可以正确调用这些函数。但是,输入将不会保存到全局范围内的变量中,因此将被锁定以备将来使用。
此外,listfunc当前不进行输入验证。可以在输入中输入任何字符串。 while循环不会结束,因为从不满足while的条件。 根据您的条件重写它会产生:
def listfunc():
someList = []
while True:
x = input("Enter a number, exit to quit")
if 'exit' in x.lower():
break
elif x.isdigit():
someList.append(x)
else:
print("Input not recognized try again")
return someList
def formatFunc(v):
print(''.join(str(i) + ' ' for i in v)
您知道为什么这样做了吗?