zoukankan      html  css  js  c++  java
  • Python基础之好玩的字符串格式化f-string格式

    转自白月黑羽 Python3教程 : http://www.python3.vip/doc/tutorial/python/0010/#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 以后的版本才支持哦。

    关注我,私信我【Python】,还可以免费获取一套精心整理的电子书籍哟!

    指定宽度

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

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

    比如

    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元
  • 相关阅读:
    sql server日志已满报错
    图片基础信息
    android小细节
    内存泄露分析
    一个非常快的android模拟器
    activity退出
    ListView中内容的动画效果
    视频相关android软件
    Android Screen Monitor抓取真机屏幕
    ListView中使用type需要注意的东西
  • 原文地址:https://www.cnblogs.com/allenblogs/p/10254015.html
Copyright © 2011-2022 走看看