详解Python中的字符串格式化
作者:雷学委 发布时间:2023-09-10 22:38:14
什么是字符串格式化,为什么需要这样做?
我们有时候刷抖音/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) #注意这种写法
读者可以直接复制运行代码,学委补充了运行效果图:
这里比较特殊的是‘%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)
运行效果如下:
从这里看,关键字格式化比较友好!
来源:https://levin.blog.csdn.net/article/details/121134009
猜你喜欢
- php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册<?ph
- 最近一直忙,我们的注册页面还是在持续优化。今天抽时间分析了下数据,依然以主注册表单为例,对表单里3个区块、9个字段做了个小小出错排行;看看哪
- 数据增强的必要性深度学习在最近十年得以风靡得益于计算机算力的提高以及数据资源获取的难度下降。一个好的深度模型往往需要大量具有label的数据
- pcntl扩展可以支持php的多线程操作(仅限linux)原本需要重新编译PHP的后面configrue提示加上--enable-pcntl
- 目录1.事件循环2.协程和异步编程2.1 基本使用2.2 await2.3 Task对象1.事件循环可以理解成为一个死循环,去检查任务列表中
- 网站设计时,有一个最常用的指导性原则:页面长度原则上不超过3屏,宽度不超过1屏。这个原则明显是从用户的体验出发,特别是宽度不超过一屏,其最基
- 本文实例为大家分享了Python实现简单猜数字游戏的具体代码,供大家参考,具体内容如下一、需求分析编写一个猜数字游戏,游戏规则:计算机给出一
- 前言都说抖音有毒,一刷就停不下来了。看来抖音这款产品紧紧抓住了人们内心深处的某些需求。当然今天不是来探讨抖音这款产品的啊。今天我们来学习如何
- 1 硬件设备TTL串口摄像头(VC0706)USB转TTL烧录器2 serial安装第一次安装的是serial的包导包的时候发现下载错了,正
- 使用thinkphp官方的WeChat包,使用不同模式可以成功,但是安全模式就是不行,现将分析解决结果做下记录。分析问题: &nb
- 在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下如何用java连接mysql数据库 以及java连接sql serv
- 再dos中无法使用pip,命令主要是没有发现这个命令。我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面。我们可以
- 不知道大家有没有见过在python数组中使用...符号,因为前段时间读别人代码的时候遇到了这个符号立刻就云里雾里,于是这里特此记录一下。先来
- 具体代码如下:Function ASTCreateFtpSite(IPAddress, RootDirectory,&n
- 本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalS
- 方法: 使用urlencode函数urllib.request.urlopen()import urllib.requestimport u
- 本文实例讲述了python分析网页上所有超链接的方法。分享给大家供大家参考。具体实现方法如下:import urllib, htmllib,
- 需求说明:通过在界面上输入春联的上、下批和横批汉字从而生成春联图像,最后将春联图片保存。有实际需要的还可以将春联打印。实现过程:实现思路是先
- 我想把存在数据库里的每天24小时来访者数另放到一个Excel文件中去,可以吗?可以,其实就是将数据库里面的内容生成一个Excel文件:toe
- 不知道大家有没发现DWMX中有一个和FW差不多的制作弹出菜单功能?这个功能允许用文字和图片做为主菜单,如果用文字的话要先做虚拟链接。下面简单