v = #真为前面值 if 条件 else #假为后面的值
先做出来在想如何让简化
函数式编程:
本质:将多行代码拿到别处,起个别名,以后通过这个名字执行
场景:代码的重复执行
代码特别多,进行分割
def 函数名():
#函数内容
pass
#函数的执行
#函数名()
#注意:函数如果不调用,内部代码永远不会执行
def hanshuming(aaa):形式参数
v = (22,3,4,5)
print(v[aaa])
pass
hanshu(1)实际参数
实例:
info = [11,22,44,555,666,]
def gg(s):
c = 0
for i in s:
c += i
print(c)
pass
gg([11,33,44,555,666,7777,])
def hanshuming(a1,a2):位置参数
print(a1,a2)
pass
hanshu(1,2)#严格按照位置传参a1等于1,a2等于2,不能多传也不能少传
def hanshuming(a1,a2)#形式参数
print(a1,a2)
pass
hanshu(a1=1,a2=2)关键字传参,位置就可以改变
def hanshuming(a1,a2,a3)#形式参数
print(a1,a2,a3)
pass
hanshuming(1,2,a3=9)
def funt(a1,a2=9):#实例中a2=9就是默认参数的
pass
#a2=9表示这个参数可传可不传,不传默认就是9
def hanshuming(*args)#*万能参数
print(*args)
pass
hanshuming(1,2,9,33,"eee")#输出(1,2,9,33,"eee"),能够接受n个参数
def hanshuming(*args)#*可以接受任意位置传参并转化为元组
print(*args)
pass
hanshuming((1,2,9,33,"eee"))#输出((1,2,9,33,"eee")),能够打散循环到*args参数
hanshuming(*(1,2,9,33,"eee"))#输出(1,2,9,33,"eee"),能够打散循环到*args参数
*args不支持关键字传参
def hanshuming(**kwargs)#可以接受任意关键字传参并转化为字典
print(**kwaras)
pass
print(k=2)#输出{"k":2}
hanshuming (**{1:2,2:3})#输出{1:2,2:3}
#注意*args**kwargs可以组合使用
def hanshuming(*arge,**kwargs)
print(*arge,**kwargs)
pass
print(2,3,4,5,6,7,k=2,r=3,t=5,)
def fff(age):
#一系列代码
return 9 #返回值为9,不定义默认none代表没有返回值
val = fff("")
#函数在执行过程中,遇到return就不执行
#return能够返回任意返回
#return 5,8,"asd" 返回元组
实例:
def ll():
with open("1.txt",mode="r",encoding="utf-8") as f:
s = []
e = f.read().split("\n")
for i in range(len(e)):
r = e[i].split("|")
s.append(r)
return s
pass
一个py文件就是一个全局作用域,一个函数就是一个局部作用域
a = 1
def s1():#函数就是在全局域中的局部域
x1 = 666
print(x1)
print(a)
print(a)
s1()
作用域查找数据规则:优先在自己作用域找,自己没有去父级作用域找
x = 10
def func():#在自己域内找不到x参数对应值会去父级目录寻找
print(x)
func()
子作用域中只能去父级查找,默认不能重新为父级变量赋值。但是找到对可变类型可以修改
如果非要对全局变量重新赋值需要使用global
name = "fmx"
def ii():
global name
name = "alex"
ii()
print(name)#输出alex
如果要对上级变量做修改需要使用nonlocal
name = "fmx"
def ii():
name = "alex"
def jj()
nonlocal name
name = "hhh
print(name)
ii()
print(name)#输出hhh,fmx
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。