python基础函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础函数相关的知识,希望对你有一定的参考价值。
函数
1 三元运算(三目运算)
v = #真为前面值 if 条件 else #假为后面的值
先做出来在想如何让简化
2 函数
函数式编程:
本质:将多行代码拿到别处,起个别名,以后通过这个名字执行
场景:代码的重复执行
? 代码特别多,进行分割
2.1 函数基本格式
def 函数名():
#函数内容
pass
#函数的执行
#函数名()
#注意:函数如果不调用,内部代码永远不会执行
2.2 参数
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,])
2.2.1 位置传参
def hanshuming(a1,a2):位置参数
print(a1,a2)
pass
hanshu(1,2)#严格按照位置传参a1等于1,a2等于2,不能多传也不能少传
2.2.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)
2.2.3 默认参数[定义]
def funt(a1,a2=9):#实例中a2=9就是默认参数的
pass
#a2=9表示这个参数可传可不传,不传默认就是9
2.2.4 万能参数(打散)
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,)
2.3 函数的返回值
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("
")
for i in range(len(e)):
r = e[i].split("|")
s.append(r)
return s
pass
2.4 作用域
-
一个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
以上是关于python基础函数的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础