• Python3.6新特性:f-strings格式化输出


    按照惯例,吟诗一首,苏轼《江城子·密州出猎》

    老夫聊发少年狂,左牵黄,右擎苍,锦帽貂裘,千骑卷平冈。
    为报倾城随太守,亲射虎,看孙郎。
    酒酣胸胆尚开张,鬓微霜,又何妨!持节云中,何日遣冯唐?
    会挽雕弓如满月,西北望,射天狼。
    

    f-strings 是python3.6开始加入标准库的格式化输出新的写法,这个格式化输出比之前的%s 或者 format 效率高并且更加简化,非常的好用,以后再用格式化输出选它绝对没有错。

    1、简单使用

    name = 'allen'
    age = 18
    sex = '男'
    msg_f = f'我的名字叫:{name},我今年{age}岁,我是{sex}生'
    msg_F = F'我的名字叫:{name},我今年{age}岁,我是{sex}生'
    print(msg_f)
    print(msg_F)
    
    

    结果:

    我的名字叫:allen,我今年18岁,我是男生
    我的名字叫:allen,我今年18岁,我是男生
    

    是不是阅读代码的时候很清晰

    2、结合表达式使用

    #运算、转换
    res = f'我的名字叫:{name.upper()},我今年{age + 1}岁,我是{sex}生'
    print(res)
    # 字典
    person = {'name': name, 'age': age}
    res = f"i am {person['name']}, my age is {person['age']}"
    print(res)
    
    

    结果:

    我的名字叫:ALLEN,我今年19岁,我是男生
    i am allen, my age is 18
    

    3.结合函数使用

    def fun(a, b):
        return a + b
    a = 2
    b = 3
    msg = f'2+3={fun(a, b)}'
    print(msg)
    

    结果:

    2+3=5
    

    4.多行使用

    name = 'allen'
    age = 18
    sex = '男'
    
    res = f'Hi {name}.'
              f'You are {age} years old.'
              f'You are {sex}'
    print(res)
    

    结果:

    Hi allen.You are 18 years old.You are 男
    

    4.结合lambda使用

    ! , : { } ;这些标点不能出现在{} 这里面。

    比如:print(f'{;12}') 就会报错

    所以使用lambda 表达式会出现一些问题。

    解决方式:可将lambda嵌套在圆括号里面解决此问题。

    x = 5
    print(f'{(lambda x: x + 2)(x)}') # 7
    
  • 相关阅读:
    JVM活学活用——GC算法 垃圾收集器
    JVM活学活用——类加载机制
    JVM活学活用——Jvm内存结构
    优化springboot
    Java基础巩固计划
    Java自定义注解
    记一次内存溢出的分析经历
    redis学习笔记-redis的安装
    记一次线程池调优经历
    Python中关于split和splitext的差别和运用
  • 原文地址:https://www.cnblogs.com/suxianglun/p/10875155.html
Copyright © 2020-2023  润新知