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

2.1 简单举例

他的结构就是F(f)+ str的形式,在字符串中想替换的位置用{}占位,与format类似,但是用在字符串后面写入替换的内容,而他可以直接识别。

name = '章超印'
age = 17
sex = '男'
msg = F'姓名:{name},性别:{age},年龄:{sex}'  # 大写字母也可以
msg = f'姓名:{name},性别:{age},年龄:{sex}'
print(msg)
'''
输出结果:
姓名:章超印,性别:17,年龄:男
'''

2.2 任意表达式

他可以加任意的表达式,非常方便:

print(f'{25*4}')  # 100

name = 'jacky'
print(f"全部大写:{name.upper()}")  # 全部大写:JACKY
# 字典也可以
student = {'name': '章超印', 'age': 18}
msg = f"The student is {student['name']}, age {student['age']}"
print(msg)  # The student is 章超印, age 18

# 列表也行
lst = ['章超印', 18]
msg = f'姓名:{lst[0]},年龄:{lst[1]}.'
print(msg)  # 姓名:章超印,年龄:18.

#列表推导式也可以
s = f"{[i for i in range(9) if i > 3]}"
print(s)

2.3 可以插入函数

可以用函数完成相应的功能,然后将返回值返回到字符串相应的位置

def sum_a_b(a,b):
    return a + b
a = 1
b = 2
print('求和的结果为' + f'{sum_a_b(a,b)}')

2.4 多行f

name = 'Jacky'
age = 18
character = 'excellent'

# speaker = f'''Hi {name}.
# You are {age} years old.
# You are a {character} guy!'''

speaker = f'Hi {name}.'\
          f'You are {age} years old.'\
          f'You are a {character} guy!'
print(speaker)

2.5 其他细节

print(f"{73}")                  # 73
print(f"{{73}}")                # {73}
print(f"{{{73}}}")              # {73}
print(f"{{{{73}}}}")            # {{73}}
print(f"{{{{{73}}}}}")          # {{73}}
print(f"{{{{{{73}}}}}}")        # {{{73}}}
print(f"{{{{{{{73}}}}}}}")      # {{{73}}}
print(f"{{{{{{{{73}}}}}}}}")    # {{{{73}}}}
print(f"{{{{{{{{{73}}}}}}}}}")  # {{{{73}}}}

# ! , : { } ;这些标点不能出现在{} 这里面。
# print(f'{;12}')  # 报错
# 所以使用lambda 表达式会出现一些问题。
# 解决方式:可将lambda嵌套在圆括号里面解决此问题。
x = 5
print(f'{(lambda x: x ** 2) (x)}')  # 25

百万年薪python之路 -- f-strings 格式化的更多相关文章

  1. 百万年薪python之路 -- 面向对象之继承

    面向对象之继承 1.什么是面向对象的继承 继承(英语:inheritance)是面向对象软件技术当中的一个概念. 通俗易懂的理解是:子承父业,合法继承家产 专业的理解是:子类可以完全使用父类的方法和属 ...

  2. 百万年薪python之路 -- 模块三

    logging 日志模块 loggin模块参数 灵活配置日志级别,日志格式,输出位置: import logging logging.basicConfig(level=logging.DEBUG, ...

  3. 百万年薪python之路 -- 并发编程之 协程

    协程 一. 协程的引入 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两 ...

  4. 百万年薪python之路 -- 推导式

    2.1列表推导式 首先我们先看一下这样的代码,给出一个列表,通过循环,想列表中添加1~10: li = [] for i in range(1,11): li.append(i) print(li) ...

  5. 百万年薪python之路 -- while循环

    day02 1.while循环 -- while关键字 while 空格 条件 冒号 缩进 循环体 while 5>4: print("Hello World!") 数字中非 ...

  6. 百万年薪python之路 -- 基础数据类型的补充

    基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...

  7. 百万年薪python之路 -- JS基础介绍及数据类型

    JS代码的引入 方式1: <script> alert('兽人永不为奴!') </script> 方式2:外部文件引入 src属性值为js文件路径 <script src ...

  8. 百万年薪python之路 -- 面向对象之 反射,双下方法

    面向对象之 反射,双下方法 1. 反射 计算机科学领域主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性.python ...

  9. 百万年薪python之路 -- 异常处理

    异常处理 1.错误的分类: 1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错 ...

随机推荐

  1. Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fa980000, 59244544, 0) failed; error='Cannot allocate memory' (errno=12)

    启动项目报错 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fa980000, 592445 ...

  2. 在vue中使用[provide/inject]实现页面reload

    在vue中实现页面刷新有不同的方法: 如:this.$router.go(0),location.reload()等,但是或多或少会存在问题,如页面会一闪等 所以建议使用[provide/inject ...

  3. Java 基本数据类型极限值

    public static void main(String[] args){ System.out.println("Integer.MIN_VALUE = " + Intege ...

  4. Java8新特性——lambda函数式编程

    一.遍历循环 /** * @author jiaqing.xu@hand-china.com * @version 1.0 * @name * @description 循环遍历 * @date 20 ...

  5. 简单动态字符串(SDS)

    SDS 前提:在redis中,C字符串只会作为字符串字面量用在一些无须对字符串进行修改的地方,比如打印日志: redisLog(REDIS_WARNING, “Redis is ready to ex ...

  6. 检测MySQL主从是否异常

    #!bin/bash user='root' passwd="123" host="192.168.192.156" mycmd="mysql -u$ ...

  7. scalikejdbc 学习笔记(3)

    重用connection: package com.citi.scalikejdbc import scalikejdbc._ import scalikejdbc.config._ object C ...

  8. Scala 学习笔记之集合(8) Try和Future

    import util._ import concurrent.ExecutionContext.Implicits.global import concurrent.Future import co ...

  9. BootstrapVue 安装指南

    BootstrapVue 是基于 Bootstrap v4 + Vue.js 的前端 UI 框架.BootstrapVue 作为学习 Vue.js 框架本身的入门框架,我认为是非常不错的.Bootst ...

  10. 排坑日记之批量从库IO进程停止

    早上刚睁眼,看到了一堆数据库告警的短信,其中一个内容如下: Problem started at 05:02:58 on 2019.10.12 Problem name: Slave is stopp ...