Python中字符串格式化三种方法
bigegpt 2024-11-23 11:30 4 浏览
在嵌入式编程过程中,我们可以使用Python辅助我们编程,特别是验证一些算法上特别好使。所以Python中的基本知识需要了解一些,剩下的就可以交给百度,Ctrl+C,Ctrl+V,不然网上复制代码都复制不明白。
接下来,我们一块学习下Python字符串格式化的三种方式。
第一种:%s
% 运算符(求余符)也可用于字符串格式化。给定 'string' % values,则 string 中的 % 实例会以零个或多个 values 元素替换。如果是多个值,请用()括起来。
print('%s,%s %s' % ("Hi,", "Hello", "World"))
Terminal:
Hi,,Hello World
第二种:format
字符串格式化的第二种方法,字符串format()方法。格式:str.format(). 这里写个示例,字符串格式化可以使用索引也可以使用关键字的形式。
print("{1}, {0} {world}".format("Hello","hi", world="World"))
Terminal:
hi, Hello World
第三种:f-字符串
格式化字符串字面值(简称为 f-字符串)在字符串前加前缀 f 或 F,通过 {expression} 表达式,把 Python 表达式的值添加到字符串内。
下面看一个简单的例子:
import math
print(f"圆周率近似值为: {math.pi:.8f}")
Terminal:
圆周率近似值为: 3.14159265
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
点击这里找小助理0元领取:加微信领取资料
标准格式说明符 的一般形式如下:
[[fill]align][sign][#][0][width][grouping_option]>> [.precision][type]
属性 | 选项 |
fill | any character |
align | "<" ">" "=" "^" |
sign | "+" "-" " " |
width | digit+ |
grouping_option | "_" "," |
precision | digit+ |
type | "b" "c" "d" "e" "E" "f" "F" "g" "G" "n" "o" "s" "x" "X" "%" |
fill-填充
如果指定了一个有效的 align 值,则可以在该值前面加一个 fill 字符,它可以为任意字符,如果省略则默认为空格符。
align-对齐方式
选项 | 含义 |
< | 强制字段在可用空间内左对齐(这是大多数对象的默认值) |
> | 强制字段在可用空间内右对齐(这是数字的默认值) |
= | 强制在符号(如果有)之后数码之前放置填充。这被用于以 '+000000120' 形式打印字段。这个对齐选项仅对数字类型有效。这是当 '0' 紧接在字段宽度之前时的默认选项 |
^ | 强制字段在可用空间内居中 |
需要注意的是,只有定义了最小字段宽度,对齐选项才有意义,如下示例:
import math
print(f"圆周率近似值为: {math.pi:*^.8f}")
print(f"圆周率近似值为: {math.pi:*^30.8f}")
Terminal:
圆周率近似值为: 3.14159265
圆周率近似值为: **********3.14159265**********
*是填充字符,^表示居中对齐,30指的是最小字段宽度,.8f是让小数点后保留8位有效数字:
sign-符号
选项 | 含义 |
+ | 表示标志应该用于正数和负数。 |
- | 表示标志应仅用于负数(这是默认行为)。 |
space | 表示应在正数上使用前导空格,在负数上使用减号 |
看下面的示例:
print(f"{3.14:+},{-3.14:+},{3.14:-},{-3.14:-},{3.14: },{-3.14: }")
Terminal:
+3.14,-3.14,3.14,-3.14, 3.14,-3.14
'#'
'#' 选项可让“替代形式”被用于执行转换。替代形式会针对不同的类型分别定义。此选项仅适用于整数、浮点数和复数类型。对于整数类型,当使用二进制、八进制或十六进制输出时,此选项会为输出值分别添加相应的 '0b', '0o', '0x' 或 '0X' 前缀。
下面例子是将整数12分别以二进制、八进制、十进制以及十六进制输出。
print(f"{12:#b}, {12:#o}, {12:#d}, {12:#x}")
Terminal:
0b1100, 0o14, 12, 0xc
0
如果指定了显示宽度,则剩余部分的长度用0填充。
print(f"{123456789:030}")
Terminal:
000000000000000000000123456789
grouping_option
对浮点表示类型和整数表示类型,使用 ,或者_作为千位分隔符。
print(f"{123456789:,}, {123456789:_}")
Terminal:
123,456,789, 123_456_789
width
width 是一个定义最小总字段宽度的十进制整数,包括任何前缀、分隔符和其他格式化字符。如果未指定,则字段宽度将由内容确定。在说对齐方式的时候有过例子。
precision
precision 是一个十进制整数,它表示对于以表示类型 'f' 和 'F' 格式化的数值应当在小数点后显示多少个数位, 对于字符串表示类型,该字段表示最大的字段大小。在说对齐方式属性的时候也有例子。
type
就是常规的一些数据类型,二进制、十进制以及浮点型数据类型等...
其它
官方还推荐使用f{}格式字符串。
原文链接:https://mp.weixin.qq.com/s/yqzq5vSnuh3erKDXf-GSQw
转载自:嵌入式微处理器
原文链接:Python中字符串格式化三种方法
本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
- 上一篇:Python中字符串编码的转换
- 下一篇:一学就废|Python基础碎片,字符串编码
相关推荐
- 悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)
-
新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...
- 高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源
-
凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...
- 微服务架构实战:商家管理后台与sso设计,SSO客户端设计
-
SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...
- 还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑
-
在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...
- Seata源码—6.Seata AT模式的数据源代理二
-
大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...
- 30分钟了解K8S(30分钟了解微积分)
-
微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...
- SpringBoot条件化配置(@Conditional)全面解析与实战指南
-
一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...
- 一招解决所有依赖冲突(克服依赖)
-
背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...
- 你读过Mybatis的源码?说说它用到了几种设计模式
-
学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...
- golang对接阿里云私有Bucket上传图片、授权访问图片
-
1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...
- spring中的资源的加载(spring加载原理)
-
最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...
- Android资源使用(android资源文件)
-
Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...
- 如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)
-
深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...
- @Autowired与@Resource原理知识点详解
-
springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...
- java的redis连接工具篇(java redis client)
-
在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)