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 中整型对象存储的位置
May 16 Python
Python读取word文本操作详解
Jan 22 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
Python装饰器简单用法实例小结
Dec 03 Python
python reverse反转部分数组的实例
Dec 13 Python
wxPython实现文本框基础组件
Nov 18 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
python爬虫可以爬什么
Jun 16 Python
python wsgiref源码解析
Feb 06 Python
python线程优先级队列知识点总结
Feb 28 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
聊天室php&amp;mysql(五)
2006/10/09 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
详解Web使用webpack构建前端项目
2017/09/23 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
python3 re返回形式总结
2020/11/20 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
苹果美国官方商城:Apple美国
2016/08/24 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
应届毕业生求职信
2013/11/30 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
作文评语怎么写
2014/12/25 职场文书
对学校的意见和建议
2015/06/04 职场文书
学校就业保障协议书
2019/06/24 职场文书
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
python中的sys模块和os模块
2022/03/20 Python
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL