Python学习笔记8-函数(图文&详细)

深藏阁楼爱情的钟 2021-11-22 13:42 314阅读 0赞

函数

1.定义函数
语法:
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>
解释:
def语句声明要定义一个函数;函数名可以随意,只要合法就行,但是建议取一些有关函数功能的名字,这样方便自己或者别人读程序;参数可以没有,也可以有,但是圆括号不能少,最后以冒号结尾;函数体就是函数的主体;返回值可以有也可无,具体问题要具体分析,看下面的例子。
代码

  1. def Say_hello(name):
  2. print("Hello, " + name + " !")

结果
例子
2.函数的参数
形参与实参:
例子
如图,name为形参,是没有实际值的,但是它能接受实参的值从而发挥作用,所以它起的是一种传递的作用;‘Tom’是实参,是一个实际的值,它将值传给形参发挥作用。其实与其他语言的含义与用法是相似的。
传递实参:
向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可以所以字典和列表。
(1)位置实参
你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。
代码

  1. def describe_pet(animal_type,pet_name):
  2. """显示宠物信息"""
  3. print("\nI have a " + animal_type+".")
  4. print("My " + animal_type + "'s name is " + pet_name.title()+".")

结果
例子在这里有必要说明一下,输入的实参是按顺序依次对应传入形参的,如果你的顺序搞错了,那可能会引起意想不到的结果。如下图
代码

  1. def describe_pet(animal_type,pet_name):
  2. """显示宠物信息"""
  3. print("\nI have a " + animal_type+".")
  4. print("My " + animal_type + "'s name is " + pet_name.title()+".")

结果
例子所以说,参数位置一定得注意不要搞错了。
(2)关键字实参
关键字实参是传递给函数的名称-值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
代码

  1. def describe_pet(animal_type,pet_name):
  2. """显示宠物信息"""
  3. print("\nI have a " + animal_type+".")
  4. print("My " + animal_type + "'s name is " + pet_name.title()+".")

结果
例子默认值:
编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定参数值;否则,将使用形参默认值。
代码

  1. def describe_pet(pet_name,animal_type='dog'):
  2. """显示宠物信息"""
  3. print("\nI have a " + animal_type+".")
  4. print("My " + animal_type + "'s name is " + pet_name.title()+".")

结果
例子(3)传递列表
直接看例子
代码

  1. def greet_users(names):
  2. """向列表中每个用户打招呼"""
  3. for name in names:
  4. msg = "Hello, " + name.title() + "!"
  5. print(msg)

结果
例子
用这种方式传递会改变原来的列表,要想不改变原来的列表,可以使用它的副本,即usernames[:]
(4)传递任意数量的实参
如果你预先不知道有多少实参,好在Python允许函数从调用语句中收集任意数量的实参。
语法:

  1. *parameter_name

例子

  1. def sayHello(*name):
  2. for n in name:
  3. print("Hello, " + n +"!")

结果
例子
有必要说一下的是,当有带“*”号的参数和另个一其他参数一起的时候,必须放在最后面。这个很容易理解,如果不是最后一个,那么将无法让形参与实参依次对应。
3.返回值
函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。
(1)返回简单值
代码

  1. def get_formatted_name(first_name,last_name):
  2. """返回整洁的姓名"""
  3. full_name = first_name + " " + last_name
  4. return full_name.title()

结果
例子
(2)返回字典
函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。如下
代码

  1. def build_person(first_name,last_name):
  2. """返回一个字典,其中包含有关一个人的信息"""
  3. person = { 'first':first_name,'last':last_name}
  4. return person

结果
例子
4.将函数导入模块
函数的优点之一是,使用它们可将代码块与主程序分离。让程序看起来更简洁,同时也方便维护。import语句允许在当前的程序文件使用模块中的代码。
如下
把sayHello函数放在sayhello.py文件中

例子
用import 语句导入文件,然后就指定文件名和导入的函数名就可以导入函数
如下
例子
(参考资料《Python编程从入门到实践》)

发表评论

表情:
评论列表 (有 0 条评论,314人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python学习笔记函数

    python也有自己的函数,类似于java中的方法,他们也都是存在于自己对应的包下面,如果要使用这些函数,必须将该函数所对应的模块进行引入 1.我们要使用floor函数

    相关 Python 函数学习笔记

    1. 调用参数时的顺序 > 比如定义test(a,b)函数,在调用时,如果不显示的指定,那么第一个参数就传递给a,第二个参数就传递给b,但是也可以显示的指定比如test(b