Python字符串格式化f-string多种功能实现
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元
这样,整体就显得很清爽。
当然上面的代码有很多重复的部分。聪明的你想到怎么优化一下了吗?
对了,用函数。像这样
defcalcTax(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}
defcalcTax(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位
defcalcTax(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}
defcalcTax(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元
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。