python学习笔记(三)函数

这篇博客详细介绍了Python函数的各个方面,包括基本的函数定义、多种函数参数的使用,如实参与形参、函数形参的定义方式,特别是变长实参的处理。还探讨了将可变对象作为函数实参的影响,局部变量、非局部变量和全局变量的区分,以及如何将函数赋值给变量。此外,还讲解了lambda表达式和生成器函数的用法,以及装饰器的基本概念。
摘要由CSDN通过智能技术生成

目录

(一)基本的函数定义

(二)多种函数参数

1)实参与形参

2)函数形参的定义方式

按位置给出形参

按形参名称传递实参

变长实参

(三)将可变对象用作函数实参

(四)局部变量、非局部变量和全局变量

(五)将函数赋给变量

(六)lambda表达式

(七)生成器函数

(八)装饰器


 

主要内容

  • 定义函数
  • 使用函数参数
  • 用可变对象作为参数
  • 理解局部变量和全局变量
  • 创建生成器函数
  • 创建和使用lambda表达式
  • 使用装饰器

 

(一)基本的函数定义

先简单举个例子,以阶乘计算为例。

以下代码定义了把阶乘的计算放到fact()函数中,这样只需要调用fact函数即可以得到阶乘值了:

文档字符串(docstring)用于描述函数对外表现出来的功能及所需的参数,可以通过fact.__doc__读取其值。文档字符串紧随在函数定义的第一行后面,通常用3重引号包围起来,以便能够跨越多行。

注释(comment)则是记录代码工作原理的内部信息。

>>> def fact(n):
	"""Return the factorial of the given number"""      #文档字符串(docstring)
	r = 1
	while n > 0:
		r = r * n
		n = n - 1
	return r

>>> 
>>> fact(4)
24
>>> fact(10)
3628800

# 读取文档字符串

>>> fact.__doc__
'Return the factorial of the given number'

return语句之后的值将会返回给函数的调用者。

在某些编程语言中,无返回值的函数被称为“过程”。Python允许编写不含return语句的函数,如果执行了return arg语句,则值arg会被立即返回。return语句执行之后,函数体中的其余语句都不会执行。

因为Python没有真正的过程,所以均被称为“函数”。

 

(二)多种函数参数

大多数语言的函数都是需要参数的,python提供了三种给出参数的方式,在介绍之前,先了解一下形参和实参的区别。

1)实参与形参

实参(argument):全称为"实际参数"。是在调用时传递给函数的参数.。实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。 因此应预先用赋值、输入等办法使实参获得确定值。      

形参(parameter):全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。也就是说,形参只存在于函数内。在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。

 

2)函数形参的定义方式

按位置给出形参

在Python中,最简单的函数传递形参方式就是按位置给出。在函数的第一行中,可以为每个形参指定变量名称。当调用函数时,调用代码中给出的形参将按顺序与函数的形参变量逐一匹配。以下函数计算x的y次幂:

>>> def power(x, y):
	r = 1
	while y > 0:
		r = r * x
		y = y - 1
	return r

>>> power(3 , 3)
27

上述用法要求,调用代码使用的形参数量与函数定义时的形参数量应该完全匹配,否则会引发TypeError:

>>> power(3)
Traceback (most recent call last):
  File "<pyshell#17>", line 1, 
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值