ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python集合和函数(9)

2021-12-23 19:31:08  阅读:148  来源: 互联网

标签:return 函数 python 局部变量 缺省 参数 集合 全局变量


集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重。

定义一个空集合  

set1 = set()

注意以下写法为一个空字典,为空默认是字典,如果有数据在根据格式判断  

set2 = {}

添加元素(add,update) 

 删除元素(remove,pop,discard)

remove:使用remove删除集合中的元素 如果有 直接删除 如果没有 程序报错

 pop:使用pop删除是随机删除集合中的元素 如果set1没有元素讲程序报错

 discard:使用discard删除 如果元素存在 直接删除 如果元素不存在 不做任何操作

集合的交集和并集 

交集和并集( & 和 | )

交集: 相同的数据

并集:所有元素不包含重复的

 函数

定义函数 定义函数的格式如下:

def 函数名():

        代码

函数名()

 调用函数

调用函数很简单的,通过 函数名() 即可完成调用

函数参数

调用函数时参数的顺序 

小总结 定义时小括号中的参数,用来接收参数用的,称为 “形参”

调用时小括号中的参数,用来传递给函数用的,称为 “实参”

位置参数 :

 关键字参数:

参数调用时,可以改变传参顺序,如果有位置参数需要位置参数放在关键字参数前面

 缺省参数:

在形参中默认有值的参数,称之为缺省参数

调用函数时,缺省参数的值如果没有传入,则取默认值(形式参数),如果传入,则取实际参数

 注意:缺省参数一定要位于位置参数的最后面,如果带有默认值的参数位于位置参数之前,运行将会报错

不定长参数

有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名

加了*号的为元组,加两个**为字典 

不定长参数* *

 参数分类

 参数类型2:

 缺省参数在*args后面

 说明: 如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *的后面, 但如果有**的话,**必须是最后的,假如缺省参数在*前面,就会报错

函数返回值

所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果

带有返回值的函数

 保存函数的返回值

一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会结束了,因此后面的return没有什么用处

 一个函数返回多个数据

总结2: return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据

 如果return后面有多个数据,那么默认是元组

函数类型

无参数,无返回值的函数

 无参数,有返回值的函数

 函数的嵌套调用

如果函数2中,调用了另外一个函数1,那么先把函数1中的任务都执行完毕之后才会回到上次 函数2执行的位置

思考&实现2

写一个函数求三个数的和

写一个函数求三个数的平均值

 局部变量

局部变量,就是在函数内部定义的变量 其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的

局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储 当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了

 全局变量

总结: 在函数外边定义的变量叫做全局变量

全局变量能够在所有的函数中进行访问

全局变量和局部变量名字相同的情况介绍

总结: 当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 此时理解为定义了一个局部变量,而不是修改全局变量的值

全局变量的修改

如果在函数中出现global 全局变量的名字 那么这个函数中即使出现和全局变量名相同的变量名 = 数据 也理解为对全局变量进行修改,而不是定义局部变量

 匿名函数

lambda函数也叫匿名函数,即函数没有具体的名称     lambda函数可以赋值给变量,默认是返回的,所以不用再加return关键字

 课堂作业

写一个函数求三个数的和,并返回结果

写一个函数求三个数的平均值,并返回结果

 

再写一个函数求每个数与平均值之间的差,并返回结果

 

标签:return,函数,python,局部变量,缺省,参数,集合,全局变量
来源: https://blog.csdn.net/sxy_011026/article/details/122114001

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有