python-函数

python函数主要就是函数的传参:参数都有以下几种:普通参数、关键字参数、默认参数、动态参数。

普通参数:就是我们传入的参数是以正确的顺序传入,没有任何指定值,有几个形参就传几个对应的实参进去

列:

def myfc(x,y):
    print(x,y)
myfc(5,8)
》》》5,8

关键字参数:和普通参数差不多,但传入的参数可以不分顺序,但在传参时要指定形参的值

列:

def myfc(x,y):
    print(x,y)
add(x=5,y=8)
add(y=8,x=5)
》》》5,8
》》》5,8
默认参数:默认参数要写在普通参数后面,参数传递参数时如果给定了值就按给定的值使用,如果没有给定,那就按形参里面早就赋值了的值使用
 

列:

def myfc(x,y,z=9):
    print(x,y,z)
myfc(5,8,10)
myfc(5,8)
》》》5,8,10
》》》5,8,9
动态参数:又叫不定长参数,我们传参时如果要接收多个参数,意思就是我们需要一个函数能处理比当时声明时的更多参数,这些参数就叫不定长参数,
def myfc(x,y,*z):
    print(x,y)
    print(z)
myfc(5,8,10,20,30,40,50)
》》》5 8
》》》(10,20,30,40,50)
def myfc(x,y,*z,**d):
    print(x,y)
    print(z)
    print(d)
myfc(5,8,10,20,30,qwe=123,rty=456,yui=789)
》》》5 8
》》》(10,20,30)
》》》{'qwe': 123, 'rty': 456, 'yui': 789}
这里有一个最大的重点,那就是可变类型和不可变类型
简单来说就是我们传参后参数是否可以修改,记住,这里的修改可不是替换它的值,而是真正的修改,
可变类型有:列表、字典
不可变类型有:number 字符串 元组
我们传入一个不可变类型,并且使用return,如:
def myfc(x):
    x=10
    return x
a=5
print(a)
a=myfc(a)
print(a)
》》》5
》》》10
a和x都属于不可变类型,a的值传递给x,这里是创建两个引用,a是指向5的引用,x也是指向5的引用,在函数内部,x重新指向10的引用,
调用函数时将x赋值给a,这相当于更新了a的引用。并不算修改a的值
传入不可变类型,不使用return,列:
def myfc(x):
    x=10
    print(x)
a=5
print(a)
myfc(a)
print(a)
》》》5
》》》10
》》》5
传递值时是创建引用,之后x重新引用并输出
传入可变类型:
列:
def myfc(x):
    x[2]=10
    print(x)
a=[1,2,3,4,5]
print(a)
myfc(a)
print(a)
》》》[1, 2, 3, 4, 5]
》》》[1, 2, 10, 4, 5]
》》》[1, 2, 10, 4, 5]
这里才是正在的修改参数里面的值,在函数里面修改能影响外面的值
如果你想要向函数中传递一个不可变对象,那么可以首先将这个不可变对象放到一个可变对象之中(如列表),
之后再将这个可变对象作为参数传递给函数。
def myfc(x):
    x[2]=10
a=(1,2,3,4,5)
a=list(a)
print(a)
myfc(a)
print(a)
》》》[1, 2, 3, 4, 5]
》》》[1, 2, 10, 4, 5]


也可在函数内部进行强转,但根本不会影响a的值
def myfc(x):
    x=list(a)
    x[2]=10
    print(x)
a=(1,2,3,4,5)
print(a)
myfc(a)
print(a)
》》》(1, 2, 3, 4, 5)
》》》[1, 2, 10, 4, 5]
》》》(1, 2, 3, 4, 5)

在函数内部进行强转,并返回值,可以看到a的值改变了
def myfc(x):
    x=list(a)
    x[2]=10
    return x
a=(1,2,3,4,5)
print(a)
a=myfc(a)
print(a)
》》》(1, 2, 3, 4, 5)
》》》[1, 2, 10, 4, 5]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值