Python学习笔记8-函数(图文&详细)
函数
1.定义函数
语法:
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>
解释:
def语句声明要定义一个函数;函数名可以随意,只要合法就行,但是建议取一些有关函数功能的名字,这样方便自己或者别人读程序;参数可以没有,也可以有,但是圆括号不能少,最后以冒号结尾;函数体就是函数的主体;返回值可以有也可无,具体问题要具体分析,看下面的例子。
代码
def Say_hello(name):
print("Hello, " + name + " !")
结果
2.函数的参数
形参与实参:
如图,name为形参,是没有实际值的,但是它能接受实参的值从而发挥作用,所以它起的是一种传递的作用;‘Tom’是实参,是一个实际的值,它将值传给形参发挥作用。其实与其他语言的含义与用法是相似的。
传递实参:
向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可以所以字典和列表。
(1)位置实参
你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。
代码
def describe_pet(animal_type,pet_name):
"""显示宠物信息"""
print("\nI have a " + animal_type+".")
print("My " + animal_type + "'s name is " + pet_name.title()+".")
结果在这里有必要说明一下,输入的实参是按顺序依次对应传入形参的,如果你的顺序搞错了,那可能会引起意想不到的结果。如下图
代码
def describe_pet(animal_type,pet_name):
"""显示宠物信息"""
print("\nI have a " + animal_type+".")
print("My " + animal_type + "'s name is " + pet_name.title()+".")
结果所以说,参数位置一定得注意不要搞错了。
(2)关键字实参
关键字实参是传递给函数的名称-值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
代码
def describe_pet(animal_type,pet_name):
"""显示宠物信息"""
print("\nI have a " + animal_type+".")
print("My " + animal_type + "'s name is " + pet_name.title()+".")
结果默认值:
编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定参数值;否则,将使用形参默认值。
代码
def describe_pet(pet_name,animal_type='dog'):
"""显示宠物信息"""
print("\nI have a " + animal_type+".")
print("My " + animal_type + "'s name is " + pet_name.title()+".")
结果(3)传递列表
直接看例子
代码
def greet_users(names):
"""向列表中每个用户打招呼"""
for name in names:
msg = "Hello, " + name.title() + "!"
print(msg)
结果
用这种方式传递会改变原来的列表,要想不改变原来的列表,可以使用它的副本,即usernames[:]。
(4)传递任意数量的实参
如果你预先不知道有多少实参,好在Python允许函数从调用语句中收集任意数量的实参。
语法:
*parameter_name
例子
def sayHello(*name):
for n in name:
print("Hello, " + n +"!")
结果
有必要说一下的是,当有带“*”号的参数和另个一其他参数一起的时候,必须放在最后面。这个很容易理解,如果不是最后一个,那么将无法让形参与实参依次对应。
3.返回值
函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。
(1)返回简单值
代码
def get_formatted_name(first_name,last_name):
"""返回整洁的姓名"""
full_name = first_name + " " + last_name
return full_name.title()
结果
(2)返回字典
函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。如下
代码
def build_person(first_name,last_name):
"""返回一个字典,其中包含有关一个人的信息"""
person = { 'first':first_name,'last':last_name}
return person
结果
4.将函数导入模块
函数的优点之一是,使用它们可将代码块与主程序分离。让程序看起来更简洁,同时也方便维护。import语句允许在当前的程序文件使用模块中的代码。
如下
把sayHello函数放在sayhello.py文件中
用import 语句导入文件,然后就指定文件名和导入的函数名就可以导入函数
如下
(参考资料《Python编程从入门到实践》)
还没有评论,来说两句吧...