《Modern Python Cookbook》(Python经典实例)笔记1.8 使用模板字符串.format()构建复杂的字符串

USB-Blaster在Win11报错?3分钟搞定驱动兼容性问题(Quartus 21.4实测) 本文针对Windows 11系统下USB-Blaster驱动安装问题,提供了一套快速解决方案。通过优化驱动安装流程、绕过签名验证及设备管理器高级技巧,帮助开发者在3分钟内解决Quartus 21.4的兼容性问题,提升FPGA调试效率。 阅读详情

我们一般使用模板以及相应替换规则将数据转换为更复杂的字符串。
案例说明:
假设有以下变量

In [1]: id = "IAD"
In [2]: location = "Dulles Intl Airport"
In [3]: max_temp = 32
In [4]: min_temp = 13
In [5]: precipitation = 0.4

我们想把他们拼装为类似 IAD : Dulles Intl Airport : 32 / 13 / 0.40的形式。
操作步骤:
(1) 根据目标字符串的结构创建模板字符串,将所有数据项替换为{}占位符。在每个占位符内,放置数据项的名称。
'{id} : {location} : {max_temp} / {min_temp} / {precipitation}'
(2)使用字符串的format()方法创建目标字符串。

In [14]: template = '{id}:{location}:{max_temp} / {min_temp} / {precipitation}'
In [15]: template.format(id=id,location=location,max_temp=max_temp,min_temp=min_temp,precipitation=precipitation)
Out[15]: 'IAD:Dulles Intl Airport:32 / 13 / 0.4'

(3)我们可以发现创建的目标字符串格式有些不太准确,其实模板字符串的数据项还可以添加数据类型标识。基本数据类型代码如下:

  • s为字符串
  • d为十进制数
  • f为浮点数
    添加类型代码后的模板字符串如下所示:
In [16]: template = '{id:s}  : {location:s} : {max_temp:d} / {min_temp:d} / {precipitation:f}'
In [17]: template.format(id=id,location=location,max_temp=max_temp,min_temp=min_temp,precipitation=precipitation)
Out[17]: 'IAD  : Dulles Intl Airport : 32 / 13 / 0.400000'

(4)长度信息不是必须的,在某些情况下,甚至不需要长度信息。然而,在本例中,长度信息确保每个消息具有一致的格式。长度信息添加在类型代码之前。对于字符串和十进制数字,长度信息的格式如19s或3d。对于浮点数,长度信息的格式如5.2f,该长度信息指定了两部分内容:总长度为5个字符,其中2个在小数点的右边。整个模板字符串如下所示。

In [20]: template = '{id:3s}  : {location:19s} : {max_temp:3d} / {min_temp:3d} / {precipitation:5.2f}'
In [21]: template.format(id=id,location=location,max_temp=max_temp,min_temp=min_temp,precipitation=precipitation)
Out[21]: 'IAD  : Dulles Intl Airport :  32 /  13 /  0.40'

扩展1:
我们通过模板字符串的format()方法按照名称提供所有变量。在某些情况下,可能需要使用变量构建一个字典对象。这时,可以使用format_map()方法:

In [22]: data = dict(id=id,location=location,max_temp=max_temp,min_temp=min_temp,precipitation=precipitation)
In [23]: data
Out[23]:
{'id': 'IAD',
 'location': 'Dulles Intl Airport',
 'max_temp': 32,
 'min_temp': 13,
 'precipitation': 0.4}
In [24]: template.format_map(data)
Out[24]: 'IAD  : Dulles Intl Airport :  32 /  13 /  0.40'

扩展2:
内置的vars()函数可以构建一个所有局部变量的字典。

In [25]: template.format_map(vars())
Out[25]: 'IAD  : Dulles Intl Airport :  32 /  13 /  0.40'

vars()函数可以便捷地自动构建字典。
字符串的format()方法和format_map()方法都可以组装相对复杂的字符串。
这些方法的基本功能是根据关键字参数的名称或字典中的键将数据插入到字符串中。

使用 syncstart 实现同场景下多个音视频音轨自动化同步 如果需要在视频编辑中同步多个机位的音轨,使得相同的视频能够同时播放,手动操作可能会变得相当复杂。特别是当处理多个视频文件时,例如有10个视频需要互相匹配,实现一对多的同步关系,这就涉及到为每对视频生成匹配的音轨数据。手动完成这样的任务,如生成90套对应的音轨数据,不仅耗时而且容易出错。因此,使用脚本自动化这一过程是一个更为高效和准确的解决方案。通过编写脚本,您可以批量处理多个视频文件,自动同步它们的音轨,大大简化了音视频编辑的工作流程,并确保了同步的准确性。 阅读详情

