温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python基础函数

发布时间:2020-07-20 12:16:20 来源:网络 阅读:480 作者:小飞额 栏目:编程语言

函数

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("\n")
        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
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI