再遇函数

简介: 简介:学习python的学习笔记 3,在B站《求知学堂》学习。

学习python的学习笔记 3,在B站《求知学堂》学习。


1、函数的4种基本类型


(1)无参数,无返回值,一般用于提示信息打印

(2)无参数,有返回值,多用于数据采集中

(3)有参数,无返回值,多用在设置某些不需要返回值的参数设置

(4)有参数,有返回值,一般是计算型,需要参数,也需要返回值


2、全局变量和局部变量


局部变量 :

就是在函数内部定义的变量【作用域仅仅局限在函数的内部】


不同的函数 可以定义相同的局部变量,但是各自用各自的 不会产生影响


局部变量的作用:为了临时的保存数据 需要在函数中定义来进行存储


全局变量:一般放在需要定义的函数前面


当全局变量和局部变量出现重复定义的时候,程序会优先执行使用函数内部定义的变量


如果在函数的内部要想对全局变量进行修改的话 对于不可变类型【str 元组 number】必须使用global 关键字进行声明


对于可变类型【dict、list】来讲,全局变量要想在函数中修改的话,我们不需要用global关键字去声明的


3、匿名函数


语法:

lambda 参数1、参数2、参数3(这里的参数可以有很多) : (冒号不能丢啦)表达式


特点:

1.使用lambda关键字去创建函数

2.没有名字的函数

3.匿名函数冒号后面的表达式有且只有一个, 注意:是表达式,而不是语句

4.匿名函数自带return,而这个return的结果就是表达式计算后的结果

缺点:

lambde只能是单个表达式,不是一个代码块,lambde的设计就是为了满足简单函数的场景,

仅仅能封装有限的逻辑,复杂逻辑实现不了,复杂的逻辑必须使用def来处理


(1)匿名函数和之前def函数的对比


def computer(x,y):

‘’’

计算数据和

:param x:

:param y:

:return:

‘’’

return x+y

pass

print(computer(10,23))

{JC(LNPHHY`D`1ODF`S7R3N.png


M=lambda x,y:x+y#通过变量调用匿名函数

print(M(10,23))


X[XPEPAM{N[]V_DGX7)LWZ1.png


(2)匿名函数可以完成二分支


hh=(lambda a,b:a if a>b else b)(12,18)

#可以实现二分支,而且可以直接调用,后面的12,18分别对应前面的a,b

print(hh)


LY@NH0X%X$Z{%D}HT6FZ]37.png


4、递归函数


递归满足的条件

1.自己调用自己

2.必须有一个明确的结束条件

优点:逻辑简单、定义简单

缺点:容易导致栈溢出,内存资源紧张,甚至内存泄漏


递归函数处理阶乘问题

def diguihs(n):

if n==1:

return 1

else:

return n*diguihs(n-1)

pass

print(‘5的阶乘是:{}’.format(diguihs(5)))


}T2W[Y~3G[7V`N~W9]RD)N8.png


5、内置函数


内置函数种类:

借鉴一位博主整理的:点这里


另一位博主整理的:有例子哒:here


6、序列操作


(1) all()函数用于判断给定的可迭代参数 iterable 中所有元素是否都为 True ,如果是,返回True,否则返回Flase。元素除了0、空、Flase 外都算True。

语法:all(iterable)

参数:iterable------元组或列表

返回值:如果iterable的所有元素不为0、’ '、Flase或者iterable为空,all(iterable)返回True,否则返回Flase


(2)any()函数用于判断给定的可迭代参数iterable是否全部为Flase,如果是,返回Flase,否则返回True。元素除了0、空、Flase 外都算True。

语法:any(iterable)

参数:iterable------元组或列表

返回值:如果都为0、空、flase,则返回flase,否则返回True


(3)sorted()函数对所有可迭代的对象进行排序操作

sort与sorted的区别:

①sort是应用在list上的方法,sorted可以对所有可迭代对象进行排序操作。

②list的sort方法返回的是对已经存在的列表进行操作,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行的操作。

语法:sorted(iterable[,cmp[,key[,reverse]]])

参数:

①iterable-----可迭代对象

②cmp-----比较的函数,这个具有两个参数,参数的值都是从可迭代对象中去除,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0

③key----主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自可迭代对象中,指定可迭代对象中的一个元素来进行排列

④reverse----排序规则,reverse=True 降序,reverse=Flase 升序(默认)

返回值:返回重新排序的列表


(4)reverse()函数用于反向列表中的元素

语法:list.reverse()

返回值:该方法没有返回值,但是会对列表的元素进行反向排序


(5)range()函数氪创建一个整数列表,一般用在for循环中

语法:range(start,stop,step)

参数:

①start:计数从start开始默认是从0开始

②stop:计数到stop结束,但不包括stop

③step:步长,默认为1


(6)zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回有这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。其实就是打包的,会把序列中对应索引位置的元素储存为一个元组

语法:zip([iterable,…])

参数:iterable----------一个或多个迭代器

返回值:返回元组列表


(7)enumerate()函数用于将一个可便利的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下表,一般用在for循环中

语法:enumerate(sequence,*[start=0]*默认是0,也可以是其它位置)

参数:

①sequence-----一个序列、迭代器或者其它支持迭代对象

②start------下标起始位置

返回值:返回enumerate(枚举对象)


7、内置函数----set(集合)


set不支持索引和切片,是一个无序的且不重复的容器,类似于字典,但只有key没有vable

①添加操作--------add()

②清空操作--------clear()

③差集操作-------difference()

例:a.difference(b) 意味着,a中存在,b中不存在

④交集操作------intersection()

例:a.intersection(b) 意味着,a中存在,b中也存在

⑤并集操作---------union()

例:a.union(b) 意味着 包含a中的元素,也包含b中的元素

⑥pop操作

集合pop随机移除某个元素并且获取那个参数,集合pop没有参数

⑦discard操作

移除指定元素

⑧更新操作------update

例:a.update(b) 就是把b中的元素放到a里面,有重复的,去掉重复的


相关文章
|
算法 Java
[Java·算法·简单] LeetCode 9. 回文数 详细解读
[Java·算法·简单] LeetCode 9. 回文数 详细解读
185 0
|
存储 安全 算法
详解Java中HashMap、HashTable、ConcurrentHashMap常见问题
详解Java中HashMap、HashTable、ConcurrentHashMap常见问题
143 0
|
11月前
|
IDE 开发工具 索引
在Python中安装第三方库
在Python中安装第三方库
2336 30
|
12月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
1035 3
|
12月前
|
存储 算法 Java
内存管理
【10月更文挑战第7天】
115 2
|
12月前
|
存储 固态存储 Linux
服务器该如何选择
选择服务器时,需要考虑多个因素,包括预期的用户访问量、需要存储的数据量、运行的应用程序类型以及预算等
|
IDE Java 开发工具
idea一步一步安装教程
idea一步一步安装教程
|
Linux
linux命令之chown
linux命令之chown
317 1
|
Java Linux 网络安全
Centos7 systemctl 启动 Java 应用
本文主要记录在 Centos7 系统上部署启用 Java 的 jar 包应用服务,包含开放防火墙的指定端口,配置脚本自启动等。
905 0
真香!覆盖全网的微服务架构笔记,看完还不懂你来打我
在这个凡事皆互联的时代,越来越多的人和物成为互联网上的节点,不断扩充着互联网这张大网的边界。节点即价值,更多的节点意味着更大的价值。