IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python学习笔记:函数 -> 正文阅读

[Python知识库]python学习笔记:函数

目录

1、定义及调用函数

1.1、定义函数

?1.2、return函数

2、参数

2.1、形参和实参

2.2、默认参数

2.3、关键字参数

2.4、收集参数

3、函数内部嵌套和闭包

3.1、全局变量和局部变量

3.2、global和nonlocal关键字

3.3、内部嵌套和闭包

?4、匿名函数


1、定义及调用函数

1.1、定义函数

定义一个函数:

①以def开头,后面跟上函数名,加上括号(括号里面可以放参数,也可以不放),最后以冒号结尾

②换行后,注意缩进,然后加上函数内容

③函数写完后,换行减一次缩进就结束

④调用函数直接用函数名加参数调用即可

def Myworld(name):                   #Myworld是函数名,name是参数
    print(name + '我爱你')
    print('永远永远')

Myworld('周杰伦')                      #调用函数Myworld

def number(a,b):                     #函数number
    reulst = a + b
    print(reulst)

number(1,1)                          #调用函数number

结果:

?1.2、return函数

>>> def number(a,b):                     #函数number
    return (a+b)                         #返回值为a和b的和

>>> print(number(33,44))                 #输出返回值
77

>>> def back():
    return [1,'cat',3.14]                #返回值为列表

>>> back()
[1, 'cat', 3.14]

>>> def back():
    return 1,'cat',3.14                 #返回值有逗号,所以默认为元组

>>> back()
(1, 'cat', 3.14)

2、参数

2.1、形参和实参

>>> def PrintMyword(name):
    '函数定义过程中的name是形参'                          #函数文档
    #因为ta只是一个形式,代表占据一个参数位置
    print("输入进来的" + name + "叫做实参,因为ta是具体的参数值。")

    
>>> PrintMyword('tiger')
输入进来的tiger叫做实参,因为ta是具体的参数值。
>>> PrintMyword.__doc__
'函数定义过程中的name是形参'

2.2、默认参数

>>> def MoRen(canshu = '参数是默认的'):      #canshu是默认参数
    print(canshu)                           #默认参数相当于给参数一个初值
>>> MoRen()
参数是默认的
>>> MoRen('但是也可以改变')
但是也可以改变

2.3、关键字参数

>>> def say(n1,n2):
    print('我说' + n1 +', 你做' +n2)

    
>>> say('东','西')                         #这个顺序是正确的
我说东, 你做西
>>> say('西','东')                         #但是输入不正确的时候
我说西, 你做东
>>> say(n2 = '西',n1 = '东')               #这时候就可以用关键字参数
我说东, 你做西

2.4、收集参数

①当不确定参数的个数时,就可以用收集参数

②在参数前面加一个*号,就是收集参数

③这样输入参数的时候,就可以任意输入

④收集参数一般是以元组导入

>>> def test(*params):                            #这里的*params是收集参数
    print('参数的长度是:',len(params))
    print('第二个参数是: ',params[1])

    
>>> test(1,'周杰伦',2,3.14,2.88)                  
参数的长度是: 5
第二个参数是:  周杰伦

3、函数内部嵌套和闭包

3.1、全局变量和局部变量

全局变量:在模块内、在所有函数外面、在class外面,这就是全局变量
局部变量: 在函数内、在class的方法内(未加self修饰),这就是局部变量

在下面这个例子中,虽然都是count,但是一个是全局变量,一个是局部变量。由此可见,在函数中不能修改全局变量的值

>>> count = 5                              #这个count是全局变量
>>> def funx():
	count = 10                             #这个count是局部变量
	print(10)

	
>>> funx()
10
>>> print(count)                           #所以在函数中全局变量不能修改
5

3.2、global和nonlocal关键字

global关键字的作用是声明变量是全局变量

>>> count = 5
>>> def funx():
	global count                            #global关键字,声明count是个全局变量
	count = 10                              #这时候全局变量count就被改变成10了
	print(10)

	
>>> funx()
10
>>> print(count)
10

nonlocal关键字的作用是声明变量不是局部变量

>>> def fun1():
	count = 5
	def fun2():
		nonlocal count                        #nonlocal关键字
		count*= count
		return count
	return fun2()

>>> fun1()
25

3.3、内部嵌套和闭包

从名字上也可以看出来,就是在一个函数中嵌套另一个函数,并且在函数中调用

>>> def funx():
	print('这里funx函数将被调用。。。')
	def funy():
		print('这里funy将被调用。。。')
	funy()

	
>>> funx()
这里funx函数将被调用。。。
这里funy将被调用。。。

闭包是嵌套函数模型中的一个重要应用。外函数把内函数作为返回值返回,并且内函数中使用了外函数的局部变量,这样的情况下被返回的内函数就被称为闭包

>>> def fun1(a):
	def fun2(b):
		return (a+b)                         #在fun2中使用了fun1的参数a
	return fun2                              #返回和b的和

>>> fun1(5)
<function fun1.<locals>.fun2 at 0x0000027059B419D0>

>>> i = fun1(5)
>>> i
<function fun1.<locals>.fun2 at 0x0000027059B41B80>
>>> i(8)                                     第一种调用方法
13
>>> fun1(5)(8)                               第二种调用方法
13

?4、匿名函数

lambda表达式:

先写lambda关键字,然后依次写匿名函数的参数,多个参数中间用逗号连接,然后是一个冒号,冒号后面写返回的表达式。

使用lambda函数可以省去函数的定义,不需要声明一个函数然后使用,而可以在写函数的同时直接使用函数。

使用场景:

1.需要将一个函数对象作为参数来传递时,可以直接定义一个lambda函数(作为函数的参数或返回值)

2.要处理的业务符合lambda函数的情况(任意多个参数和一个返回值),并且只有一个地方会使用这个函数,不会在其他地方重用,可以使用lambda函数

3.与一些Python的内置函数配合使用,提高代码的可读性

>>> def ds(x):                      #普通函数
	return 2 * x + 1

>>> ds(5)
11

>>> g = lambda x : 2 * x + 1        #匿名函数,省略了函数名
>>> g(5)
11

>>> def add(a,b):                   #多个参数的普通函数
	return a+b

>>> add(3,4)
7
>>> j = lambda a,b: a+b             #多个函数的lambda表达式
>>> j(3,4)
7

lambda表达式作为参数 :

def sub_func(a, b, func):
    print('a =', a)
    print('b =', b)
    print('a - b =', func(a, b))
 
 
sub_func(100, 1, lambda a, b: a + b)              #lambda表达式作为参数

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:21:19  更:2021-10-18 17:22:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:45:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码