day3-python 函数参数类型

一、函数有可变类型和不可变类型:

1.不可变类型

 #!/usr/bin/python3

def ChangeInt( a ):

a = 10

b = 2

ChangeInt(b)

print( b ) # 结果是 2

2.可变类型

在函数里修改了参数,那在调用这个函数时候,原始函数也会改变

def change(a):
a.append([1,2,3,4])
print('调用函数',a)
return
a=[10,20,30,40]
change(a)
print('外部修改',a)

结果为:

调用函数 [10, 20, 30, 40, [1, 2, 3, 4]]
外部修改 [10, 20, 30, 40, [1, 2, 3, 4]]

、参数有4种
1.必要参数
#可写函数说明
def printme( str ):
"打印任何传入的字符串"
print (str)
return #调用printme函数
printme()

这样会返回错误

2.关键字参数
def keyword(name,age):
print('请输入姓名',name)
print('请输入年龄',age)
return
print(keyword(name='一个个',age=24))
print(keyword('一个个',24))

输出结果:

请输入姓名 一个个
请输入年龄 24

3.默认参数

def keyword(name,age=60):
print('请输入姓名',name)
print('请输入年龄',age)
return
print(keyword('一个个'))
print(keyword('一个个',24))

可以省略,也可以修改
结果如下:

请输入姓名 一个个
请输入年龄 60
None
请输入姓名 一个个
请输入年龄 24
None

4.不定长参数

加一个* 是元祖,两个星是字典

(1):元祖
def nottrue(arg,*args):
print('打印arg',arg)
print('打印args',args)
return
nottrue(60,70,80)
返回结果

打印arg 60
打印args (70, 80)

(2):字典
def nottrue(arg,**args):
print('打印arg',arg)
print('打印args',args)
return
nottrue(60,a=70,b='fanfan')

返回结果:

打印arg 60
打印args {'a': 70, 'b': 'fanfan'}

***声明函数时,参数中星号 * 可以单独出现,如果单独出现星号 * 后的参数必须用关键字传入***

>>> def f(a,b,*,c): ... return a+b+c ... >>> f(1,2,3) # 报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() takes 2 positional arguments but 3 were given >>> f(1,2,c=3) # 正常 6 >>>


  



猜你喜欢

转载自www.cnblogs.com/fanks99/p/9361878.html