Python编程无师自通--函数

“函数应该做一件事。做好这件事。只能做这一件事。”

——罗伯特·C.马丁(Robert C.Martin)

本章将介绍函数(function):可接受输入,执行指令并返回输出的复合语句。通过函数,我们可以在程序中定义功能,并重复使用。其示例如图4-1所示。

在这里插入图片描述
表达概念

从此处开始,本书将在解释编程概念时使用一种新约定(convention)(一种共同认同的方式)。例如,通过print("[想打印的内容]")来介绍如何使用print函数。

新约定中结合使用了Python代码和方括号,方括号中的描述用来解释编程概念。当给出类似示例时,除了方括号及其中的内容之外,其他所有都是有效的Python代码。方括号中的内容隐含了你应该使用何种代码进行替换。Python语法中也有使用方括号,因此在代码中本该应用方括号的处置将使用两个方括号体现。

函数

调用(call)一个函数,意味着为函数提供执行指令并返回输出所需的输入。函数的每一个输入就是一个参数(parameter)。当你为函数提供参数时,则被称为“函数传参”。

Python中的函数类似于数学函数。如果忘记了代数中的函数,请看下面这个示例:

 1  # 请不要运行代码
2  
3  
4  
5  f(x) = x * 2

上面代码中语句左侧定义了一个函数f,接受一个参数x。语句右侧是函数的具体定义,利用(x)中传递的参数进行计算并返回结果(输出)。本例中,函数的值被定义为函数的参数乘以2。

Python和代数均使用如下语法调用函数:函数名。在函数名后加上圆括号即可进行调用,参数放置在圆括号中,以逗号分隔。对于f(x) = x*2这个数学函数,f(2)的值是4,f(10)的值是20。

定义函数

在Python中创建一个函数,需要选择函数名,并定义其参数、行为和返回值。下面是定义函数的语法:1 # 请不要执行代码

2  
3  
4  
5  def [函数名]([参数]):
6      [函数定义]

   数学函数f(x) = x * 2在Python中应该表示如下:
   1  # http://tinyurl.com/j9dctwl
2  
3  
4  def f(x):
5      return x * 2

关键字def告诉Python操作者正在定义一个函数。在def关键字后面,指定函数的名称,名称选择遵循与变量名相同的规则。按惯例,函数名不应使用大写字母,单词用下划线分隔:like_this。

命名函数之后,在名称后加上一对圆括号,圆括号中则是希望函数接受的参数。

在圆括号之后加入冒号,然后换行并缩进4个空格符(和其他复合语句一样)。冒号之后所有缩进4个空格符的代码,就是函数的定义。本例中,函数的定义仅有一行,即return x*2。关键字return指定了调用函数时输出的值,我们称之为函数的返回值。

在Python中,可以使用语法“函数名”来调用一个函数。以下就是以2作为参数调用上述示例中函数f的示例:

1  # http://tinyurl.com/zheas3d3  
4  # 接上一个示例
5  
6  
7  
8  f(2)

控制台没有打印任何输出。你可以将函数的输出保存在一个变量中,然后将其传给print函数。示例如下:

1  # http://tinyurl.com/gspjcgj
2  
3  
4  # 接上一个示例
5  
6  
7  
8  result = f(2)
9  print(result)

>> 4

如果后面在程序中有需要使用函数返回值的地方,建议将函数的返回值保存到一个变量中。示例如下:

 01  # http://tinyurl.com/znqp8fk
02  
03  
04  def f(x):
05      return x + 1
07  
08  z = f(4)
09  
10  
11  if z == 5:
12      print("z is 5")
13  else:
14      print("z is not 5")

>> z is 5

函数可以有一个或多个参数,也可以不接受任何参数。如要定义不需要参数的函数,只需要在定义函数时把圆括号内置为空即可:

1  # http://tinyurl.com/htk7tr6
2  
3  
4  def f():
5      return 1 + 1
6  
7  
8  result = f()
9  print(result)

>> 2

如要函数要接受多个参数,则必须将圆括号中的参数以逗号相隔:

   1  # http://tinyurl.com/gqmkft7
2  
3  
4  def f(x, y, z):
5      return x + y + z
6  
7  
8  result = f(1, 2, 3)
9  print(result)

>> 6

最后,函数必须包含return语句。如果函数没有return语句,则会返回None。示例如下:

   1  # http://tinyurl.com/j8qyqov
2  
3  
4  def f():
5      z = 1 + 1
6  
7  
8  result = f()
9  print(result)

>> None

以上内容来自《Python编程无师自通》
在这里插入图片描述

此书已加入到VIP会员卡,只要购买VIP会员卡即可免费阅读上百本电子书,这张VIP卡除了免费让你读书,还有更多的权益等你来领,往下↓拉
在这里插入图片描述

阅读电子书的方法如下:

打开CSDN APP(软件商城搜索“CSDN”即可找到哦)—>登录CSDN账号—>学习—>电子书

在这里插入图片描述

注:CSDN APP已经支持全文搜索,通过关键词或者问题搜索可以很快的定位到电子书相关章节,可以快速的帮助你解决问题哦

发布了21 篇原创文章 · 获赞 72 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_37649168/article/details/104502377
今日推荐