Python格式化字符串f-string常用用法

在这里插入图片描述

简介:

f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String Interpolation,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f’xxx’ 或 F’xxx’),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:
f-string在功能方面不逊于传统的%-formatting语句和str.format()函数,同时性能又优于二者,且使用起来也更加简洁明了,因此对于Python3.6及以后的版本,推荐使用f-string进行字符串格式化。

常用用法:

1.简单使用

f-string用大括号 {} 表示被替换字段,其中直接填入替换内容:

# -*- coding: utf-8 -*-# 主函数
if __name__ == '__main__':num = 10print(f'My lucky number is {num}')

运行效果如下:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/Test/main3.py
My lucky number is 10

2.表达式求值与函数调用

f-string的大括号 {} 可以填入表达式或调用函数,Python会求出其结果并填入返回的字符串内:

# -*- coding: utf-8 -*-# 主函数
if __name__ == '__main__':for i in range(0, 5):print(f'第{i*2}行')

运行结果如下:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/Test/main3.py
第0行
第2行
第4行
第6行
第8

3.引号、大括号与反斜杠

f-string大括号内所用的引号不能和大括号外的引号定界符冲突,可根据情况灵活切换 '"

'" 不足以满足要求,还可以使用 '''"""

# -*- coding: utf-8 -*-# 主函数
if __name__ == '__main__':print(f"""She said {"I'm Tom"}""")

运行结果如下:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/Test/main3.py
She said I'm Tom

大括号外的引号还可以使用 \ 转义,但大括号内不能使用 \ 转义;

f-string大括号外如果需要显示大括号,则应输入连续两个大括号 {{}}

上面提到,f-string大括号内不能使用 \ 转义,事实上不仅如此,f-string大括号内根本就不允许出现 \。如果确实需要 \,则应首先将包含 \ 的内容用一个变量表示,再在f-string大括号内填入变量名;

4.多行f-string

f-string还可用于多行字符串

# -*- coding: utf-8 -*-# 主函数
if __name__ == '__main__':math = 96language = 89programming = 78strMyScore = f"""math={math},language={language},programming={programming}。"""print("我的学科成绩:" + strMyScore)

运行结果如下:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/Test/main3.py
我的学科成绩:math=96,language=89,programming=78

5.自定义格式:对齐、宽度、符号、补零、精度、进制等
f-string采用 {content:format} 设置字符串格式,其中 content 是替换并填入字符串的内容,可以是变量、表达式或函数等,format 是格式描述符。采用默认格式时不必指定 {:format},如上面例子所示只写 {content} 即可。

在这里插入图片描述
在这里插入图片描述

# -*- coding: utf-8 -*-# 主函数
if __name__ == '__main__':temp = 39.263print(f'temp is {temp:8.2f}')num = 12print(f'temp is {num:03d}')strTemp = hex(100)print(f'temp is {strTemp}')

运行结果如下:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/Test/main3.py
temp is    39.26
temp is 012
temp is 0x64

如果本文对您有所帮助,请关注微信公众号“捷创源科技”!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试官 | Java 对象不使用时为什么要赋值为 null?

作者 | zhantong来源 | www.polarxiong.com前言许多Java开发者都曾听说过“不使用的对象应手动赋值为null“这句话,而且好多开发者一直信奉着这句话;问其原因,大都是回答“有利于GC更早回收内存,减少内存占用”,但再往…

CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一、简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它…

PyQt5 Python主对话框创建关于对话框源代码

PyQT5 Python主对话框菜单“帮助”下的“关于”按钮,创建关于对话框,如下: main.py源代码 """ python主文件 """ # -*- coding: utf-8 -*- import os import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, Q…

国内各大厂 | 简历投递信息汇总和精美模板下载

作者 | 王磊来源 | Java中文社群1 前言为了让你的简历能被各大厂商的 HR 第一时间看到,我人工整理了以下投递渠道方便你能直接投递,下面一起来看(排名不分先后)。2 投递信息汇总阿里巴巴https://campus.alibaba.com/index.htm腾讯…

关于UIView的userInteractionEnabled属性

如果父视图为ParentView包含一个Button,如果再ParentView上添加子视图ChildView,且ChildView盖住了 Button,那么Button就得到不响应了,为了让Button响应,可以设置ChildView的userInteractionEnabled = NO&a…

Python PIL调整图片大小、尺寸和转换图片格式,removebg改变图片背景、透明化处理

1.简介:Python利用PIL Image可以调整图片尺寸(宽度和高度)、图片大小和转换图片格式,Python利用removebg可以改变图片背景、透明化处理。 2.特点:简单方便、快速。 3.适用人群:想学习Python处理图片的初学者。 main.py源代码 """--------------------…

