如何在Python中创建函数定义?

问题描述 投票:-2回答:2

以下工作正如预期的那样打印,但是一旦我尝试使用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-3.x
2个回答
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]
    ]

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的间距和缩进。

© www.soinside.com 2019 - 2024. All rights reserved.