相关推荐

视频监控设备(NVR、IPC等)如何通过国标GB28181接入到视频监控平台,以及接入过程如何测试视频接入是否成功

GB/T28181标准广泛的应用,视频监控设备通过国标GB28181接入视频监控平台的过程变成程序化、标准化的互联过程,确保了视频监控设备能够在不同系统、不同网络环境下实现远程、跨区域、跨级别的访问和控制。版本有GB28181-2011、2016、2022几个常用版本,威迪斯特的视频监控平台完全支持GB28181的这几个版本,能够实现不同品牌视频监控设备的国标视频接入(国标视频监控接入),或者为国标28181视频接入(国标28181视频监控接入),也为国标281818接入(国标GB/T28181接入。

weixin_70208651的博客 1万+

python中format()方法的格式控制

目录 一、基本使用格式 二、格式控制 1.<填充>、<对齐>、<宽度> 2.<精度> 一、基本使用格式 "模板字符串".format(<逗号分隔的参数>) "今天是{}年{}月{}日".format("2022","3",17) #数字加不加引号都可以,字符串需要加 今天是2022年3月17日 #槽中带序号: "今天是{2}年{1}月{0}日".format(2022,3,17) 今天是17年3月2022日 模板字符

Michale_L的博客 9402

c语言版数据结构课程设计 学生成绩管理系统

此学生成绩管理系统完成15项功能,是我经过很多次的修改得到的。花费时间不短,功能齐全,主要完成了:输入,输出,插入,修改,删除,查询,读取文件,写入文件,复制文件,建立索引,显示各种情况下的信息,追加学生信息等等功能。一共15项。   代码如下: // shujujiegou.cpp : 定义控制台应用程序的入口点。///**本程序采用数组链表形式,原因:数组查询速度快,数组也能实现动态存储

Java 1万+

format()方法的使用超全

字符串通过format()方法进行格式化处理,基本使用格式:.format() 其中模板字符串的槽的内部样式:{:} 其中,格式控制标记分为:、、、、、

m0_71869598的博客 1万+

别再只调电压了!深入理解数控电源的CC/CV模式与双闭环PID控制(以BUCK电路为例)

本文深入解析数控电源的CC/CV模式与双闭环PID控制技术,以BUCK电路为例,探讨如何通过双闭环控制优化负载突变响应和模式切换稳定性。文章详细介绍了电压环与电流环的协同工作原理、PID参数整定技巧及工程实践中的非线性补偿方法,帮助工程师提升电源设计的智能控制能力。

weixin_27017211的博客 263

学习笔记——神经科学的数学基础

m%3D2X_%7Bi%7DiNy%3DAxW%3DABx_%7Bj%7Dy_%7Bi%7Dy%3DWxt=N7T8卷积神经网络(CNN)详细介绍及其原理详解_IronmanJay的博客-优快云博客https://blog.csdn.net/IronmanJay/article/details/128689946?

zxyopenstar的博客 1374

Python字符串格式化--format()方法

字符串类型格式化采用format()方法,基本使用格式是:      .format()      由一系列的槽组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法的中的参数按照序号关系替换到的槽中。槽用大括号({})表示,如果大括号中没有序号,则按照出现顺序替换。 如果大括号中指定了使用参数的序号,按照序号对应参数替换。调用format()方法后会返回一个新的字符串

学习使我快乐 15万+

动态库加载失败终极指南:从libbz2.so.1错误看Linux依赖管理本质

本文以经典的libbz2.so.1加载错误为例,深入剖析Linux动态链接库管理的核心机制。文章不仅提供从ldd检查、符号链接创建到LD_LIBRARY_PATH设置等实战解决方案,更系统性地讲解了动态链接器的寻库路径、版本管理及依赖问题预防策略,帮助开发者从根本上理解和掌握Linux依赖管理本质。

weixin_29212429的博客 447

String.format() 构建字符串模板

目录一、使用 String.format() 构建短信模板1. 定义常量类2. 拼接内容3. 输出结果二、format 源码 一、使用 String.format() 构建短信模板 1. 定义常量类 package com.test.constants; /** * 用户常量 */ public interface UserConstants { String SMS_TITLE =...

steven 994

【传感器模块项目实战】自动驾驶/机器人相关传感器原理及标定

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、IMU二、相机三、激光雷达四、轮速里程计五、GPS/RTK六、毫米波雷达总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对**【自动驾驶相关传感器原理及标定】**做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、IMU IMU惯导系统的特性(imu_calc函数功能) IMU运行的

qq_35635374的博客 1232

如何实现Docker镜像导入导出 ?

摘要: Docker镜像迁移与备份可通过两种方式实现:1)镜像操作(save/load)完整保存分层结构和元数据,适用于完整备份;2)容器操作(export/import)仅保存文件系统快照,适合创建轻量模板。关键区别在于前者保留历史记录和分层,后者生成单层镜像。save/load命令示例:docker save -o nginx.tar nginx:latest,export/import示例:docker export -o container.tar abc123 && docker

