盘点6种Python中函数的参数类型!老男孩python培训班
老男孩IT教育
行业新闻
2022年3月1日 16:03
众所周知,Python的地位越来越高,不少人选择将Python作为第一语言进行学习,因为它有着大量开箱即用的第三方库,使用起来十分方便,本篇文章总结了6种Python中函数的参数类型,希望对你有所帮助,请看下文:
众所周知,Python的地位越来越高,不少人选择将Python作为第一语言进行学习,因为它有着大量开箱即用的第三方库,使用起来十分方便,本篇文章总结了6种Python中函数的参数类型,希望对你有所帮助,请看下文:
一、函数的单参数传递
def p_num(n): # 设置一个形参n
print(n * 2)
print(n * 3)
print(n * 4)
p_num(5) # 传递实参为5
上面函数中的n就是形参,你也可以把它理解为一个变量名,调用函数的时候小括号中要传入实参,你可以把他理解为给上面形参(变量)赋的值。这样你给n赋什么值,那函数体内参与运算的就是什么值,这样一来我们就能实现不同的数字实现上面的相同的方法了,一个函数搞定。
二、多参数传递
换种情况,如果我们想得到两个数字相乘和相减的值,而且在不同的场景中这两个数会随时变化,那又怎么实现呢?估计有同学已经想到了,只要把上面的函数中一个形参变成两个就可以了,是的,就是这样的。下面来演示一下。
def test():
print(5 * 3)
print(5 - 3)
test()
# 1.固定参数def test(m, n):
print(m * n)
print(m - n)
test(5, 3)
test(985, 211)
三、关键字参数
通过一个函数把一个字符串反复输出n次,注意这里的n代表未知次数,字符串也是未知字符串,我们从这个题目就可以看出来,一定属于一个多参数函数。那么很简单就实现了,如下。
def test(num, str):
print(str * num)
test('www.oldboyedu.com', 5)
这时候大家可以看到输出的结果也是正确的,但是我们本身是想把num=5,str='www.oldboyedu.com',而函数里面的参数是按照顺序穿进去的,所以虽然结果没有问题,但是在有些场景中会出现不必要的错误,比如,我们要对字符串str进行处理后再计算,就不行了,这时候,python引入关键字参数来指定形参和实参的关系。
def test(num, str):
print(str * num)
test(str='www.oldboyedu.com', num=5)
四、缺省参数
这时候出现另一种场景,就是上面的字符串在大多数情况下都是www.oldboyedu.com,偶尔会出现其他字符串的情况,如果使用上面关键字参数的话,每次都要输入一下固定值,这样写起来比较麻烦,所以看看缺省参数是怎么解决这个问题的。
def test(num, str='www.wakey.com.cn'):
print(str * num)
test(num=5)
test(num=5, str='www')
这里的缺省参数也可以说成默认值参数,就是不传递参数的时候用自己的默认值,传递参数的时候使用传递进去的实参。
五、不定长参数-元组
如果一个函数不知道未来要接收多少个参数的时候可以使用一个元组来接受不定长参数,下面来直接实现效果。
def test(*m): # 这里加了一个*号,当成元组的形式来接受参数,一般写成:*args
print(m) # 注意这里的形参不能带*号
print(type(m))
test((3, 5, 7))
test(3, 5, 7)
注意这里两个调用的结果都是元组,但是结果不太一样,看看返回结果。
((3, 5, 7),)
<class 'tuple'>
(3, 5, 7)
<class 'tuple'>
六、不定长参数-字典
还有一种情况就是每个参数都用自己的含义,但是不是固定参数,这里可以借用字典的键值对特性来实现。
def test(**m): # 这里加了2个*号,当成字典的形式接受参数,一般写成:**kwargs
print(m)
print(type(m))
# print(**m) # 这里不能加**
test(a=3, b=5, c=7)
返回结果:
{'a': 3, 'b': 5, 'c': 7}
<class 'dict'>
关于"盘点6种Python中函数的参数类型!"的话题到这里就结束了,老男孩教育是Python培训领域的专家,2012年就开展了Python培训,积累了大量的Python培训教学经验,并能全局把控企业用人指标,科学的制定Python教学课程体系,满足5-8年职业生涯需求,让学员轻松拿下高薪职位!
推荐阅读:
非常适合初学者的10个Python高级库!老男孩python培训