面试官 | 为什么用了索引之后,查询就会变快?

为什么用了索引之后,查询就会变快?相信很多程序员朋友对数据的索引并不陌生,最常见的索引是 B Tree 索引,索引可以加快数据库的检索速度,但是会降低新增、修改、删除操作的速度,一些错误的写法会导致索引失…

社会化海量数据采集爬虫框架搭建

随着BIG DATA大数据概念逐渐升温,如何搭建一个能够采集海量数据的架构体系摆在大家眼前。如何能够做到所见即所得的无阻拦式采集、如何快速把不规则页面结构化并存储、如何满足越来越多的数据采集还要在有限时间内采集。这篇文章结合我们自身项目经验谈一下。 我们来…

【博主推荐】Python 基于Xlwings、Openpyxl自己重新封装Python操作Excel类

1.简介:Python操作Excel,常用Xlwings、Openpyxl类,由于其知识琐碎,使用起来不太方便,因此自己把常用用法重新封装一个操作类。 2.应用场景:使用Python操作Excel,读、写、改、删情景,能大大提升工作效率。 3.适用人群:想学习Python操作Excel的人员。 一、Python 基于…

面试官 | Nginx 是什么?有什么作用?

作者 | 蔷薇Nina来源 | cnblogs.com/wcwnina/p/8728391.htmlNginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator&a…

CTF【解密】字符串flag被加密成已知新字符串,请解密出flag,可以使用Python解码出WriteUp

CTF-解密: 找出flag task.py # -*- coding: utf-8 -*-assert flag[0:5] flag{strAlphabet abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZdef encode(strOld, x, y, n):strNew for i in strOld:if i in strAlphabet:num strAlphabet.index(i) # 返回…

面试官 | count(1)、count(*) 、count(列名) 有什么区别?

作者 | BigoSprite来源 | 39sd.cn/0926A先看执行效果:1. count(1) and count(*)当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和count(*)的效果是一样的。但是…

python ping利用线程池获取在线设备

python ping获取一个VLAN在线设备 myPyPingDevice.py """=== coding: UTF8 ===""" # 线程池:一次性开辟一些线程,我们用户直接给线程池提交任务,线程任务的调度交给线程池来完成 from concurrent.futures import ThreadPoolExecutor import…

【吐血整理】年度盘点 | 2019年Java面试题汇总篇——附答案

在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几乎是全年每周一篇面试文章的节奏,当然其中有不少的面试题来源于网络,但…

【工作记录】android手势事件操作记录

/* 用户按下触摸屏、快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //参数解释: // e1:第1个ACTION_DOWN MotionEvent // e2:最后一个ACTION_MOVE MotionEvent // velocityX&…

年终盘点 | 2019年Java面试题汇总篇(附答案)

作者 | 老王来源 | Java中文社群「微信公众号」在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几乎是全年每周一篇面试文章的节奏,当…

Python操作MySQL的封装类

myPySql.py # -*- coding: utf-8 -*- import re import pymysql import myGlobal # myGlobal全局变量文件class MySql:"""python操作mysql数据库"""def __init__(self, strHost=127.0.0.1, nPort=3306,

面试官 | 如何在 Spring Boot 中进行参数校验?

作者 | 狂乱的贵公子来源 | cnblogs.com/cjsblog/p/8946768.html开发过程中,后台的参数校验是必不可少的,所以经常会看到类似下面这样的代码这样写并没有什么错,还挺工整的,只是看起来不是很优雅而已。接下来,用Valida…

Python读写ini文件的封装类

systemConfig.ini [Server] host = 192.168.70.254 port = 3306 user = root password = rootmyPyIniFile.py # -*- coding: utf-8 -*- import os import configparserclass doIniFile:"""python操作ini文件类

Dubbo 面试题汇总(附答案)

作者 | Dean Wang来源 | deanwang1943.github.iodubbo是什么dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含:集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡…