0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python字符串格式化的三种方式

汽车电子技术 来源: typedef 作者:typedef 2023-02-21 10:04 次阅读

前述

嵌入式编程过程中,我们可以使用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

标准格式说明符 的一般形式如下:

[[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{}格式字符串。

END

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3440

    浏览量

    92404
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83467
  • 嵌入式编程
    +关注

    关注

    0

    文章

    26

    浏览量

    10235
收藏 人收藏

    评论

    相关推荐

    Python字符串格式化三种方式

    在嵌入式编程过程中,我们可以使用Python辅助我们编程,特别是验证一些算法上特别好使。所以Python中的基本知识需要了解一些,剩下的就可以交给百度,Ctrl+C,Ctrl+V,不然网上复制代码都复制不明白。
    发表于 10-17 14:12 3592次阅读

    LABVIEW中的printf函数---格式化写入字符串函数

    `我们经常会遇到格式化字符串输出的问题,参见下面的程序框图。在C语言中,类似功能的函数是printf函数,该函数几乎是C语言经典课程的第一节内容,可见其用途之广泛。C语言中实现上面程序框图的功能非常
    发表于 11-15 10:46

    Labview格式化写入字符串函数

    Labview格式化写入字符串函数
    发表于 12-26 12:42

    labview获取DateTime格式时间字符串

    数据库中时间的格式为DateTime格式但labview自带的时间获取函数格式与DateTime格式不对应转换方法为使用 格式化日期/时间
    发表于 08-29 14:43

    格式化写入字符串函数 求助

    格式化写入字符串函数格式字符串:%6f\n%s\n%d\n%s这个怎么理解?
    发表于 07-13 13:23

    labview 的格式化字符串,请问选项的参数是0x%02x是什么意思?

    labview 的格式化字符串 选项的参数是0x%02x 是什么意思?
    发表于 07-09 18:58

    C语言技巧 sprintf()函数:将格式化的数据写入字符串

    [table][tr][td]头文件#include 功能用于将格式化的数据写入字符串。原型int sprintf(char *str, char * format [, argument
    发表于 04-01 11:26

    怎样将stm32格式化打印字符串的函数进行封装呢

    怎样将stm32格式化打印字符串的函数进行封装呢?
    发表于 11-26 06:38

    嵌入式C语言的字符串字符指针的相关资料分享

    格式化后的字符串拷贝到DataWriteBuffer指针中。DataWriteBuffer用了两定义方式:char
    发表于 12-15 08:05

    2.2 python字符串类型

    ")False格式化字符串格式化字符串非常重要,在后面的章节中我有非常详细的讲解,这里你简单了解即可>>> name = "王炳明">>> msg
    发表于 02-17 17:12

    2.6 python字符串格式化

    2.6 python字符串格式化格式化输出,主要有三种方式使用 % 进行
    发表于 02-21 16:28

    AVR入门:怎么样使用AVR LibC's Stdio发送格式化字符串

    AVR入门:使用AVR LibC's Stdio发送格式化字符串 (#21)
    的头像 发表于 07-09 00:02 2784次阅读
    AVR入门:怎么样使用AVR LibC's Stdio发送<b class='flag-5'>格式化</b>的<b class='flag-5'>字符串</b>?

    剖析提升字符串格式化效率的小技巧

    一、前言 在嵌入式项目开发中,字符串格式化是很常见的操作,我们一般都会使用 C 库中的 sprintf 系列函数来完成格式化。 从功能上来说,这是没有问题的,但是在一些时间关键场合,字符串
    的头像 发表于 04-30 13:43 1363次阅读
    剖析提升<b class='flag-5'>字符串</b><b class='flag-5'>格式化</b>效率的小技巧

    python字符串格式化

    python字符串格式化 格式化输出,主要有三种方式 使用 % 进行
    的头像 发表于 02-21 16:28 1365次阅读
    <b class='flag-5'>python</b><b class='flag-5'>字符串</b><b class='flag-5'>格式化</b>

    如何把数字格式化字符串

    在嵌入式项目开发中,字符串格式化是很常见的操作,我们一般都会使用 C 库中的 sprintf 系列函数来完成格式化
    的头像 发表于 08-04 10:35 1531次阅读