Python中使用%s和format传参的快速讲解

Python中有两种快速传参的办法,%sformat,可以在不打断原文结构的情况下传入参数.

以VBA为例,有些代码里面是会打断原文来传参数连接文本的,参数很多就很难看,例如我要实现下面的效果

今天的日期是xxxx,销售业绩为xxx

我们先设定参数

date = "2020-12-11"
flow = 1000

在VBA里面要这么写,就看起来很乱

'VBA
text = "今天的日期是" & date & ",销售业绩为" & flow
debug.print text
"今天的日期是2020-12-11,销售业绩为1000"

Python里面可以这么写,简直不要好看太多😻

# Python
>>> text = "今天的日期是%s,销售业绩为%s" % (date,flow)
>>> text
"今天的日期是2020-12-11,销售业绩为1000"

%s

%s代表的是传入文本

一个参数这么写

>>> text = "今天的日期是%s" % date
>>> text
"今天的日期是2020-12-11"

多个参数这么写

# Python
>>> text = "今天的日期是%s,销售业绩为%s" % (date,flow)
>>> text
"今天的日期是2020-12-11,销售业绩为1000"

当然也可以换成%d传入整数,%f传入浮点数.不过没必要,%s绝大多数场景是够用的
更高级的用法,占位,数据类型等,参考这位大佬👉Python3 格式化输出 %s & %d 等


format

format在空括号的时候和%s是一样的用法,这种实质上没有区别,都是按位置传入参数

>>> text = "今天的日期是{}".format(date)           	# 单参数
>>> text
"今天的日期是2020-12-11"
>>> text = "今天的日期是%s,销售业绩为%s".format(date,flow)	# 多参数
>>> text
"今天的日期是2020-12-11,销售业绩为1000"

但是format还可以加入参数名字,实现不固定位置传入参数,还可以在多个位置传入同样的参数

>>> text='''
今天的日期是{date},销售业绩为{flow}
今日的日期是{date},流水完成度{proc}
'''.format(date=date,flow=flow,proc="97%")
>>> text
今天的日期是2020-12-11,销售业绩为1000
今日的日期是2020-12-11,流水完成度97%

但是在实际引用中,完成度通常不是写好的百分数,而是浮点数居多.例如上面的97%,在实际取数多为0.97,所以我们可以设置一下格式

>>> text='''
今天的日期是{date},销售业绩为{flow:0d}
今日的日期是{date},流水完成度{proc:.2%}
'''.format(date=date,flow=flow,proc=0.97)
>>> text
今天的日期是2020-12-11,销售业绩为1000		
今日的日期是2020-12-11,流水完成度97.00%

更详细的参数可以参照这张表👉菜鸟教程
大致模式如下,使用时候中间没有空格

{变量名:.保留小数位 数据格式}

整数d,浮点数f,百分比%,千分位,


小结

大概可以在下面的场景使用不同的方式

场景使用
啥也不想,快速传入数据%s
快速传数据又想装逼format
多个位置使用同样的数据format
传入数据并设置格式format
不知道用啥传数据%s
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但老师

要是看起来爽 求打赏一耳光

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值