携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情
一、函数定义和调用
1.1、定义函数
定义(无参数)函数格式如下:
def 函数名():
代码
1.1.1 无参函数
定义(有参数)函数格式如下,参数就是在调用函数的时候往函数中传值:
def 函数名(参数1, 参数2, ...):
代码
1.1.2 有参函数
有参数的函数更加灵活,例如随机生成多少位验证码,传参几位是几位:
import random
def generate_code(num):
s = 'ajksdfajhhfwqennmdfkqJAKSKJDKLWJLWSJSK'
code = ''
for i in range(num):
r = random.choice(s)
code += r
print(code)
generate_code(4)
generate_code(6)
结果如下:
可以看到有参数的函数更灵活。
1.1.3 默值参数函数
默认值参数:在定义函数时,有一个或者多个参数已经赋好值。有默认值的参数,在调用时可以给或者不给。 注意:在定义函数时,普通参数要位于默认值参数的前面。 例:
def show_info(age, name="python"):
print(name, age)
show_info(18)
show_info(18, "Javascript")
1.1.4 关键字参数函数
关键字参数:默认参数位置是固定的,在调用函数时候,通过指定关键字赋值。例:
def show_info(age, name="python", influence="Top2"):
print(name, age, influence)
show_info(18, influence="Top1")
可以看到我们越过了第二个参数,直接使用关键字赋值传参。
1.1.5 可变参数*args函数
可变参数*args
(装包),例:
def add_num(*args):
s = 0
print(args)
for i in args:
s += i
print('和:', s)
add_num(1, 2, 3)
add_num(1, 2)
add_num()
这个过程可以理解为装包,把散的参数传递进来,变成元组的形式。
可变参数*args
(拆包),例:
def add_num(*args):
s = 0
print(args)
for i in args:
s += i
print('和:', s)
add_num(1, 2, 3)
add_num(1, 2)
ran_list = [1, 2, 3, 4, 5]
add_num(*ran_list)
拆包,顾名思义就是在传参的时候传的是列表,那么使用
*
进行拆包。
1.1.6 可变参数**kwargs函数
可变参数**kwargs
,在函数调用的时候必须传递关键字参数,才可以将其转换成key: value
,装到字典中。
例:
def show_song(**kwargs):
print(kwargs)
show_song(name="星星电灯", author="郑智化")
同理这个理解为装包的过程。同样也有拆包的过程:
def show_song(**kwargs):
print(kwargs)
dict1 = {"name": "星星电灯", "author": "郑智化"}
show_song(**dict1)
如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持