python的def语句_关于语法:python def函数:如何指定函数的结尾?

我只是在学习python,当函数的"def"结束时会感到困惑?

我看到的代码示例如下:

1

2

3

4

5def myfunc(a=4,b=6):

sum = a + b

return sum

myfunc()

我知道它不会因为回报而结束(因为我看过if语句…如果foo大于返回栏,则返回foo bar)。python怎么知道这不是一个调用自身的递归函数?当函数运行时,它是否继续执行程序,直到找到返回?这会导致一些有趣的错误。

谢谢

这是一个很好的评论。对python的任何介绍都提到了重要的空白,这是第一个(如果不是第一个)东西——毕竟,它是最有特色的python特性之一。

到目前为止,我只是使用这个备忘表:ibm.com/developerworks/library/l-craitsheet3.html来尝试学习语法。如果你有好的辅导建议,我会开放的。

谷歌提供任何教程。它们可能稍微好一点。备忘单上写着"这个块是用以冒号(:)结尾的语句后面的缩进来表示的,就像在……"中那样,所以它不会主动误导你。

最好的办法是潜入Python

在Python中,空白非常重要。当缩进变小(变小)时,函数结束。

1

2

3

4def f():

pass # first line

pass # second line

pass #

请注意,一行函数可以在一行上不缩进地编写:

1def f(): pass

另外,还有使用分号,但不建议这样做:

1def f(): pass; pass

上面的三种形式显示了如何在语法上定义函数的结尾。至于语义,在Python中,退出函数有三种方法:

使用return语句。这与您可能知道的任何其他命令式编程语言的工作原理相同。

使用yield语句。这意味着函数是一个生成器。解释它的语义超出了这个答案的范围。看看有人能给我解释一下python yield语句吗?

只需执行最后一条语句。如果没有更多的语句,并且最后一条语句不是return语句,那么函数的存在就好像最后一条语句是return None语句一样。也就是说,如果没有显式的return语句,函数将返回None。此函数返回None:

1

2def f():

pass

这个也是:

1

2def f():

42

python对缩进很敏感。一旦缩进级别回落到定义函数的级别,函数就结束了。

真的。。。没想到。从来没有听说过缩进只能用于可读性。谢谢!

准确地说,当一个块遇到一个非空行时,它将结束,该行最多与起始行缩进相同的级别。此非空行不是该块的一部分例如,以下打印同时结束两个块:

1

2

3

4

5def foo():

if bar:

print"bar"

print"baz" # ends the if and foo at the same time

缩进级别小于或等于def和if,因此它将两者都结束。

没有语句的行,无论是缩进,都不重要

1

2

3

4def foo():

print"The line below has no indentation"

print"Still part of foo"

但标记块结尾的语句必须缩进到与任何现有缩进相同的级别。那么,以下是一个错误:

1

2

3def foo():

print"Still correct"

print"Error because there is no block at this indentation"

通常,如果您习惯大括号语言,只需像它们一样缩进代码,就可以了。

顺便说一句,缩进的"标准"方式只使用空格,但当然只使用制表符,但请不要将两者混合使用。

有趣的是,如果您只是在python交互式解释器中键入内容,那么您必须遵循一个带有空行的函数。这不起作用:

1

2

3def foo(x):

return x+1

print"last"

尽管它在文件中是完全合法的python语法。在给解释器输入时,还有其他的语法差异,所以要小心。

我认为这是编写Python函数的明智方法。"没有空行的去缩进看起来像是麻烦的秘诀。

这与解释器的"句法"差异远不止是实际差异——唯一的原因是,否则就无法在解释器中编写多行函数,而且解释器清楚地表明,您仍在使用前导的...编写函数定义的一部分。事实上,PEP8在函数定义之后松散地勾勒出应该和不应该有空行的时间。

空白很重要。当块完成时,即函数定义完成时。

当函数运行时,它会一直运行直到完成,或者直到遇到return或yield语句为止。如果函数在没有遇到return或yield语句的情况下完成,则隐式返回None语句。

在本教程中有更多的信息。

所以凹痕很重要。正如这里的其他用户向您指出的,当缩进级别与def函数声明处于同一点时,您的函数已经结束。请记住,不能在Python中混合制表符和空格。大多数编辑器都对此提供支持。

它使用缩进

1

2

3

4

5

6

7def func():

funcbody

if cond:

ifbody

outofif

outof_func

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
Python函数是一种可重复使用的代码块,用于执行特定任务的功能。它由函数名、参数列表、冒号、缩进的代码块组成。 函数名是给函数命名的标识符,用于调用函数并执行其中的代码。参数列表是在函数定义时用来接收外部传入的值的变量。冒号用于表示函数定义的结尾。代码块是函数的主体,其中的代码会按照特定顺序执行。 函数定义的语法如下: ``` def 函数名(参数列表): 代码块 ``` 参数列表是函数定义时的输入,它可以包含零个或多个参数,并用逗号分隔。参数可以是必需参数、默认参数或可变参数函数调用的语法如下: ``` 函数名(参数列表) ``` 函数在调用时,会将传入的参数值赋给对应的形式参数,然后执行函数内部的代码。函数可以有返回值,通过return语句将结果返回给调用者。 函数的内部代码可以使用缩进来表示,通常使用4个空格或一个制表符来表示缩进。缩进的代码会在函数被调用时执行。 在函数内部,可以使用局部变量来存储临时值,并在需要时进行计算和修改。函数外部的变量被称为全局变量,可以在函数内访问和修改。 函数可以用来实现一些特定功能或算法,将复杂的问题分解为多个简单的子问题。函数的使用可以提高代码的重用性和可读性。 总结来说,Python函数是一种用于封装特定任务的可重复使用的代码块。它具有函数名、参数列表、冒号和缩进的代码块等基本语法结构。函数可以接收外部传入的参数,执行特定的功能,并返回结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值