函数是带有名字的代码块,用于完成具体的工作
使用def语句定义函数,def function():
语句后面的所有的缩进行构成了该函数的函数体,python中的函数也可以带参数,而且在定义函数时可以不指定参数的数据类型,即参数可以是数字,字符串,也可以是列表或者字典。python中的函数也可以有返回值,返回值的数据类型同样可以是任何数据类型,具体使用方法如下实例所示
def say_hello():
print("Hello!")
def say_hello_to(name):
print("Hello," + str(name) + "!")
def show_data(year,month,day):
print("It is " + str(year) + "/" + str(month) + "/" + str(day))
def show_data(year,month,day):
print("It is " + str(year) + "/" + str(month) + "/" + str(day))
if __name__ == '__main__':
say_hello()
say_hello_to('Bob')
show_data(2021,2,20)
模块其实就是一个扩展名为.py的python代码源文件,该文件中包含着需要被其他程序所导入的函数
在模块文件中使用if name == 'main':
结构控制当前python文件是用作脚本直接执行,还是被import到其他的python脚本中被调用执行,具体使用方法如下实例所示:
#funcs.py文件
def func1():
print("This is func1")
def func2():
print("This is func2")
if __name__ == '__main__':
#当直接运行此Python脚本时,运行如下程序
print("This is main code")
func1()
func2()
上述代码的运行结果如下所示:
This is main code
This is func1
This is func2
使用import module_name
语句导入整个模块,再使用module_name.function_name
调用该模块中的任意函数,具体使用方法如下实例所示:
#导入整个funcs模块
import funcs
#调用funcs模块中的函数
funcs.func1()
funcs.func2()
上述代码的运行结果如下所示:
This is func1
This is func2
使用from module_name import function_name1,function_name2
语句导入模块中特定的函数,再使用function_name
直接调用函数,具体使用方法如下实例所示:
#导入模块中的特定函数
from funcs import func1
#此时可以直接通过函数名调用该函数
func1()
#若此时调用func2(),则会出现如下Error:
#"NameError: name 'func2' is not defined"
上述代码的运行结果如下所示:
This is func1
使用from module_name import *
语句导入模块中所有的函数,再使用function_name
直接调用函数,具体使用方法如下实例所示:
#导入模块中所有的函数
from funcs import *
#此时模块funcs中的函数都可以直接调用
func1()
func2()
上述代码的运行结果如下所示:
This is func1
This is func2
使用import module_name as new_name
语句导入模块,并将其命名为new_name,再使用new_name.function_name
调用该模块中的任意函数,具体使用方法如下实例所示:
#导入整个funcs模块,并将其命名为new
import funcs as new
#调用funcs模块中的函数
new.func1()
new.func2()
上述代码的运行结果如下所示:
This is func1
This is func2
如果想要导入的函数的名词太长,或者与本程序中的函数名词发生冲突,就可以使用from module_name import function_name as new
为该函数指定简短而唯一的别名,具体使用方法如下实例所示:
#导入模块中的特定函数并为其指定别名
from funcs import func1 as f1
f1()
上述代码的运行结果如下所示:
This is func1