weixin_39291964的博客 875

Python——format()方法_字符串输出

从Python2.6开始,就增加了一种格式化字符串的str.format()方法,这种方法方便了用户对字符串进行格式化处理。 1.模板字符串与format()方法中参数的对应关系 str.format()方法中的 str 被称为模板字符串,其中包括多个由“{}”表示的占位符,这些占位符接收 format()方法中的参数。 str 模板字符串与format()方法中的参数的对应关系有以下3种情况 位置参数匹配 在模板字符串中,如果占位符{}为空(没有表示顺序的序号),将会按照参数出现的先后次序进行匹配。如果

XQC_KKK的博客 1233

手把手教你学Simulink——基于Simulink的多轮PMSM同步驱动交叉耦合控制

摘要:本文针对多轮PMSM同步驱动系统的负载不均、参数差异等问题,提出基于Simulink的交叉耦合控制解决方案。通过实时补偿轮间同步误差,实现同步误差<1%、转矩脉动<5%的性能提升。文章详细介绍了系统架构、核心算法(包括PMSM数学模型和偏差耦合控制算法)、Simulink建模步骤及参数设置,并通过仿真验证了稳态和动态性能。同时提供了工程调试建议和完整代码实现,为多轮驱动系统开发提供实用参考。该方案计算量小,可移植性强,适用于电动汽车、AGV等应用场景。

MHD0815的博客 140

Python中字符串的格式化—format()方法

