如何在Python中进行函数定义?

时间:2019-03-20 12:18:02

标签: python-3.x

以下内容可以正常使用print,但是当我尝试使用Def并返回创建函数时,会出现以下错误。

  

SyntaxError:在函数外部“返回”

无论我做什么,也无论我将退货放在何处,都行不通。我显然缺少一些有关功能的基本知识。我要去哪里错了?

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]
    ]

2 个答案:

答案 0 :(得分:2)

缩进在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]
    ]

答案 1 :(得分:0)

我不确定是否是由您的复制和粘贴导致的,但是在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的间距和缩进的信息。