详解Python中的字符串格式化

目录

什么是字符串格式化,为什么需要这样做?

我们有时候刷抖音/B站看到封面很好看,但是进入直播发现,不过如此!
想必主播通过某种方式把输出转换为读者想看的内容。

是不是大概懂了什么是格式化和格式化的必要性了!

仅仅类比,我们程序的格式化,并没有那么过份!1输出还是1,只是人类更好读懂了。

而不像网络主播那样稍微格式化(工程挺大)从1变成了0。

毕竟程序不能欺骗开发者。

必要性:输出为更好的格式化,方便开发者和用户读懂输出。

程序中都有哪些格式化?

网上说有三种,四种,未来还可能会增加其他库。

学委开发过多种语言,大概总结如下两个大类:

  • 字符串占位符替换
  • 字符串关键字替换

下面看看代码

占位符格式化

第一种%占位符格式化

python中我们最常见的是\’%‘ 这类占位符号

str = \"hello\"
\"this is a string: %s\" % str 
\"this is a string: %s, %s\" % (str, str) 

上面我们观察一下,可以发现输出中‘%s\’被替换为了\’hello\’;

另一个是多个‘%s\’的替换是用一个元组,按照对应下标来替换。

格式化基本上都可以使用\’%s\’来完成。

好,懂了这个,我们继续看看下面的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format.py
# @Project : hello
import sys
first = \"持续学习\"
second = \"持续开发\"
slogan = first + second
print(slogan)
banner = \"*\" * 16
print(banner)
slice = slogan[2:4]
print(slice)
print(\"\"\"\"学习\" in slogan : %s\"\"\" % (\"学习\" in slogan))
print(\"\"\"\"不学习\" not in slogan : %s\"\"\" % (\"不学习\" not in slogan))
print(r\"\"\"打印\\n换行被当做普通字符输出了!\"\"\")
# 以上我们都可以看到%,很多次代码都有说到这个,但是并没有过多解释
print(\"%s\" % slogan)  # 最常用了%s 格式化字符串
# print(\"%c\"%\'ccc\')#TypeError: %c requires int or char
print(\"%c\" % \'c\')  # %c 通常用来强制检测待输出的字符串必须长度为1
print(\"%c\" % \'雷\')  # %c 通常用来强制检测待输出的字符串必须长度为1
number = 102.40101
print(\"%%i 符号整数 %i\" % number)
print(\"%%i 符号整数:%i\" % -number)
print(\"%%d 符号整数 %d\" % number)
print(\"%%d 符号整数 %d\" % -number)
print(\"%%u 无符号整数:%u\" % number)
print(\"%%u 无符号整数:%u\" % -number)
#print(\"八进制 %o\" % number)
print(\"%%o 八进制 %o\" % 102)
print(\"%%x16进制 %x\" % 102)
#print(\"16进制 %X\" % 102)
print(\"%%e 自然常数 e进制: %e\" % number)
#print(\"%E\" % number)
print(\"%%f 浮点数 %f\" % number)
print(\"%%g 灵活的有效显示:%g\" % number) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
#print(\"%G\" % number)
print(\"%%g 灵活的有效显示:%g\" % (number*10001)) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
#下面两种写法需要注意执行顺序
#print(\"%g\" % number*10001) #注意这种写法
#print(\"%g\" % number**10) #注意这种写法

读者可以直接复制运行代码,学委补充了运行效果图:

详解Python中的字符串格式化

这里比较特殊的是‘%u\’无符号整型的展示,正负数并无区别。

那是肯定的,无符号整型跟有符号整型是表示数的两种手段。
但是无符号的比有符号多了一个位来放数字,所以范围更大。

上面这段题外话,小白稍微看看或者跳过。我们继续看看其他格式化方式。

第二种占位符格式化

跟上面稍微区别就是我们会看到一下明显的下标。

{0}, {1}, … {n}

想要留几个替换位,就放几个{}括起来,但要求必须给到n个参数,更多信息参考https://docs.python.org/3/library/string.html

这个非常简单直接,我们看看代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format1.py
# @Project : hello
import sys
slogan = \"持续学习持续开发\"
author = \"雷学委\"
text = \"{0}, {1}\".format(slogan, author)
print(\"text= %s\" % text)

关键字格式化

非常好理解就是类似{}一对大括弧中间为待替换的内容。

这个非常简单直接,我们看看代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format2.py
# @Project : hello
import sys
slogan = \"持续学习持续开发\"
author = \"雷学委\"
text = f\"{slogan} , {author}\"
print(\"text= %s\" % text)

运行效果如下:

详解Python中的字符串格式化

从这里看,关键字格式化比较友好!

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容