Python字符串格式化f-string多种功能实现
作者:runfox545 发布时间:2021-01-09 22:56:45
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元
来源:https://www.cnblogs.com/allenblogs/p/10254015.html
猜你喜欢
- python使用ctypes调用C/C++1. ctpes介绍ctypes is a foreign function library fo
- 三种方法:①直接使用dict②使用defaultdict③使用Counter ps:`int()`函数默认返回0 ①di
- Python2.x使用过程中,中文乱码解决最耳熟能详的方法就是在代码前加上#-*- coding:utf-8 –*-那么为什么需要这么做呢?
- 如下所示: matplotlib.pyplot.hist( x, bins=10, range=None, normed=Fa
- 一、简介项目中用到了MySQL,参考网上的例子做了安装和基本使用,本文简单的介绍一下。二、环境准备操作系统:Win10三、教程1、下载安装包
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 题目:给定两个自然数,求这两个数的最大公约数。分析:单看题目的话,非常简单,我们可以循环遍历自然数,如果能够整除两个自然数,就把这个数记下来
- 在php中判断一个文件或目录是否存在,大家通常都会想到is_file和file_exists两个函数。但这两个函数再判断一个远程url文件是
- 一、单因素分析线性拟合功能:线性拟合,单因素分析,对散点图进行线性拟合,并放大散点图的局部位置输入:某个xlsx文件,包含'患者密度
- 正如你现在所看到的一样,网页的布局设计变得越来越重要。访问者不愿意再看到只注重内容的站点。虽然内容很重要,但只有当网页布局和网页内容成功接合
- 前言朋友提问:创建Word文档并插入市面上有很多图表绘制库,例如echarts和highcharts等等。对于这种由js动态绘制的图表,我们
- 如下所示:#!/usr/bin/python# -*- coding: UTF-8 -*- import osimport shutilde
- 最近刚出了新闻,阿里四名网络安全部门员工利用网页漏洞写js脚本抢月饼,于是兴致来了,想了解一下这个js脚本到底怎么写,各种刷单各种抢枪抢又是
- 这篇文章主要介绍了微信小程序转发事件实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考
- 闭包与defer1.闭包闭包 : 一个函数与其相关的引用环境组合的一个实体,其实可以理解为面向对象中类中的属性与方法。如代码块中,函数fun
- 本文实例为大家分享了Thinkphp微信公众号支付接口,供大家参考,具体内容如下第一步 先把文件夹的那两个图片 配置成一样的路径
- 以下是不正确的用法: var exp = undefined; if (exp == undefined) { alert("un
- 环境搭建python 安装:建议使用python3.7pycharm安装requests安装 :pip3 install requestsr
- 1、变量和类型变量是一种存储数据的载体,也就是一个容器。计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间,变量的值可以被
- 背景每次加载数据都要重新Load,想通过加入的注解方式开发缓存机制,每次缓存不用写代码了缺点:目前仅支持一个返回值,虽然能弄成字典,但是已经