分享

大话 Python:python 基础巩固 -- Python3 * 和 ** 运算符使用场景

 Python集中营 2022-10-10 发布于甘肃
1、算数运算
  • 一个 *  代表乘法

  • 两个 ** 代表乘方


1>>> 3 * 2
2 6
3>>> 3 ** 2
4 9

2、函数形参

*args 和 **kwargs 主要用于函数定义,你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你,所以在这个场景下使用这两个关键字,其实并不是必须写成 *args 和 **kwargs。* 是必须要有的。 也可以写成 *r  和 **g ,写成 *args 和**kwargs 是通常的一种约定。
python函数传递参数的方式:

  • positional argument(位置参数

  • keyword argument(关键词参数


*args 与 **kwargs 的区别:
  • *args 表示任何多个无名参数,它本质是一个 tuple

  • **kwargs 表示关键字参数,它本质上是一个 dict


如果同时使用 *args 和 **kwargs 时,必须 *args 参数列要在 **kwargs 的前面。
1>>> def fun(*args, **kwargs):
2...     print('args=', args)
3...     print('kwargs=', kwargs)
4... 
5>>> fun(1234, A='a', B='b', C='c', D='d')
6args= (1234)
7kwargs= {'A''a''B''b''C''c''D''d'}

*args 的使用

1>>> def fun(name, *args):
2...     print('你好:', name)
3...     for i in args:
4...         print("你的宠物有:", i)
5... 
6>>> fun("Geek""dog""cat")
7你好: Geek
8你的宠物有: dog
9你的宠物有: cat

**kwargs 的使用

1>>> def fun(**kwargs):
2...     for key, value in kwargs.items():
3...         print("{0} 喜欢 {1}".format(key, value))
4... 
5>>> fun(Geek="cat", cat="box")
6Geek 喜欢 cat
7cat 喜欢 box

3、函数实参

如果函数的形参是定长参数,也可以使用 *args 和 **kwargs 调用函数,类似对元组和字典进行解引用:

 1>>> def fun(data1, data2, data3):
2...     print("data1: ", data1)
3...     print("data2: ", data2)
4...     print("data3: ", data3)
5... 
6>>> args = ("one"23)
7>>> fun(*args)
8data1:  one
9data2:  2
10data3:  3
11>>> kwargs = {"data3""one""data2"2"data1"3}
12>>> fun(**kwargs)
13data1:  3
14data2:  2
15data3:  one

4、序列解包

文章引用来源:CSDN 博客平台  

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多