字符串查找,替换
序列类型:字符串、元组、列表
散列类型:字典和集合
可变对象:集合、列表、字典
不可变对象:元组,数值类型,字符串
函数的定义和使用
自定义函数():函数实际就是封装一段代码,下次若需要使用他的功能,就进行函数的调用,可以大大减少代码量,并且可以实现函数的复用
del是定义函数的关键字
del后面跟上函数的名字(自己定义的)isphone(括号里放一个参数)
把代码全部放在函数里面,这种叫做封装 要使用函数时再调用函数,函数名加括号
返回值 return 把结果返回出去在函数外部(交互模式会自动进行返回)
如果返回出去的数据想要在函数外部拿到的话,就通过一个变量接收当前函数它的执行,它的调用
通过变量来接收函数的调用,变量接受到的就是返回的结果
当函数里边没有返回值的情况下,通过变量接收没有用
返回值后面的数返回到函数的外部 可以返回多个,用逗号隔开
本身如果不return返回出去,那么这个值只能在函数里边去使用,如果想要得到结果,在函数外部得到的话,就必须用return返回出来,返回出来就可以对结果进行相对应的操作
sort()方法没有返回值,不能通过变量接受
使用一个方法,通过变量接收,它的结果是空的时候,说明这个方法没有返回值
返回值后面的代码不会执行,return已经把结果拿出去了,想当于结束当前这个函数了
当前函数的所有代码,都属于函数体里面的内容,函数体指的是当前函数 的整个整体
函数参数
不管是写参数还是传参数,顺序:先是必备参数,再到默认参数,最后才是不定长参数
必备参数值:定义了几个必备参数,函数调用就需要传几个参数,一个也不能多,一个也不能少
默认参数(,,,把默认值给默认参数接收,当传值,就是我们传进去的值)
在参数传值的时候,先保证必备参数接受到值,然后再是默认参数接收到值,并且在传递参数的情况下,不需要考虑参数的类型,没有数据类型的限制
不知道要传几个参数进去,想一下元祖的拆包
不定长参数(*args,**kwargs),一个或两个星号都代表不定长
不能三个星号且两个星号在前面也不行
怎样才能让kwargs接收数据,它的字典类型的传值形式,就必须要等于等于的赋值形式也就是键值对的形式 才可以,就像dict定义一个字典那样才可以,并且键只能是字符串类型,如果是其他,会报错
拆包:一般情况下不会使用这种,要使用的话直接函数传值就行了,不需要原先去定义好
函数的作用域
在外部定义了一个变量,在函数内部对他进行修改的操作,不能改变它的值
小范围不能修改大范围的一个值
在Py文件里面,定义的是全局变量。在函数内部定义的变量叫做局部变量
局部变量小范围不可以改变外部全局变量的值
全局表示在整个py文件都能够读取到,而局部表示只能在当前这个函数才能使用
在函数内部修改函数外部的值,修改指的是不可变对象(如果是可变对象,他是能进行修改的)
指的是不可变对象,不能进行修改的操作
让局部变量变成全局变量
(上图转自博主-idolXIE) 闭包(需要掌握) 当你想要把数据进行保护的情况下,可以通过闭包来实现
递归函数(了解):自身调用自身,也会有对应的终止条件
重复做的事情,除了用循环,还能用递归来做,用递归来实现阶乘,非常容易
匿名函数:匿名函数主要是和对应其他的内置函数进行混合使用,会变得非常便捷
统一进行过滤filter,过滤器可以对元素进行统一的操作,过滤出想要的数据
lambda紧接着是一个参数,冒号右边直接就是返回值
·
数据一一对应放在元组里边
回调函数(了解):,,,去使用
f就是func2
在没明确写出调用函数的代码时,无论编译模式写了多少个函数都不会被读取
只能被1和本身整除的就是质数
sort函数把li里面的元素1一个个分别拿出来,再把元素1一个个放进key函数里面,再将得到的返回值元素2进行排序(从小到大), 再把元素2对应的元素1进行排序,得到的就是排序后的li
if和elif,不符合if情况才会进到elif里面,若符合if,则就不会进行elif,若是多个if,则每个if都需要判断
在编辑模式下,在函数外面写个print(函数) ,则在运行时,会自动调用函数
return结束了语句,for循环正常执行结束后,才会去执行else里面的代码
字符串里面是整数,才能做int转型,如果是小数就会报错