#函数
使用关键字def来定义函数,定义已冒号结尾
def my_function():
print("hello from a function") #到这里只是完成里函数的定义,要打印需要调用
my_function()
实参和形参
在函数体内的参数叫做形参,在调用函数时的参数叫实参。
1,位置实参
在调用函数时,将调用中的每个实参都关联到函数定义的一个形参,为此,最简单的关联方式就是基于实参的顺序
def pet(animal_type,animal_name):
print("ni have"+animal_type)
print("my"+animal_type+"`s name is"+animal_name.title())
pet("hamster","harry")
2,多次调用
当定义一个函数后,可以对于本函数多次调用
3,关键字实参
关键字实参时传递给函数的名称–值对,直接在实参中将名称和值关联起来了,这样传递时就不会混淆
def pet(animal_type,animal_name):
print("ni have"+animal_type)
print("my"+animal_type+"`s name is"+animal_name.title())
pet(animal_type="hamster",animal_name="harry")
使用关键字实参时,务必准确指定函数定义中的形参名
返回值1,返回字典
#返回字典
def build_person(first_name,last_name):
person={'first':first_name,'last':last_name}
return person
musician=build_person("king",'appjo')
print(musician)
print(musician['first']) #访问字典元素
2,传递列表
同理
传递任意数量的实参有时候,预先不知道函数需要接受多少个实参
1,形参*toppings中的星号可以让python创建一个名为toppings的空元组。
def make_pizza(*toppings):
print(toppings)
make_pizza('oinon')
make_pizza('mushroom')
能够处理一个值,也能处理多个值,且元组是不可更改的。
2,使用任意数量的关键字实参
有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。这种情况下,可将函数编写成能接受任意数量的键-值对,使用形参**toppings来创建一个字典
def make_pizza(**toppings):
print(toppings['last'])
make_pizza(last='oinon')
make_pizza(first='mushroom',last='orange')
二者的区别在于一个创建的是元组,不可修改。另一个创建的是一个字典。
将函数储存在模块中将函数存储在称为独立文件中,再将模块导入到主函数中,import语句允许当前运行的程序文件中使用模块中的代码。
1,导入整个模块
首先,创建一个模块,模块的扩展名为.py的文件,包含到程序中的代码。
def make_pizza(size,*toppings):
print('nmaking a '+str(size)+'-inch pizza with the following toppings')
for topping in toppings:
print('-'+topping)
然后,在这个模块所在的目录中创建另一个文件,这个文件导入刚创建的模块,就可以调用模块中的函数了
import pizza pizza.make_pizza(16,'peperoni') pizza.make_pizza(12,'mushroom','green pepers',"extra cheese")
2,导入特定的函数
通过用逗号分隔函数名,可以根据需要从模块中导入任意数量的函数。根据翻译就是,从apple这个模块中导入function这个特定的函数
from apple import function_0,function_1,function_2使用别名
1,使用as给函数指定别名
语法为
from module_name import function as fn
2,使用as给模块指定别名
语法为
import module_name as mn
指定完别名后就可以用别名来表示原来的名字了
3,导入模块中所有的函数
使用星号(*)可以导入模块中所有的函数
from pizza import *
相当于导入整个模块



