我试图通过“使无聊的东西自动化”来完成一个项目,并且每当我运行我的代码时,我都会一无所获。
我试图包括返回函数,但随后我的整个while循环都被忽略了
tableData = [['apples','oranges','cherries','banana'],
['Alice','Bob','Carol','David'],
['dogs', 'cats', 'moose', 'goose']]
def printTable(z):
x = 0
while len(z)<3:
print(z[x:len(z)])
x+= 1
if x > len(z):
break
print(printTable(tableData))
答案 0 :(得分:2)
在Python中,函数默认返回None
。因此,您代码中的返回值将始终为None
。
您的printTable
函数应显式返回一个值;在适当的位置添加一个return
值。
您写:
我试图包括返回函数,但随后我的整个while循环都被忽略了
(我不熟悉术语“ return function”;我假设您的意思是“ return statement”。)
这听起来像是将return
放在错误的位置-循环内。尝试将其放在break
之后的行上,缩进级别与while
语句相同。这样可以确保仅在循环结束后才返回。
答案 1 :(得分:1)
您将不得不在循环外部使用return
函数。
答案 2 :(得分:1)
您的While循环将被忽略,因为len(z)永远不会小于3,因此您永远不会进入while循环。另外,如果您希望函数返回某些内容,则必须明确。
我将len(z)更改为大于或等于3,然后返回x。这应该可以帮助您重回正轨:
tableData = [['apples','oranges','cherries','banana'],
['Alice','Bob','Carol','David'],
['dogs', 'cats', 'moose', 'goose']]
def printTable(z):
x = 0
while len(z) <= 3:
print(z[x:len(z)])
x = x + 1
if x > len(z):
break
return x
print(printTable(tableData))