函数是带名字的代码块,用于完成具体的工作。通过使用函数,程序编写、阅读、测试和修复都将更容易。
使用关键字def来告诉Python你要定义一个函数。这是函数定义,向Python指出了函数名,还可能在括号内指出函数为完成其任务需要什么样的信息。
例如:
def hello_Python(): #第一个Python函数 print("Hello Python!") hello_Python()12345
输出结果:
鉴于函数定义可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参;也可使用关键字实参。
位置实参你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。
例如:
def describe_pet(animal_type,pet_name): print("我有一只"+animal_type+'.') print("它的名字叫"+pet_name) describe_pet('dog','mikey')1234
输出结果:
关键字实参是传递给函数的名称-值对。你直接在实参中将名称和值关联起来,因此向函数传递实参时不会混淆。关键字实参让你无需考虑调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
例如:
def describe_pet(animal_type,pet_name): print("我有一只"+animal_type+'.') print("它的名字叫"+pet_name) describe_pet(animal_type = 'dog',pet_name = 'mikey')1234
输出结果:
编写函数使,可给每个形参指定默认值,在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。因此,给定形参默认值后,可在函数调用中省略相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。
例如:
def describe_pet(animal_type = 'dog',pet_name ='mikey'): print("我有一只"+animal_type+'.') print("它的名字叫"+pet_name) describe_pet()1234
运行结果:
注意;使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参。这让Python依然能够正确地解读位置实参。
函数并非总是直接显示输出,相反,他可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return语句将值返回到带哦用函数的代码行。返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。
例如:
def get_name(first_name,last_name): full_name = first_name + last_name return full_name.title() musician = get_name ('苏',"林东") print(musician)123456
执行结果:
函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。例如,下面返回一个表示人的字典:
person.py
def get_name(first_name,last_name): person = {'first':first_name,'last':last_name} return person musician = get_name ('苏',"林东") print(musician)123456
执行结果:
你经常会发现,向函数传递列表很有用,这种列表包含的可能是名字、数字或更复杂的对象(如字典)。将列表传递给函数后,函数就能直接访问其内容。
例如:
def get_name(names): for name in names: print("Hello,"+name.title()) usernames = ['jack','sucak','jenay'] get_name(usernames)123456
输出结果:
有时候,你预先不知道函数需要多少个实参,好在Python允许函数从调用语句中收集任意数量的实参。
例如,来看一个披萨的制作函数,他需要接受很多配料,但你无法预先确定顾客需要多少种配料。
pizza.py
def make_pizza(*toppings): #打印顾客所点的配料 print(toppings) make_pizza("火腿") make_pizza("鸡蛋","蘑菇","芝士")12345
输出结果:
函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定描述性名称,可让主程序容易理解得多。你还可以更进一步,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。Import语句允许在当前的程序文件中使用模块代码。
导入整个模块要让函数是可导入的,得先创建模块。模块是扩展名为.py的文件,包含要导入到程序中的代码。下面创建一个包含函数make_pizza()的模块。为此,我们将文件pizza.py中除函数make_pizza()之外的其他代码删除
pizza.py
def make_pizza(size,*toppings): #打印顾客所点的尺寸、配料 print("n制作一个"+str(size)+"存的披萨所需要的材料:") for topping in toppings: print("-"+topping)12345
接下来,我们在pizza.py所在的目录中创建另外一个making_pizzas.py的文件,这个文件导入刚创建的模块,在调用make_pizza()两次:
making_pizzas.py
import pizza pizza.make_pizza(16,"火腿") pizza.make_pizza(14,"鸡蛋","蘑菇","芝士")123
输出结果:
你还可以导入模块中特定地函数,例如
from pizza import make_pizza make_pizza(16,"火腿") make_pizza(14,"鸡蛋","蘑菇","芝士")123
输出结果同上
使用as给函数指定别名
如果要导入的函数名称可能与程序中现有的名称冲突,或者函数名称太长,可指定简短而独一无二的别名——函数的另一个名称,类似于外号。要给函数指定这种特殊外号,需要在导入它时这样做。
例如:
from pizza import make_pizza as mp mp(16,"火腿") mp(14,"鸡蛋","蘑菇","芝士")123
输出结果同上
注意:你还可以使用as给模块指定别名,使用星号(*)运算符可让Python导入模块中所有的函数。
相关知识
Python之函数
Python学习笔记(3)——input函数
Python笔试题
Python学习手册
太原理工大学python考试题总结
python运行run在哪
python中 sort() 函数
python常用命令(初学者:超详细)
python学习笔记(四)—— 函数
Python学习记录——4.input()函数
网址: Python之函数 https://m.mcbbbk.com/newsview488048.html
上一篇: 谢娜送小鸡去农场?养宠物鸡的这些 |
下一篇: 宠物鸡怎么养拜托各位大神 |