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编程从入门到实践》)

发布了45 篇原创文章 · 获赞 52 · 访问量 2827

猜你喜欢

转载自blog.csdn.net/weixin_43520670/article/details/97139471