简单语法:
def greet():
print(‘hello’)
简单传参语法:
def greet(username):
print(‘hello,’+username)
调用函数:
greet()
greet(‘world’)
greet(username=‘world’)
在上面的函数定义greet(username)中,username属于形参,调用greet()函数时,传入的’world’属于实参
定义函数时给形参指定默认值
def greet(username=‘world’):
print(‘hello,’+username)
注意: 在使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参,以免python在解析位置实参时发生错误。
带返回值的函数
def sum(m,n):
return int(m+n)
传递任意数量的实参
定义函数时,在形参名字前面带一个*,让python创建一个空的元组,从调用语句中搜集元素。例如:
def ftest(*v):
print(v)
调用函数:
ftest(‘haha’)
ftest(‘haha’,‘hehe’,‘xixi’)
当函数参数列表中包含任意数量的实参和非任意数量的实参时,需要保证认识数量实参放在最后。
使用任意数量的关键字实参
有时候需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息,在这种情况下,可将函数参数编写成能接受任意数量的键值对的字典,调用语句提供多少就接受多少。例如:
#定义函数:
def build_user(first,last,**user_info):
user = {}
user['first_name'] = first
user['last_name']=last
for key,value in user_info.items():
user[key]=value
return user
#调用函数:
user = build_user('z','xx',sex='female',age='50')
print(user)
也可以将函数存储在称为模块的独立文件中,再将模块导入到主程序中。
模块是扩展名为.py的文件,其中包含要导入到程序中的代码。
要调用被导入的模块中的函数,可以使用 模块名.函数命() 进行调用。
导入方式:
- 导入整个模块:
import module_name - 导入模块中的指定方法:
from module_name import function_name(,function_name1…)
同一模块中的不同方法之间用逗号隔开 - 使用as给函数指定别名:
from module_name import function_name as new_function_name - 使用as给模块指定别名:
import module_name as new_module_name - 导入模块中的所有函数:
from module_name import *
当直接导入函数时,在主程序中调用相应的函数不需要加"模块名.",若导入整个模块,需要加。