源码下载
函数是一种仅在调用时运行的代码块。您可以将数据(称为参数)传递到函数中。
函数可以把数据作为结果返回。
在 Python 中,使用 def
关键字定义函数:
#在 Python 中,使用 def 关键字定义函数:
def my_function():
print("Hello from a function")
#调用
my_function()
#输出:Hello from a function
信息可以作为参数传递给函数。
参数在函数名后的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔即可。
#参数
def my_function(fname):
print('您好' + fname )
my_function("小明")
#输出:您好小明
如果我们调用了不带参数的函数,则使用默认值:
#如果我们调用了不带参数的函数,则使用默认值:
def my_function(country = "China"):
print("I am from " + country)
my_function("India")
#输出:I am from India
my_function()
#输出:I am from China
您发送到函数的参数可以是任何数据类型(字符串、数字、列表、字典等),并且在函数内其将被视为相同数据类型。
#函数的参数可以是任何数据类型(字符串、数字、列表、字典等),并且在函数内其将被视为相同数据类型。
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
#输出:apple banana cherry
如需使函数返回值,请使用 return
语句:
#如需使函数返回值,请使用 return 语句:
def my_function(x):
return 5 * x
print(my_function(4))
#输出:20
您还可以使用 key = value 语法发送参数。参数的顺序无关紧要。
#您还可以使用 key = value 语法发送参数。参数的顺序无关紧要。
def my_function(child3, child2, child1):
print("你好" + child3)
my_function(child1 = "小明", child2 = "小红", child3 = "小黑")
#输出:你好小黑
如果您不知道将传递给您的函数多少个参数,请在函数定义的参数名称前添加 *。
这样,函数将接收一个参数元组,并可以相应地访问各项:
#如果您不知道将传递给您的函数多少个参数,请在函数定义的参数名称前添加 *
def my_function(*kids):
print("你好 " + kids[2])
my_function("小明", "小红", "小黑")
#输出:你好 小黑
Python 也接受函数递归,这意味着定义的函数能够调用自身。
#Python 也接受函数递归,这意味着定义的函数能够调用自身。
def tri_recursion(k):
if(k>0):
result = k+tri_recursion(k-1)
print(result)
else:
result = 0
return result
tri_recursion(6)
#输出:1 3 6 10 15 21
#函数调用高级用法
def new_tips(argv):
def tips(func):
def nei(a, b):
print('start %s %s' % (argv, func.__name__))
func(a, b)
print('stop')
return nei
return tips
# 执行add函数时调用new_tips函数
@new_tips('add_module')
def add(a, b):
print(a + b)
print(add(4, 5))
#输出: start add_module add 9 stop None
模块是包含一组函数的文件,希望在应用程序中引用。
如需创建模块,只需将所需代码保存在文件扩展名为 .py
的文件中:
在名为 mymodule.py
的文件中保存代码:
#模块
def greeting(name):
print("Hello, " + name)
现在,我们就可以用 import
语句来使用我们刚刚创建的模块:
#导入名为 mymodule 的模块,并调用 greeting 函数
import mymodule
mymodule.greeting("小明")
#输出:Hello, 小明
如果使用模块中的函数时,请使用以下语法:
module_name.function_name
模块可以包含已经描述的函数,但也可以包含各种类型的变量(数组、字典、对象等):
在文件 mymodule.py
中保存代码:
#模块中的变量
person1 = {
"姓名": "小明",
"年龄": 11,
"国家": "china"
}
导入名为 mymodule
的模块,并访问 person1 字典:
#导入名为 mymodule 的模块,并访问 person1 字典:
import mymodule
a = mymodule.person1["年龄"]
print(a)
#输出:11
您可以在导入模块时使用 as
关键字创建别名:
#为 mymodule 创建别名 mx:
import mymodule as mx
a = mx.person1["姓名"]
print(a)
#输出:小明
Python 中有几个内建模块,您可以随时导入。
#Python 中有几个内建模块,您可以随时导入。
import platform
x = platform.system()
print(x)
#输出:Windows
有一个内置函数可以列出模块中的所有函数名(或变量名)。dir()
函数:
#列出属于 platform 模块的所有已定义名称
import platform
x = dir(platform)
print(x)
您可以使用 from 关键字选择仅从模块导入部件。
#从模块导入部件
from mymodule import person1
print(person1["年龄"])
#输出:11
若此文档不够详细,可以参考十分钟学会python_哔哩哔哩_bilibili