博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础===* 解包,格式化输出和print的一点知识
阅读量:5994 次
发布时间:2019-06-20

本文共 961 字,大约阅读时间需要 3 分钟。

python3中的特性:

>>> name = "botoo">>> print(f"my name is {name}")my name is botoo

等价于:

>>> print("my name is {}".format(name))my name is botoo

 

再看list,如果我们想打印一个list的每个内容,例如我想输出0,1,2,3,4,5,6,7,8,9的格式

>>> L = list(range(10))>>> for l in L:    print(l)    0123456789

显然是不行的,所以能想到的是,给print()函数的end参数进行更改:

>>> for l in L:    print(l, end=",")    0,1,2,3,4,5,6,7,8,9,

于是得到了这样的答案,但是最后多了一个逗号。这个是可以通过代码进行去掉的:

>>> for i in L:    if i != L[-1]:        print(i,end = ",")    else:        print(i)        0,1,2,3,4,5,6,7,8,9

至此我们发现,整个过程很繁琐,也很复杂。

有没有更简单的方式,更pythonic的代码

 

基于此,想到了前几天用*对函数参数解包的作用,代码如下:

>>> def func(a,b,c):    print(a+b+c)    >>> arg = (1,2,3)>>> func(*arg)6

*将arg的每一项分配给了func函数,而这个过程中*的作用就是解包

于是,再次尝试:

>>> print(*L)0 1 2 3 4 5 6 7 8 9

果然可行,再加入,号就可以成功。

>>> print(*L,sep = ",")0,1,2,3,4,5,6,7,8,9

(关于print()函数的sep,和end参数的用法自行百度。)

 

当然,还有方法就是使用.join(),网上说明很多,故不再赘述。

print(",".join([str(i) for i in L]))0,1,2,3,4,5,6,7,8,9

 

转载于:https://www.cnblogs.com/botoo/p/9012803.html

你可能感兴趣的文章
JavaScript内部原理实践——真的懂JavaScript吗?(转)
查看>>
【DeepLearning】Exercise:Softmax Regression
查看>>
Android JNI入门第四篇——Android.mk文件分析
查看>>
Get a developer license for windows store app
查看>>
策略模式
查看>>
Android Studio导入第三方类库的方法
查看>>
利用try-catch判断变量是已声明未声明还是未赋值
查看>>
zxing二维码
查看>>
android中 回调方法,怎么转变为阻塞执行的方法
查看>>
.NET平台下的微信SDK(Rabbit.WeiXin)开源发布
查看>>
简要介绍如何集成Vitamio安卓版SDK
查看>>
BZOJ1107 : [POI2007]驾驶考试egz
查看>>
div与span区别及用法
查看>>
Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制
查看>>
【转载】COM小结
查看>>
Python的高级特性2:列表推导式,生成器与迭代器
查看>>
Ubuntu 14.04 64位字体美化(使用黑文泉驿)
查看>>
[android] AndroidManifest.xml - 【 manifest -> permission】
查看>>
20150728月度会议
查看>>
explain mysql性能优化
查看>>