以下工作正如预期的那样打印,但是一旦我尝试使用Def并返回创建函数,我就会收到以下错误。
SyntaxError:'return'外部函数
无论我做什么或在哪里放回车,它都不起作用。我显然缺少一些有关功能的基本知识。我哪里错了?
def two_teams(sailors):
sailors ={'Smith': 34,'Wesson': 22,'Coleman': 45,'davies' : 50,'Abrahams': 19, 'Toms': 23}
firstShip =[]
secondShip = []
for i in sailors.keys():
if sailors[i] > 40 or sailors[i] < 20:
firstShip.append(i)
firstShip.sort()
else:
secondShip.append(i)
secondShip.sort()
return [
[firstShip],
[secondShip]
]
缩进在Python中很重要。确保您的代码正确缩进:
def two_teams(sailors):
sailors ={'Smith': 34,'Wesson': 22,'Coleman': 45,'davies' : 50,'Abrahams': 19,'Toms': 23}
firstShip =[]
secondShip = []
for i in sailors.keys():
if sailors[i] > 40 or sailors[i] < 20:
firstShip.append(i)
firstShip.sort()
else:
secondShip.append(i)
secondShip.sort()
return [
[firstShip],
[secondShip]
]
我不确定是你的副本和粘贴导致了这个,但是在python中你必须注意行之间的缩进和空格。
当你说
def double(x):
你需要在它下面跟着一条线(除非你在jupyter上)
def double(x):
return 2*x
缩进也需要正确才能正常工作。
def two_teams(sailors):
sailors ={'Smith': 34,'Wesson': 22,'Coleman': 45,'davies' : 50,'Abrahams': 19, 'Toms': 23}
firstShip =[]
secondShip = []
for i in sailors.keys():
if sailors[i] > 40 or sailors[i] < 20:
firstShip.append(i)
firstShip.sort()
else:
secondShip.append(i)
secondShip.sort()
return [[firstShip],[secondShip]]
每个缩进级别或4个空格的选项卡。请注意并阅读python的间距和缩进。