30,419
社区成员
发帖
与我相关
我的任务
分享
1作用域
指的是变量生效的范围
1.1 全局变量
函数外部定义的变量,在整个文件中都有效
a = 100
def test1():
print('test1中a的值:',a)
def test2():
a = 120
print('test2中a的值:',a)
test1()
test2()
1.2局部变量
函数内部定义的变量,仅在函数内生效
作用:在函数体内部临时保存数据,当函数调用完成后,就会销毁局部变量
num = 10
def fuana():
print('num',num)
def fuanb():
num1 = 20
print('num1',num1)
fuanb()
fuana()
1.3 global()
将变量声明成全局变量
语法格式 global() 变量名
global关键字可以对全局变量进行修改,也可以在函数内声明一个全局变量
num = 10
def fuana():
print('num',num)
def fuanb():
global num
num = 20
print('num',num)
fuanb()
fuana()、
1.4 nonlocal
将变量声明为外层变量,只能在嵌套函数中使用
只对上一级进行改变
2 匿名函数
基本语法:函数名 = lambda 形参:返回值
调用:结果 = 函数名(实参)
def add(a,b):
return a+b
res = add(7,9)
print(res)
add = lambda a,b: a + b
res = add(9,10)
print(res)
2.1lambda的参数形式
无参,一个参数
函数名 = lambda 形参:返回值
funa = lambda name:name
print(funa("你是什么"))
默认参数
def funa(a,b = 10):
return a + b
print(funa(8,2))
funa = lambda a,b:a+b
print(funa(3,2))
为真结果if条件else为假结果
a = 5
b = 6
print("a比b小") if a < b else print("a比b大")
com = lambda a,b:"a比b小" if a < b else "a比b大"
print(com(6,3))
3内置函数
3.1查看所有的内置函数
import builtins
print(dir(builtins))
abs() 返回绝对值
print(abs(-78))
sum()求和
支持的类型:列表,集合,元组
集合的话会先去重再相加
print(sum({6+9}))
min()求最小值
max()求最大值
zip()
将可迭代对象作为参数,将对象中对应的元素打包成一个个元组
li = [1,2,3]
y = ['a','b','c']
for i in zip(li,y):
print(i)
print(type(i))
map(func,iter1) func—函数 iter1--可迭代对象
可以对可迭代对象中的每一个元素进行映射,分别去执行
li = [1,2,3]
def func(y):
return 4+2*y
print(list(map(func,li)))
lam = lambda y:y+5
print(list(map(lam,li)))
reduce()
对参数对象中的元素进行累计
需要导入一个模块(导包)
作用:先把对象中的前两个元素取出,计算出一个值然后保存,解析下来把这个值当作第三个元素进行计算
需要先导包
from functools import reduce
li2 = [1,2,3,4,5]
函数必须要是有两个参数的函数,对象必须是可迭代对象
def add(x,y):
return x*y
res = reduce(add,li2)
print(res)
拆包
对于函数中的多个返回数据,去掉元组,列表或者字典直接获取里面数据的过程
tua = (1,2,3,4)
print(tua[2])
a = tua[1]
print(a)
方法一
a,b,c,d = tua
print(a,b,c,d)
对象中有几个元素就要定义几个变量去接收值
方法二
a,*b,c = tua
print(a,b,c)
先把单独的取完,其他剩下的全部都给带*的变量