经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Python: 你所不知道的星号 * 用法
来源:cnblogs  作者:englyf八戒  时间:2022/11/28 8:56:59  对本文有异议

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「englyf」https://mp.weixin.qq.com/s/FHyosiG_tegF5NRUEs7UdA


  1. 本文大概 1193 个字,阅读需花 6 分钟
  2. 内容不多,但也花了一些精力
  3. 如有余力,欢迎点赞收藏分享,谢谢!

  1. 铃铃铃…… 上课了
  2. 老师在黑板写着这么一个标题 Python: 你所不知道的星号 * 用法》
  3. 同学A
  4. 呃,星号不就是用来做乘法的嘛,这个还有必要专门列出来吗?
  5. 同学B
  6. 老师这会又在卖关子了?
  7. 同学C忍不住嗦地一声站起来喊:
  8. 难道写代码还得强行找理由秀一波星星吗?
  9. 老师:
  10. 这位同学,你太优秀了,先坐下。
  11. 平常对于星号的应用场景用得少是不需要了解太多用法的。
  12. 不过,学编程的过程少不了要去阅读优秀的源代码库,
  13. 也就时常会对星号 * 的贸然出现和用途感到困惑,
  14. 所以今天就让你们好好了解一下会有哪些用法,
  15. 不要求全记住,略懂一二即可,略懂。。。

这里尝试总结一波python里的星号* 用法,如有写得不到位,欢迎评论区交流!看下文...

数值乘法

最常见的用法,星号用在两个数之间实现两个数的乘法计算

e.g.

  1. mul = 1 * 2
  2. print(mul)

Output:

  1. 2

成员倍增器

如果星号前面的操作数是序列,比如列表、元组、字符串等,后操作数是n,那么是对序列的成员倍增,列表的成员数量会变成原来的n倍。

e.g.

  1. list = ['hello'] * 2
  2. print(list)

Output:

  1. ['hello', 'hello']

幂运算

两个星号 ** 表示对星号前面的操作数执行后面操作数的幂运算,简单点说就是求多少次方的计算。

e.g.

  1. print(10 ** 3)

Output:

  1. 1000

函数参数解压操作符

有时候在打印数据时,需要对原始数据进行输出,并且在数据之间插入一些分隔符。一般想到的是用循环处理,但是看起来语句有些啰里啰唆的。

e.g.

  1. print(' '.join(['sunday', 'monday', 'tuesday', 'wednesday']))
  2. print(' '.join('helloworld!'))

Output:

  1. sunday monday tuesday wednesday
  2. h e l l o w o r l d !

在这里要介绍的是更方便的方法,那就是用星号做解压处理。

调用函数时,在输入参数前添加星号 * 可以对参数执行解压操作,比如对列表、元组、字符串等序列类型的输入参数做解压之后,就变成了单个数据。

e.g.

  1. print(*'list')

Output:

  1. l i s t

e.g.

  1. print(*['hello', 'world', '!'])

Output:

  1. hello world !

函数参数修饰符

  1. 添加星号 * 在函数的参数前时,表示该参数是不定数量的位置参数。

很多时候向函数输入的位置参数是不定数目的,这样子就可以借助星号修饰符来表述了。在函数内该参数存储的数据被构造成元组类型,也就是说传入的不定参数被包含在元组内。

e.g.

  1. def add(*args):
  2. return sum(args)
  3. print(add(1, 2, 3, 4, 5))

Output:

  1. 15
  1. 添加两个星号 ** 在函数的参数前时,表示该参数是不定数量的关键字参数。

向函数输入的不定数目的参数除了可以是位置参数之外,也可以是关键字参数。这个时候就不能用单个星号做修饰符了,而是双星号 **,比如 **kwargs。

在函数内该不定数目参数存储的数据属于字典类型,也就是说传入的不定参数被包含在字典内。

e.g.

  1. def food_type(**kwargs):
  2. for item in kwargs:
  3. print(f"{kwargs[item]} belongs to {item}")
  4. food_type(fruit = 'apple', meat = 'animal', vegetable = 'potato')

Output:

  1. apple belongs to fruit
  2. animal belongs to meat
  3. potato belongs to vegetable

好了,简简单单介绍完毕,你看懂了吗?如果没有就留个言吧,我改总可以了吧?

原文链接:https://www.cnblogs.com/englyf/p/16931223.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号