函数的参数分为形参(parameter)和实参(argument)。
例如,给hello_world()函数加上参数,使该函数可以打印给定次数的“Hello,world!”:
>>> def hello_world(n): # n为形参
... print('Hello, world!')
>>> hello_world(2) # 直接使用字面量调用函数
>>> hello_world(x) # 传递变量作为实参
>>> hello_world(n) # 实参和形参的名称(标识符)可以相同
在上述函数中,使用n作为函数的形参,形参n的值为多少,函数就打印多少次“Hello,world!”。
第二次调用函数时,以变量作为实参,将x的值传递给n;
第三次调用函数时,也是以变量作为实参,将实参n的值传递给形参n,实参和形参的名称(标识符)可以相同。
函数一经定义,就可以不限次数地使用它,每次传递的参数也可以不同。
在调用函数时,必须给每一个定义时的参数提供对应的值。
例如,在调用hello_world(n)时,参数n是必不可少的:
... print('Hello, world!')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: hello_world() missing 1 required positional argument: 'n'
Python解释器提示出错了,在调用函数时缺少了一个参数n。
内建函数的参数可以不止一个(如之前用过的print()函数),自定义函数的参数也可以不止一个。
当调用有多个参数的函数时,传递参数可以按照参数的位置顺序一个个地进行传递,这种方式称为位置参数。
假设要定义一个函数,该函数有三个参数,分别是学生的名字name、分数grade和是否有附加分has_bonus,其中附加分为10分,分数上限为100分:
>>> def student_grade(name, grade, has_bonus):
... if has_bonus: # 当has_bonus值为True时,有附加分,否则没有附加分
... if grade > 100: # 当分数超过100时,分数变为100
... print('{name}的成绩为{grade}'.format(name=name, grade=grade))
调用这个函数的方式有两种,其中之一是使用位置参数:
>>> student_grade('Ming', 80, True) # 按顺序依次传递三个函数
>>> student_grade('Zhang', 79, False)
>>> student_grade('Li', 99, True)
位置参数的关键是参数的顺序,如果传递参数时调换了顺序,那么函数的运行结果可能会与预期不同:
>>> student_grade(99, 'Ming', True) # 颠倒了名字和分数的顺序
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in student_grade
TypeError: can only concatenate str (not "int") to str
Python解释器提示出错了,因为传给参数grade的是一个字符串,而字符串无法与整数相加。
调用函数时缺少参数也是不行的,即使所缺少的参数没有在函数体内使用到。在下面这个示例中pass语句就派上了用场:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() missing 1 required positional argument: 'b'
Python解释器提示出错了,因为f()函数缺少了参数b。
热门推荐 |UI设计丨疫情影响之下,UI设计行业现在还好吗?
值得收藏 |新媒体标题怎么写?上千爆款标题背后的9个实用方法!
职场要看 |【职场】盘点《甄嬛传》暴露的4个职场道理!
点击“阅读原文”,立即报名社群运营实战技巧班课程
到此这篇python 函数的类型(python中的函数包括)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/pythonbc/21309.html