百木园-与人分享,
就是让自己快乐。

Python 定义函数

函数是带名称的代码块,用于完成具体的工作,当我们需要在程序中多次执行同一任务时,会产生大量的重复代码

我们可以将重复代码定义为函数,这样每次执行任务时,只需要调用该函数即可

定义函数语法:

def functionname(parameters):
\"\"\"函数文档\"\"\"
statement
return [expression]

1 定义函数实例

1.1 定义无参数函数

下面定义一个不含参数的欢迎函数:

def greet_user():
print(\'Welcome!\')

greet_user()

执行结果:

该函数没有定义参数,所以引用的时候也不需要输入参数,直接以函数名引用即可

1.2 定义有参数函数

下面定义一个含参数的欢迎函数:

def greet_user(user):
print(\'Hello,%s!\' % user)

greet_user(\'Jack\')

执行结果:

该函数定义了参数,所以调用的时候必须输入参数

当函数有多个参数时,可以通过位置给参数赋值,但位置不可靠,建议以\'参数名=参数\'键值对的形式赋值,这样参数的位置就不影响赋值

1.3 给参数指定默认值

定义函数时,可以给参数指定默认值,这样在调用函数时,如果给参数指定值,参数就使用指定的值,否则就使用默认值

def self_introduction(name, country=\'China\'):
introduction = \'My name is %s,I come from %s.\' % (name, country)
print(introduction)
return introduction

self_introduction(name=\'张无忌\')
self_introduction(name=\'成昆\', country=\'Japan\')

结果如下:

第一次调用时,没有指定参数country的值,所以使用了默认值;第二次调用时,则使用了指定的参数值

默认参数必须指向不可变的对象

def add_end(list1=[]):
list1.append(\'1\')
return list1

print(add_end())
print(add_end())
print(add_end())

代码运行结果是:

原因:函数在定义时,默认参数list1所指定的地址已经确定,而list1是一个list,所以每次调用该函数时,如果改变了列表的内容,则下次调用时,默认参数的内容就会改变

如果确实需要指定一个空的对象,可指定默认值是None,然后在函数内部对参数值判断

1.4 定义可变参数

可变参数:就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个

定义语法:def function(arg,*args):

在函数调用时,*会以单个元素的形式解包一个元祖,使其成为独立的参数

def sum_new(*numbers):
total = 0
for n in numbers:
total = total + n * n
return total

print(sum_new())
print(sum_new(5))
a = [1, 2, 3]
print(sum_new(*a)) # 将list or tuple做为参数时,加一个*解析为可变参数

结果如下:

1.5 关键字参数

**kwargs表示关键字参数,接收的是dict

def sum_new(year, **users):
print(year, users)

sum_new(2021, a=1, b=2)

结果如下:

总结:参数的定义顺序为:必选参数-->默认参数-->可变参数-->关键字参数

来源:https://www.cnblogs.com/programmer4027/p/14745022.html
图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python 定义函数

相关推荐

  • 暂无文章