函数基础和函数参数

news/发布时间2024/5/19 9:56:27

第一部分:函数基础

 函数的作用意义:

  1.为了更好地管理代码,可能对应的代码块需要重复多次使用,所以通过一个函数封装起来,便于下次直接调用

  2.方法实际上是通过函数实现的

例1:

# type()  # 内置函数
def lis():li=[1,2,3]li.append(4)li.pop(2)  # 指定删除# print(li)  # [1, 2, 4]return li # 只有这里有return返回值调用的时候才能打印出来a=lis() # 调用
print(a) # None

运行截图:

 例2:字母大小写转换

s='abc'
s2=s.upper()  # 有个return返回值给到s2接受
print(s2)

运行截图:

 第二部分:函数参数

 例1: 默认参数实参没有传值的时候就使用默认值,传了值就按下面的实参,注意:默认参数要位于必备参数列表的后面

def name(a,b=1):  # 定义函数的时候写的参数叫做形参:必备参数num=a+bprint(a)print(b)return num  # 这里有没有retrun的作用区别注意一下
# b有默认值暂时不传值进去了 l=name(6) # 实参 ===》 这里的l只接受return返回值 print(l)

运行截图:

 如果给b也传值进去:

# l=name(6)  # 实参  ===》 这里的l只接受return返回值
l=name(6,2)
print(l)

运行截图:

 注意:return 和print的区别

  return:返回结果,结束函数
  print:打印结果
  如果要两个数拼接就需要函数体里面有返回值才可以实现
def name(a,b=1):  # 定义函数的时候写的参数叫做形参:必备参数num=a+bprint(a)print(b)return num  # l=name(6)  # 实参  ===》 这里的l只接受return返回值
l=name(6,2)
# print(l)# 如果要两个数拼接就需要函数体里面有返回值才可以实现
print('总和是:%s,请核实一下信息'%l)

例题2:不定长参数(不限定长度,也可以不传参数)*args  

def name(a,b=1,*args):  # 定义函数的时候写的参数叫做形参:必备参数num=a+bprint(a)print(b)# return numprint(args)  # (2, 4, 5)l=name(6,4,2,4,5)  # 实参  ===》 这里的l只接受return返回值
# l=name(6,4,*(2,4,5)) # 也可这样写
print(l)

运行截图:

 例3:不定长参数:**kwargs(不管传多少个参数都可以)

def name(*args,**kwargs):  
print(args) # (2, 4, 5)print(kwargs)# l=name(6,4,2,4,5) # 实参 ===》 这里的l只接受return返回值 l=name(6,4,*(2,4,5),**{'a':3,'c':1}) # 也可这样写 print(l)

运行截图:

 例4:指定传参数

def name(a,b=1,*args): num=a+bprint(a)print(b)return numal1=name(a=3,b=5)  # 这样写可指定传参
print(al1)

运行截图:

 第三部分:常见内置函数

 

1.过滤器:filter(函数,过滤的对象)

li=[3,2,1,0,5,7,9]
def num(obj):if obj>=5:# print(obj)return obj# 过滤器:filter(函数,过滤的对象)
# list(filter(num,li))
# tu=tuple(filter(num,li))
tu=str(tuple(filter(num,li)))
# 把元组转换成字符串拼接到字符串里面
print('优秀学员:%s'%(tu))

运行截图:

 2.zip:将对象逐一配对(没有的就不配对了)

li1=[11,2,4,5]
t=('小明','小花','小张')
print(dict(zip(li1,t)))  # 配对:类型转换

运行截图:

 3.enumerate :返回一个可以枚举的对象( 类型转换才可以看到效果)

print(list(enumerate(['小明','肖工','李工'])))
print(tuple(enumerate(['小明','肖工','李工'])))
print(dict(enumerate(['小明','肖工','李工'])))

运行截图:

4.eval:取出字符串中的内容

# 将字符串当成有效的表达式来求值并返回计算结果,不能赋值
b=22
eval('print(123)')
eval('print(b)')

运行截图:

 5.exec :执行字符串编译过的字符串

c='print(123)'
exec(c)
exec('d=5')  # 可以赋值
print(d)

运行截图:

 6.map(与filter的区别是不管是否满足都会返回,不满足的返回默认None,可以手动改下)

li2=[62,82,81,90,95,77,69]
def f(o):if o>=80:return '优秀'else:return '加油'print(li2)
m=list(map(f,li2))
print(m)

运行截图:

 练习:

定义一个函数,可以对传入的数据进行排序, 通过一个参数来决定是正向排序还是反向排序

 

每逢佳节倍思亲,又是一年中秋,国庆。祝愿所有亲朋好友月饼节吃的开心,喝的浪漫,对于自己还是那句话先努力挣钱吧,没有足够的积蓄哪有想要诗与远方的遐想与底气呢? -----------加油吧,打工人

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/11818411.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

布尔数据 面的相交

布尔数据中面的相交的结果可能有交线,也可能有交点。将求交结果保存到FaceInfo中。从简单的两个平面重叠来看,将重叠的状态用变量theTangetFaces来保存。那任意两个曲面重叠如何判断呢?面的相交虽然提供类IntTools_FaceFace来计算,但是没有正确处理交线的范围,为什么BOPAl…

20211314王艺达学习笔记4

学习总结 第七章 文件操作 文件操作级别 (1)硬件级别 fdisk:将硬盘、U盘或SDC盘分区 mkfs:格式化磁盘分区,为系统做好准备 fsck:检 查和维修系统 碎片整理:压缩文件系统中的文件 (2)操作系统内核中的文件系统函数 前缀为k表示内核函数 (3)系统调用 open()、read()、…

9.28日

早上UML统一建模语言学了用例图,乒乓球课继续练习反手击球,进一步规范动作。下午离散学到了集合关系的闭包运算以及集合的划分和覆盖,数据结构则简单讲了二叉树的概念。package runoob.binarySearch;/*** 二分查找法*/ public class BinarySearch {// 二分查找法,在有序数组…

Logstash 获取通道类型 Redis 数据

Redis 服务器是 logstash 官方推荐的 broker 选择。Broker 角色也就意味着会同时存在输入和输出俩个插件。这里我们先学习输入插件。 LogStash::Inputs::Redis 支持三种 data_type(实际上是redis_type),不同的数据类型会导致实际采用不同的 Redis 命令操作:list => BLPO…

谈一谈接口测试

接口测试为什么重要? 我相信你一定听说过这样一句话:“测试要尽早介入,测试进行得越早,软件开发的成本就越低,就越能更好地保证软件质量。” 但是如何尽早地进入测试,作为软件测试的你,是不是也没办法说得清楚呢?其实上面那句话中的“测试”,所指的并不是测试这个人,…