Python字符串类型的格式化 关于字符串的格式化,Python支持类似于C语言的printf()函数的格式化方法,也支持format()方法的格式化方法,因为Python更接近自然语言的复杂数据类型,无法全部通过类C的格式化方法,所以学Python着重使用format()方法进行字符串的格式化。 一、format()函数的基本使用 1、 print("{}{}".format(a,b),这里{}成为槽,要把后边format里的内容对应放在里边,假如a,b = 1,2 ,输出的结果为12; *2、*如果{}

Lanyan9的博客 2万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

format格式化字符串

1、语法结构字符串类型格式化采用format()方法,基本使用语法结构是: <模板字符串>.format(<逗号分隔的参数>)调用format()方法后会返回一个新的字符串,参数从索引0 开始。"{}:计算机{}的CPU 占用率为{}%。".format("2016-12-31","PYTHON",10) #'2016-12-31:计算机PYTHON的CPU 占用率...

weixin_30907523的博客 285

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JavaScript 字符串拼接的解决方案 模板字符串 String实例的format()方法 自定义字符串格式化format规则

文章目录场景Demo代码分析自定义字符串方法 场景 拼接多个变量,不想用字符串拼接符+,也不想用console.log(...args)依次打印多个参数。 那么有两种解决方法: ES6新特性中的模板字符串 String实例的format()方法。 Demo 模板字符串 var name = "张三"; var age = "22"; var result = `${name} 今年 ${age} 岁了`; console.log(result); 张三 今年 22 岁了 模板字符串用反引号包围,其

wuyujin1997的博客 3016

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

《Modern Python Cookbook》(Python经典实例)笔记1.4 浮点数、小数、分数

货币值计算 计算货币值时,应当使用decimal模块,如果使用float会出现舍入和截断问题。 decimal.quantize()函数的使用。 decimal模块提供各种舍入规则。 分数计算 分数计算使用fractions模块。 分母是2的幂时,分数得到的浮点值很精确,不是2的幂时会产生浮点近似值。

mighty13的专栏 2万+

《Modern Python Cookbook》(Python经典实例)笔记1.2 命名

类一般用大驼峰命名法CapitalizedCamelCase,即每个单词的首字母大写 其他对象用蛇底命名法snake_case 文件名应当遵循Python命名法,要不然影响作为模块或包使用 链式命名法:x=y=1

mighty13的专栏 2万+

《Modern Python Cookbook》(Python经典实例)笔记1.3大整数和小整数

Python3中有大整数和小整数之分。区分的标准在于是否大于sys.maxsize。小整数一般是4字节或8字节表示,差异在于Cython的编译器,32位小整数一般用32位表示,64位用64位二进制表示。网上很多教程里说整数只能小于sys.maxsize不太准确。因为的确可以使用一些超大的整数,比如2**10000,这个数有多大呢。 用len(str(2**10000))算了下,总共3011位数字。

mighty13的专栏 2万+

《Modern Python Cookbook》(Python经典实例)笔记1.5 真除法和向下截断除法(floor除法)

对于除法我们一般有三种期待结果: 商和余数 真值,浮点值 准确的分数 商和余数计算 用floor除法运算,即向下截断的除法运算和模运算。真值计算 用真除法,即我们一般意义上的除法,得到浮点值结果有理分数计算 可以使用fractions模块

mighty13的专栏 2万+

《Modern Python Cookbook》(Python经典实例)笔记 1.13 使用元组

Python基本数据类型中,元组应该是最容易被忽视的。 创建元组 创建元组,步骤如下。 (1) 把数据用()括起来。 (2) 用,把元素隔开。 对于单例元组(只有一个元素的元组),是不能省的 (1,) ()并不是必须的,某些情况下可以省略。 In [1]: 1, Out[1]: (1,) 字符串是字符的序列,而元组是元素的序列,而且元组是多种对象的序列。因为字符串和元组都是序列,所以它们有一些共同的特性,如索引、切片等等。 元组最有特色的操作应该是元组解包和元组封包了! ...

mighty13的专栏 1万+

Modern Python Cookbook》(Python经典实例)笔记 2.3 编写长行代码

Python一行代码的长度一般限制为不超过80个字符,因为这种做法符合众所周知的平面设计原则:短代码可读性强。关于每行的长度众说纷纭,但65个字符通常被认为是最理想的。 语法规则清楚地表明,语句必须在单个逻辑(logical)行上完成。 术语“逻辑行”提示了应该如何解决长语句问题。Python区分逻辑行和物理行,我们可以利用这些语法规则分解长语句。逻辑行包含一个完整的语句,它可以通过行连接(line joining)技术跨越多个物理行。Python语言参考手册称这种技术为显式行连接(explicit lin

mighty13的专栏 1万+

《Modern Python Cookbook》(Python经典实例)笔记1.9 通过字符列表创建复杂的字符串

案例说明: title = “Recipe 5: Rewriting an Immutable String” 要求对title进行以下操作: 移除:之前的子字符串; 将标点符号和空格替换为_,将所有字符转换为小写。 思路: 将字符串转换为列表,根据:的索引,利用切片删除:前的列表元素 逐元素将字符转换为小写 替换:后的子字符串中的空格和标点符号 要点: 本案例用到了string模块。string模块有两个重要的常量。 string.whitespace列出了所有常用的空白字符,包括空格和制表符。

mighty13的专栏 1万+

《Modern Python Cookbook》(Python经典实例)笔记1.7 使用正则表达式解析字符串

Python内置了正则表达式模块re。 分解复杂字符串最简单的方法是将字符串归纳为模式(pattern),然后编写描述该模式的正则表达式。 案例: 假设我们想分离某个食谱网站中的文本。每行内容如下所示: ingredient = "Kumquat: 2 cups" 操作步骤如下: (1)分析文本,概括模式,文本可以分为如下3个部分 (ingredient words): (amount digits) (unit words) (2)导入re模块 (3)把模式改写为正则表达式 (4)编..

mighty13的专栏 1万+

《Modern Python Cookbook》(Python经典实例)笔记 1.11 编码字符串——创建ASCII和UTF-8字节

Unicode字符通常被编码为字节序列。这些字符中既有很多标准编码,也有很多非标准编码。 Python通常使用操作系统的默认编码处理文件和互联网通信,每个操作系统的处理细节各不相同。 使用PYTHONIOENCODING环境变量进行通用设置。在Python之外设置这个变量可以保证在操作系统范围内使用特定的编码。 Linux操作系统环境变量的设置命令如下:export PYTHONIOENCODING=UTF-8 Windows操作系统环境变量的设置方法:我的电脑\计算机 →高级系统配置 → 环境变量→高级

mighty13的专栏 1万+

《Modern Python Cookbook》(Python经典实例)笔记 1.10 使用键盘上没有的Unicode字符

案例背景: Python默认支持Unicode。可用的独立Unicode字符有几百万个,这些字符中绝大多数我们使用键盘无法直接输入。 很多计算机中的字体可能在设计时就没有考虑提供这些字符,特别是Windows计算机中的字体可能无法显示这些Unicode字符。Linux和Mac OS X几乎没有关于Unicode字符的问题。 在本案例中,我们将讨论如何表示这些特别的Unicode字符。 原理: Python使用转义序列(escape sequence)扩展普通字符。通过转义序列我们可以输入海量的 Unicod

mighty13的专栏 1万+
上一篇: 《Modern Python Cookbook》(Python经典实例)笔记1.7 使用正则表达式解析字符串
下一篇: 京东图书详情页定价获取
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值