Python字符串格式化f-string多种功能实现


Posted in Python onMay 07, 2020

f-string 格式化

f-string 格式化 就是在字符串模板前面加上f,然后占位符使用{} ,里面直接放入对应的数据对象。

如下所示

f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元'

完整的代码如下

salary = input('请输入薪资:')
 
# 计算出缴税额,存入变量tax
tax = int(salary) *25/100
 
# 计算出税后工资,存入变量aftertax
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元')

运行一下,可以发现输出结果一样。这种方式是不是更加的直观明了呢?

要注意的是,这种写法必须要Python解释器是3.6 以后的版本才支持哦。

指定宽度

同样,为了输出对齐,我们需要指定填入的字符串的宽度。

方法是,在括号里面的变量后面加上 :宽度值

比如

salary = 10000
print(f'{salary:10}')

f'{salary:10}' 就指定了 宽度为10 个字符, 如果填入的字符串不足10个字符,就在前面加上空格.比如上面的输出结果就是

>>> salary = 10000
>>> print(f'{salary:10}')
10000

完整的一个示例程序如下

# 员工 1
salary = 8000
 
tax = int(salary) *25/100
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')
 
# 员工 2
salary = 15000
 
tax = int(salary) *25/100
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')
 
# 员工 3
salary = 100000
 
tax = int(salary) *25/100
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')

运行一下结果如下:

税前薪资是: 8000元, 缴税: 2000.0元, 税后薪资是: 6000.0元
税前薪资是: 15000元, 缴税: 3750.0元, 税后薪资是: 11250.0元
税前薪资是: 100000元, 缴税: 25000.0元, 税后薪资是: 75000.0元

这样,整体就显得很清爽。

当然上面的代码 有很多重复的部分。聪明的你想到怎么优化一下了吗?

对了,用函数。像这样

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')
# 员工 1
calcTax(8000)
# 员工 2
calcTax(15000)
# 员工 3
calcTax(100000)

左对齐

上面的输出结果是不足在前面补空格,最终的结果就是右边对齐。 如果我们想左对齐,可以在括号里使用 < 符号

像这样 {salary:<8}

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:<8}元, 缴税:{tax:<8}元, 税后薪资是:{aftertax:<8}元')
calcTax(8320)
calcTax(15023)
calcTax(100030)

运行结果如下:

税前薪资是:8320 元, 缴税:2080.0 元, 税后薪资是:6240.0 元
税前薪资是:15023 元, 缴税:3755.75 元, 税后薪资是:11267.25元
税前薪资是:100030 元, 缴税:25007.5 元, 税后薪资是:75022.5 元

小数点后位数

如果我们想指定小数点后保留几位,可以像这样 {salary:<8.1f}

后面的.1f就表示小数点后面保留1位

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:8.1f}元, 缴税:{tax:8.1f}元, 税后薪资是:{aftertax:8.1f}元')
calcTax(8320)
calcTax(15023)
calcTax(100030)

运行结果如下:

税前薪资是: 8320.0元, 缴税: 2080.0元, 税后薪资是: 6240.0元
税前薪资是: 15023.0元, 缴税: 3755.8元, 税后薪资是: 11267.2元
税前薪资是:100030.0元, 缴税: 25007.5元, 税后薪资是: 75022.5元

不足补零

如果我们想在不足指定宽度的时候不是补空格,而是补数字0,可以像这样 {salary:08}

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:08}元, 缴税:{tax:08.1f}元, 税后薪资是:{aftertax:08.1f}元')
calcTax(8320)
calcTax(15023)
calcTax(100030)

运行结果如下:

税前薪资是:00008320元, 缴税:002080.0元, 税后薪资是:006240.0元
税前薪资是:00015023元, 缴税:003755.8元, 税后薪资是:011267.2元
税前薪资是:00100030元, 缴税:025007.5元, 税后薪资是:075022.5元

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python Django批量导入数据
Mar 25 Python
用tensorflow搭建CNN的方法
Mar 05 Python
基于数据归一化以及Python实现方式
Jul 11 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
python监控nginx端口和进程状态
Sep 06 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
Mar 10 Python
python基础之文件操作
Oct 24 Python
基于python实现把json数据转换成Excel表格
May 07 #Python
Python基于当前时间批量创建文件
May 07 #Python
python多进程下的生产者和消费者模型
May 07 #Python
基于python实现检索标记敏感词并输出
May 07 #Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 #Python
如何搭建pytorch环境的方法步骤
May 06 #Python
Python基于Tkinter编写crc校验工具
May 06 #Python
You might like
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
phpStorm2020 注册码
2020/09/17 PHP
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
Python自动重试HTTP连接装饰器
2015/04/28 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
Python中Qslider控件实操详解
2021/02/20 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
幼儿园安全责任书
2014/04/14 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
感恩的演讲稿
2014/05/06 职场文书
护士找工作求职信
2014/07/02 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技