zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Vue 2.x windows环境下安装
    VSCODE官网下载缓慢或下载失败 解决办法
    angular cli 降级
    Win10 VS2019 设置 以管理员身份运行
    XSHELL 连接 阿里云ECS实例
    Chrome浏览器跨域设置
    DBeaver 执行 mysql 多条语句报错
    DBeaver 连接MySql 8.0 报错 Public Key Retrieval is not allowed
    DBeaver 连接MySql 8.0报错 Unable to load authentication plugin 'caching_sha2_password'
    Linux系统分区
  • 原文地址:https://www.cnblogs.com/suxianglun/p/10875155.html
Copyright © 2011-2022 走看看