阅读 105

day22 1.函数的基本使用 2.函数的参数 3.内置函数

day22 1.函数的基本使用 2.函数的参数 3.内置函数

day22

1.函数的基本使用

1.函数的使用原则:先定义,后调用
2.定义函数的三种格式:
def foo(): #无参函数
print('hello')

def foo(x,y):   #有参函数
    res = x + ydef spam():   #空函数
    pass

3.函数的返回值
def foo():
return 123
4.调用函数的三种格式
def foo():
return 123
foo() #直接调用
res = f00() * 10
print(res) #表达式的形式
print(foo()) #函数中调用其他函数

# 2.函数的参数形参:函数定义阶段,括号内指定的参数(变量名)
实参:函数调用阶段,括号内传入的值(变量值)
关系:在函数调用时,会将实参值绑定给形参名,函数调用完毕后则解除绑定#一 位置形参:在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参
特点:必须被传值#二 位置实参:在函数调用阶段,按照左到右的顺序依次传入的值,称之为位置实参
特点:按照顺序依次为形参赋值#三 关键字实参在函数调用阶段,按照key=value的格式来传值,称之为关键字实参
特点:可以打乱顺序,但仍能为指定的形参赋值
注意:可以混用位置实参与关键字实参,但是1 位置实参必须跟在关键字实参前面2 不能为同一个形参重复赋值#四 默认形参在函数定义阶段,就已经为形参赋值,称之为默认形参
特点: 定义阶段就已经有值了,意味着在调用阶段可以不用为其传值
注意:1 可以混用位置形参与关键字形参,但是位置形参必须跟在默认形参的前面2 默认形参的值推荐指向不可变类型3 默认形参的值只在函数定义阶段被赋值一次#五 可变长参数:*与**在形参中带*: *会将溢出的位置实参值汇总成元组,然后赋值给紧跟其后的形参名def foo(x,*y):  
    print(x,y)
foo(1)              #1foo(1,2,3,4,5,6)    #1 (2,3,4,5,6)在形参中带**: **会将溢出的关键字实参值汇总成字典,然后赋值给紧跟其后的形参名def foo(x,**y):   
    print(x,y)
foo(1,a=111,b=222,c=333)  #1 y={"a":111,"c":333,"b":222}在实参中带*def foo(x, y, z):
    print(x, y, z)
foo(*[11, 22, 33])  # foo(11,22,33)foo(*"hello")       # foo("h","e","l","l","o")在实参中带**def foo(x, y, z):
    print(x, y, z)
foo(*{"a":1,"b":2,"c":3})        # foo("a","b","c")foo(**{"a": 1, "b": 2, "c": 3})  # foo(c=3,a=1,b=2)foo(**{"x": 1, "z": 3, "y": 2})  # foo(y=2,z=3,x=1)
    def index(a, b, c):
    print(a, b, c)def wrapper(*args,**kwargs):  # args=(1,2,3)    kwargs={"x":111,"y":222,"z":333}
    index(*args,**kwargs)     # index(*(1,2,3),**{"x":111,"y":222,"z":333})
                              # index(1,2,3,x=111,y=222,z=333)# wrapper(1, 2, 3, x=111, y=222, z=333)  错误wrapper(1,c=3,b=2)            #1 2 3#命名关键字参数def foo(x,y,*args,m=666,n):
    print(x,y)
    print(m,n)# foo(1,2,m=777,n=888)# foo(1,2,n=999)def foo(x,y=111,*args,m,n,**kwargs):
    pass

来源https://www.cnblogs.com/SSagittarius/p/14956139.html

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