首页 > 编程语言 >Python: 你所不知道的星号 * 用法

Python: 你所不知道的星号 * 用法

时间:2022-11-28 02:33:11浏览次数:59  
标签:Python 用法 星号 参数 print Output hello

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


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

铃铃铃…… 上课了

老师在黑板写着这么一个标题 《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 !

函数参数修饰符

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

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

e.g.

def add(*args):
    return sum(args)

print(add(1, 2, 3, 4, 5))

Output:

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

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

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

标签:Python,用法,星号,参数,print,Output,hello
From: https://www.cnblogs.com/englyf/p/16931223.html

相关文章

  • CentOS6上python2.7安装memory_profiler报错
    由于我们需要分析python程序的内存占用问题,于是准备安装memory_profiler这个工具,但安装过程中各种报错,以下是安装报错截图和解决过程。1、安装/usr/local/python27/bin......
  • python中的文件操作
    起初data.txt文件是这样的#一直打开文件但却不关闭文件会导致内存溢出#在python,使用open函数,#可以打开一个已经存在的文件,或者创建一个新文件,#语法如下:open(......
  • 学习《Python编程 从入门到实践》第四天
    周末比工作日都要忙碌呢,一大堆家务事;要慢慢减少自己玩手机的时间,将时间用到有意义的事情上面去呢;不过能有几个小时做自己想去做的事情的时间,觉得还是蛮幸运的。道理大家......
  • python之OS模块
    1、简介OS模块是python中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文件和目录。  知识串讲:1)模块的安装和导入importos2)os.getcwd......
  • 《基于Python与OpenCV的人脸识别系统设计与实现》论文笔记二
    一、基本信息标题:基于Python与OpenCV的人脸识别系统设计与实现时间:2022来源:电脑知识与技术关键词:Python;OpenCV;人脸检测;人脸识别;二、研究内容问题定义:利用OpenCV......
  • 速记·python 123章
    第一、二、三章初识python1.1Python的概述开发环境:Python开发工具:IDLE(Python自带) 1.python的特点:代码简单、开发速度快、容易学习;有丰富的库;“胶水”语言2.Pyt......
  • Python第一章 油箱加满!准备出发!
    Python是种易学而强大的编程语言。它包含了高效的高级数据结构,能够用简单而高效的方式进行面向对象编程。Python优雅的语法和和动态类型,以及它天然的解释能力,使其成为了......
  • python多进程程序打包成exe的问题
    粘贴一下部分的多进程代码if__name__=='__main__':""""流程模拟"""multiprocessing.freeze_support()#打包成exe时,需要该语句,防止系统无限创建子线程......
  • 拓端数据tecdat|Python代写LDA主题模型算法应用
    在这篇文章中,我将介绍用于LatentDirichletAllocation(LDA)的ldaPython包的安装和基本用法。我不会在这篇文章中介绍该方法的理论基础。然而,这个模型的主要参考,Bleietal2......
  • 拓端tecdat|python代写用于NLP的seq2seq模型实例:用Keras实现神经机器翻译
    用于NLP的seq2seq模型实例:用Keras实现神经机器翻译在本文中,我们将看到如何创建语言翻译模型,这也是神经机器翻译的非常著名的应用。我们将使用seq2s......