Python中你所不知道的星号 * 用法
作者:englyf八戒 发布时间:2022-08-06 15:25:43
铃铃铃…… 上课了
老师在黑板写着这么一个标题 《Python: 你所不知道的星号 * 用法》
同学A:
呃,星号不就是用来做乘法的嘛,这个还有必要专门列出来吗?
同学B:
老师这会又在卖关子了?
同学C忍不住嗦地一声站起来喊:
难道写代码还得强行找理由秀一波星星吗?
老师:
这位同学,你太优秀了,先坐下。
平常对于星号的应用场景用得少是不需要了解太多用法的。
不过,学编程的过程少不了要去阅读优秀的源代码库,
也就时常会对星号 * 的贸然出现和用途感到困惑,
所以今天就让你们好好了解一下会有哪些用法,
不要求全记住,略懂一二即可,略懂。。。
这里尝试总结一波python里的星号* 用法,如有写得不到位,欢迎评论区交流!看下文...
数值乘法
最常见的用法,星号用在两个数之间实现两个数的乘法计算
e.g.
mul = 1 * 2
print(mul)
Output:
2
成员倍增器
如果星号前面的操作数是序列,比如列表、元组、字符串等,后操作数是n,那么是对序列的成员倍增,列表的成员数量会变成原来的n倍。
e.g.
list = ['hello'] * 2
print(list)
Output:
['hello', 'hello']
幂运算
两个星号 ** 表示对星号前面的操作数执行后面操作数的幂运算,简单点说就是求多少次方的计算。
e.g.
print(10 ** 3)
Output:
1000
函数参数解压操作符
有时候在打印数据时,需要对原始数据进行输出,并且在数据之间插入一些分隔符。一般想到的是用循环处理,但是看起来语句有些啰里啰唆的。
e.g.
print(' '.join(['sunday', 'monday', 'tuesday', 'wednesday']))
print(' '.join('helloworld!'))
Output:
sunday monday tuesday wednesday
h e l l o w o r l d !
在这里要介绍的是更方便的方法,那就是用星号做解压处理。
调用函数时,在输入参数前添加星号 * 可以对参数执行解压操作,比如对列表、元组、字符串等序列类型的输入参数做解压之后,就变成了单个数据。
e.g.
print(*'list')
Output:
l i s t
e.g.
print(*['hello', 'world', '!'])
Output:
hello world !
函数参数修饰符
添加星号 * 在函数的参数前时,表示该参数是不定数量的位置参数。
很多时候向函数输入的位置参数是不定数目的,这样子就可以借助星号修饰符来表述了。在函数内该参数存储的数据被构造成元组类型,也就是说传入的不定参数被包含在元组内。
e.g.
def add(*args):
return sum(args)
print(add(1, 2, 3, 4, 5))
Output:
15
添加两个星号 ** 在函数的参数前时,表示该参数是不定数量的关键字参数。
向函数输入的不定数目的参数除了可以是位置参数之外,也可以是关键字参数。这个时候就不能用单个星号做修饰符了,而是双星号 **,比如 **kwargs。
在函数内该不定数目参数存储的数据属于字典类型,也就是说传入的不定参数被包含在字典内。
e.g.
def food_type(**kwargs):
for item in kwargs:
print(f"{kwargs[item]} belongs to {item}")
food_type(fruit = 'apple', meat = 'animal', vegetable = 'potato')
Output:
apple belongs to fruit
animal belongs to meat
potato belongs to vegetable
来源:https://www.cnblogs.com/englyf/p/16931223.html


猜你喜欢
- 一、Go语言下载go语言官方下载地址:https://golang.org/dl/找到适合你系统的版本下载,本人下载的是windows版本。
- Next()方法在中间件中调用 next() 方法,会从 next() 方法调用的地方跳转到Handler函数Handler函数执行完成,若
- SELECT *FROM ( &n
- 1 词频统计1.1 简单词频统计1.导入jieba库并定义文本import jiebatext = "Python是一种高级编程语
- pandas.DataFrame行名(index)和列名(columns)的修改方法如下。rename()任意的行名(index)和列名(c
- Python运行出现DeprecationWarning今天运行 py 时出现下面的问题:DeprecationWarning: Using
- Go语言没有继承、构造函数和析构函数等概念,但是它是面向对象的。.net中类型系统分为值类型和引用类型,两种转换需要进行装箱和拆箱,都是继承
- 很多人不明白,学习这些冷门的函数基本上都用不到,或者说是什么多大用处,事实上,有是有很多用处的,比如今天给大家介绍的uuid模块,就能够生成
- 1.启动H2数据库不打开浏览器窗口(默认是打开的) 2.数据库创建SQL增加了支持BigDecimal类型,h2数据库默认是不支持bigde
- MySQL 子查询子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用。MySQL 支持 SQL 标准要求的
- 1.sort()首先看sort()方法,sort方法只能对列表进行操作,而sorted可用于所有的可迭代对象。a = [1, 5, 3, 4
- pydantic是一个Python的数据验证和转换库,它的特点是轻量、快速、可扩展、可配置。笔者常用的用于数据接口schema定义与检查。具
- UserAgent = Trim(Lcase(Request.Serve
- 本篇文章记录如何使用python将pdf文件切分成一张一张图片,包括环境配置、版本兼容问题。环境配置(mac)安装ImageMagickbr
- 本文实例讲述了Python保存最后N个元素的方法。分享给大家供大家参考,具体如下:问题:希望在迭代或是其他形式的处理过程中对最后几项记录做一
- 最近使用Django来进行图像的传输,由于要求需要使用Json格式进行请求,所以我们尝试了二进制编码放在json里,发现bytes格式不能打
- 1.概述随着人工智能技术的不断发展,越来越多的AI产品被应用到各个领域,其中最具代表性的莫过于人工智能语言模型。语言模型是一种可以通过学习大
- 本文实例讲述了Python使用lambda表达式对字典排序操作。分享给大家供大家参考,具体如下:lambda表达式也常用于字典排序,既然写到
- 本文实例讲述了Symfony2实现从数据库获取数据的方法。分享给大家供大家参考,具体如下:假设有一张表:test, 字段:name,colo
- 数据类型是一种值的集合以及定义在这种值上的一组操作。一切语言的基础都是数据结构,所以打好基础对于后面的学习会有百利而无一害的作用。pytho