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. fslove - Matlab求解多元多次方程组

    fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...

  2. 这个注册的 IP 网络都不通了,Eureka 注册中心竟然无法踢掉它!

    本文导读: 微服务技术架构选型介绍 k8s 容器化部署架构方案 Eureka 注册中心问题场景 问题解决手段及原理剖析 阅读本文建议先了解: 注册中心基本原理 K8s(Kuberneters)基本概念 ...

  3. windows无法安装到这个磁盘怎样解决,及激活

    在cmd输入.sql server 2008  slmgr.vbs -ipk KH2J9-PC326-T44D4-39H6V-TVPBY  这个问题遇到的挺多次的,依稀记得上次搞这个问题搞了很久,今天 ...

  4. Scala Class etc.

    Classes 一个源文件可包含多个类,每个类默认都是 public 类字段必须初始化,编译后默认是 private,自动生成 public 的 getter/setter :Person 示例 pr ...

  5. SSH Config 管理多主机

    使用 一般我们使用ssh连接远程主机的时候,使用命令是: ssh root@ip ssh –i [identity-file] -p [port] user@hostname 但是如果ip地址过多,其 ...

  6. TensorFlow2.0(三):排序及最大、最小、平均值

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  7. maven 项目报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决

    idea在使用maven构建的项目中使用mybatis时报错org.apache.ibatis.binding.BindingException: Invalid bound statement (n ...

  8. layer.open打开一个新的jsp页面,如何关闭并刷新父页面问题

    layer.open打开一个新的jsp页面弹框,如何关闭呢? 在新的页面提交完毕之后,关闭并刷新父页面列表. layer.closeAll(); parent.layer.closeAll(); wi ...

  9. Angular 文件上传、下载

    1. 文件上传 本地可同时选择多个文件 将本地所选择的文件列出来 单个文件上传至服务器: 删除本地选择的文件 样式使用了bootstrap的样式 1. html - file.component.ht ...

  10. IDEA 导入 Maven 项目后报错 cannot resolve symbol 解决办法

    这两天整理项目,导入新的 Maven 项目时出现 cannot resolve symbol ,即使 rebuild 也没有用.解决办法如下: 1. File -> Close Project: ...