Python语法基础:函数二

函数

一.函数可以有多个返回值

def divid(a,b):
    shang=a//b
    yushu=a%b
    return shang,yushu
sh,yu=divid(5,2)
print(sh,yu)#输出2.1

本质上时利用了元组

二.缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

注意:带有默认值的参数一定要位于参数列表的最后面。

三.不定长参数

有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名。

基本语法:

    def functionname([formal_args,] *args, **kwargs): "函数_文档字符串" function_suite return [expression]
加了星号(*)的变量args会存放所有未命名的变量参数,args为元组;而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典。
def fun(a,b,*args,**kwargs):
    print("a=",a)
    print("b=",b)
    print("args=",args)
    print("kwargs:")
    for key,value in kwargs.items():
        print(key,"=",value)
fun(1,2,3,4,5,c=6,d=7,e=8)

四..引用传参

Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。

 

a+=a与a=a+a的区别:

当a为不可变类型时,两者结果相同

当a为可变类型时,a+=a相当于在全局变量a的内存地址上进行修改;而a=a+a是定义一个局部变量a,将a+a的值赋予它,所以全局变量a的值不变

 

猜你喜欢

转载自www.cnblogs.com/python-road/p/10485822.html