python3 函数

2023-12-28 18:57:51

Python 定义函数使用 def 关键字,一般格式如下:

def??函数名(参数列表):
????函数体

让我们使用函数来输出"Hello World!":

>>>?def?hello()?:
??print("Hello?World!")
>>>?hello()
Hello?World!
>>>

更复杂点的应用,函数中带上参数变量:

def?area(width,?height):
????return?width?*?height
def?print_welcome(name):
????print("Welcome",?name)
print_welcome("Fred")
w?=?4
h?=?5
print("width?=",?w,?"?height?=",?h,?"?area?=",?area(w,?h))

以上实例输出结果:

Welcome?Fred
width?=?4??height?=?5??area?=?20

函数变量作用域

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

通过以下实例,你可以清楚了解Python函数变量的作用域:

#!/usr/bin/env?python3
a?=?4??#?全局变量
def?print_func1():
????a?=?17?#?局部变量
????print("in?print_func?a?=?",?a)
def?print_func2():???
????print("in?print_func?a?=?",?a)
print_func1()
print_func2()
print("a?=?",?a)

以上实例运行结果如下:

in?print_func?a?=??17
in?print_func?a?=??4
a?=??4

关键字参数

函数也可以使用 kwarg=value 的关键字参数形式被调用.例如,以下函数:

def?parrot(voltage,?state='a?stiff',?action='voom',?type='Norwegian?Blue'):
????print("--?This?parrot?wouldn't",?action,?end='?')
????print("if?you?put",?voltage,?"volts?through?it.")
????print("--?Lovely?plumage,?the",?type)
????print("--?It's",?state,?"!")

可以以下几种方式被调用:

parrot(1000)??????????????????????????????????????????#?1?positional?argument
parrot(voltage=1000)??????????????????????????????????#?1?keyword?argument
parrot(voltage=1000000,?action='VOOOOOM')?????????????#?2?keyword?arguments
parrot(action='VOOOOOM',?voltage=1000000)?????????????#?2?keyword?arguments
parrot('a?million',?'bereft?of?life',?'jump')?????????#?3?positional?arguments
parrot('a?thousand',?state='pushing?up?the?daisies')??#?1?positional,?1?keyword

返回值

Python的函数的返回值使用return语句,可以将函数作为一个值赋值给指定变量:

def?return_sum(x,y):
????c?=?x?+?y
????return?c
res?=?return_sum(4,5)
print(res)

也可以让函数返回空值:

def?empty_return(x,y):
????c?=?x?+?y
????return
res?=?empty_return(4,5)
print(res)

可变参数列表

最后,一个最不常用的选择是可以让函数调用可变个数的参数.这些参数被包装进一个元组(查看元组和序列).在这些可变个数的参数之前,可以有零到多个普通的参数:

def?arithmetic_mean(*args):
????sum?=?0
????for?x?in?args:
????????sum?+=?x
????return?sum
print(arithmetic_mean(45,32,89,78))
print(arithmetic_mean(8989.8,78787.78,3453,78778.73))
print(arithmetic_mean(45,32))
print(arithmetic_mean(45))
print(arithmetic_mean())

以上实例输出结果为:

244
170009.31
77
45
0

文章来源:https://blog.csdn.net/hakesashou/article/details/135254217
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。