1、循环的else
当判断条件为false的时候执行 在else代码块中,循环计数器的值依然等于最后一个值
count_i=0
while count_i<5:
count_i+=1
print(count_i)
else:
print(f'循环计数器的最后一个值为{count_i}')
结果: 1 2 3 4 5 循环计数器的最后一个值为5
2、列表推导式
[表达式 for 循环计数器 in 可迭代对象]
mylist=[item*item for item in range(1,5)]
print(mylist)
列表推导式也可以嵌套
mylist=[x*y for x in range(1,5) for y in range(6,9)]
print(mylist)
3、函数的文档
用单个引号写在函数内部
4、函数的多返回值
多个返回值可以返回一个列表 直接返回多个值,python会自动封装成一个元组
5、keyword传参,参数默认值
keword参数可以打乱次序传参,同时有更好的语义 默认值一定要是keyword参数 关键字参数一定要位于位置参数的后面
def myfunc(x,y,third=1,fourth=2):
return (x+y)*third+fourth
num=myfunc(2,8,fourth=2,third=3)
print(num)
res=myfunc(2,3)
print(res)
6、参数收集(*参数),及逆向参数收集
使用*参数用来传入不确定数量的形参,这些形参将被当作一个元组来使用
def myfunc(x,*nums):
result=x
for item in nums:
result+=item
return result
num=myfunc(1,2,3,4,5)
print(num)
逆向参数收集将实参加星*,加星实参需要是一个迭代对象,这个逆向参数收集将会将参数拆分成单个元素一次传给函数形参。
mylist=[1,2,4]
def myfunc(x,y,z):
return x+y+z
num=myfunc(*mylist)
print(num)
7、函数参数的传递机制
值传递
8、变量作用域
globals():返回全局范围内的变量字典 locals():返回局部范围内的变量字典 可以使用global关键字直接定义全局变量
a=1
b=2
c=3
xx=111
res=globals()['a']
print(res)
def myfunc(a,b,c):
x=a
y=b
z=c
global xx
xx=15
return locals()['x']+locals()['y']+locals()['z']
res=myfunc(1,2,3)
print(res)
print(xx)
9、局部函数
函数内部嵌套的函数是局部函数看,在封闭的函数内有效,也可以返回该局部函数
c=0
def normalFunc():
print('this is normal function')
def localFunc(a,b):
print('this is local function')
c= a+b
return c
localFunc(3,4)
return localFunc
resfunc=normalFunc()
res=resfunc(5,8)
print(res)
结果:
this is normal function
this is local function
this is local function
13
10、局部高级,函数做为变量值,作为形参,作为返回值
c=None
def basefunc1(a,b):
c=a+b
return 'i am basefunc1'
a=basefunc1
print(a)
def func2(fun1):
res=fun1(1,2)
return res
res=func2(basefunc1)
print(res)
返回函数参看上一例
|