天天看点

不定长参数|学习笔记

开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理:不定长参数】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

https://developer.aliyun.com/learning/course/601/detail/8726

不定长参数

目录

一、不定长参数的定义及用法

二、实参与形参的定义及各种用法

#不定长的参数

#定义一个函数,可以求任意个数字的和

def

​​

sum

( a, b , c):

print(a + b +c)

#

 sum(123,456,789)

#在定义函数时,可以在形参前加*,这样形参将会获取所有实参

#它会将所有的实参保存到一个元组中

#

a , b ,*c = (1,2,3,4,5,6)

#*a 会接受所有的位置实参,并且会将这些实参统一保存到一个元组中(装包)

d

ef fn(*a):

print(“a =”,a,type(a))

f

n(1,2,3,4,5)

def

sum

(*

nums

):

 #定义一个变量,来保存结果

result = 0

 #遍历元组,并将元组中的数进行累加

f

or n in nums :

result += n

p

rint(result)

s

um(123,456,789,10,20,30,40)

d

ef fn(*a):

print(“a =”,a,type(a))

#带星号的形参只能有一个

#带星号的参数,可以和其他参数配合使用

#以一个参数给 a,第二个参数给 b,余下的参数都保存到c的元组中

d

ef fn2(a,b,*c):

print(‘a=’,a)

print(‘b=’,b)

print(‘c=’,c)

f

n2(1,2,3,4,5)

#可变参数不是必须写在最后,但是带*参数后的所有参数,必须以关键字参数的形式传递

d

ef fn2(a,*b,c):

print(‘a=’,a)

print(‘b=’,b)

print(‘c=’,c)

f

n2(1,2,3,4,

c

=5)

#所有的位置参数都给 a,b 和 c 必须使用关键字参数

#如果在形参的开头直接写一个*,则要求所有的参数必须以关键字参数的形式传递

d

ef fn2(*a,b,c):

print(‘a=’,a)

print(‘b=’,b)

print(‘c=’,c)

f

n2(

a=

3,

b

=4,

c

=5)

#形参只能接受位置参数,而不能接受关键字参数

d

ef fn3(**a):

print(‘a=’,a)

f

n3(b=1,d=2,c=3)

d

ef fn3(**a):

print(‘a=’,a

,t

ype(a))

f

n3(b=1,d=2,c=3)

#**形参可以接收其他的关键字参数,它会将这些参数统一保存到一个字典中

#字典的 key 就是参数的名字,字典的值就是参数的值

#形参只能有一个,并且必须卸载所有参数的最后