字符串格式化:% 运算符

2023-11-04

1.课题导入

【任务】用字符串拼接法原样输出:圆周率是3.1415926

# 声明变量pi 用于存储圆周率
pi = 3.1415926

# type函数查看变量pi 的数据类型
print(type(pi))

# 用字符串拼接的方法输出
# str函数将浮点数类型转换成字符串类型用于拼接
print('圆周率是'+str(pi))  

【终端输出】

<class 'float'>
圆周率是3.1415926

字符串和整数、浮点数类型不能拼接。

因此只有用str( )将浮点数pi转换成字符串才能拼接。

用str( )函数转换数据类型比较麻烦,转换前还要先判断要转换对象的数据类型,且仅能实现转换的功能。

Python中还提供了其他较为方便的字符串格式化方法,我们来一一学习。

2.知识回顾

【二进制】用0和1来表示的数,进位规则是“逢2进1”。
【八进制】用0~7来表示的数,进位规则是“逢8进1”。
【十进制】用0~9来表示的数,进位规则是“逢9进1”。

【十六进制】用0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15。

3.语法知识

【语法】’% (参数)’ % (对象)

第一个%是占位符,必须在字符串内。

第二%是格式化关键字。

参数共有5个:4个可选参数,1个必选参数。

%[name][flags][width].[precision]typecode

参数1:name,可选参数,通常为字典的键。
参数2:flags,可选参数,对齐方式。
参数3:width,可选参数,占位的宽度。
参数4:.precision,可选参数,浮点数或字符串的精度。
参数5:typecode,必选参数,类型码。

【温馨提示】

.precision精准度参数前必须有点.。

图片1

4.参数介绍

1. 必选参数:typecode

typecode:类型码。

typecode = s/d/f

typecode是必选参数,不能省略。

【作用】控制显示的类型。

%s:显示字符串类型。

%d:显示整数类型。

%f:显示浮点数类型。

显示就是看上去是什么类型,实际已经格式化。

图片

%s
将整数格式化为字符串。

将浮点数格式化为字符串。

作用相当于str( )。

pi = 3.1415926  
print('圆周率是 %s' % pi )  

【终端输出】

圆周率是 3.1415926

pi变量的数据类型是浮点数。

原本不能和字符串’圆周率是’进行拼接。

但通过%s直接将pi格式化后就能和字符串进行拼接了。

%d

将浮点数转换成十进制整数,仅保留浮点数的整数部分。
将十六进制整数转换为十进制整数。
将八进制整数转换为十进制整数。

1.浮点数转换

pi = 3.1415926
# 将浮点数用%d转换成十进制整数
print('圆周率是 %d ' % pi)  

a = 3.9415926
# 将浮点数用%d转换成十进制整数
print('圆周率是 %d ' % pi) 

【终端输出】

圆周率是 3 
圆周率是 3

上述两个变量的值是不一样的,一个是3.1…另一个是3.9…

【%d浮点数】只保留整数部分:3.1415926 %d 输出的结果为3。

【%d浮点数】没有四舍五入功能。

3.14四舍五入等于3。

3.94四舍五入等于4。

【%d浮点数】没有四舍五入功能,不管小数点后是多少,都只保留整数,因此输出结果都为3。

2.十六进制数转换

pi = 0x15   
# 将十六进制数15转换用%d转换成十进制数
print('圆周率是%d' % pi )  

【终端输出】

圆周率是21

0x表示十六进制数,后面跟具体的数值。

3.八进制数转换

pi = 0o17
# 将八进制数0o17转换用%d转换成十进制数
print('圆周率是%d' % pi)  

【终端输出】

圆周率是15

0o表示八进制数,后面跟具体的数值。

%f

将整数转换成浮点数,默认保留小数点后6位。
将浮点数转换浮点数,默认保留小数点后6位。

1.整数转换

pi = 3

# 将整数转换成浮点数,默认保留小数点后6位
print('圆周率是%f' % pi)  
【终端输出】

圆周率是3.000000
输出结果多了小数点后6位。

2.浮点数转换
pi1 = 3.1415926

# 将浮点数转换浮点数,默认保留小数点后6位
print('圆周率是%f' % pi1 )  

pi2 = 3.14

# 将浮点数转换浮点数,默认保留小数点后6位
print('圆周率是%f' % pi2 )  

【终端输出】

圆周率是3.141593
圆周率是3.140000

不管pi 原本有多少位小数点,转换后小数点后都有6位。

原本的小数点位数大于6则四舍五入,取6位。

原本的小数点位数小于6则保留原有的位数,后面不够的位数用0补齐。

【温馨提示】 %f有四舍五入。

2. 可选参数:name参数图片3

math ='''
        0.77, 8 , 'Mike'中数据类型为字符串的是%(答案1)s
        0.77, 8 , 'Mike'中数据类型为整数的是%(答案2)d
        0.77, 8 , 'Mike'中数据类型为浮点数的是%(答案3)f
      '''% {'答案1':'Mike','答案2':8,'答案3':0.77}   
print(math)      

【终端输出】

0.77, 8 , 'Mike’中数据类型为字符串的是Mike
0.77, 8 , '99’中数据类型为整数的是8
0.77, 8 , '99’中数据类型为浮点数的是0.770000

观察第三行输出的是0.770000,%f格式化后并不是我们要的答案,我们可以利用后面的参数来进行优化。

(答案1)(答案2)(答案3)就是name 参数。

name 是可选参数,通常用在比较复杂的字典格式化中。

采用name这种格式化,可以灵活、方便的进行一些自动化工作。

如自动出题、批量处理或验证数据。

上述代码就是自动出题系统中出题带答案的示例。

3. 可选参数.precision参数

.precison是可选参数。

对象是字符串,则截取字符串的位数。

对象是浮点数,则设置浮点数的精度,即保留的小数点位数。

1.设置浮点数的精度

pi = 3.1415926

# 通过设置.precision参数来控制浮点数的精度
print('圆周率是% .1f' % pi ) # 保留1位小数点
print('圆周率是% .2f' % pi ) # 保留2位小数点 
print('圆周率是% .3f' % pi ) # 保留3位小数点 
print('圆周率是% .4f' % pi ) # 保留4位小数点 
print('圆周率是% .5f' % pi ) # 保留5位小数点  

【终端输出】

圆周率是3.1
圆周率是3.14
圆周率是3.142
圆周率是3.1416
圆周率是3.14159
【.2f代码优化】

math ='''
        0.77, 8 , 'Mike'中数据类型为字符串的是%(答案1)s
        0.77, 8 , '99'中数据类型为整数的是%(答案2)d
        0.77, 8 , '99'中数据类型为浮点数的是%(答案3).2f
      '''% {'答案1':'Mike','答案2':8,'答案3':0.77}   
print(math)     

【终端输出】

    0.77, 8 , 'Mike'中数据类型为字符串的是Mike
    0.77, 8 , '99'中数据类型为整数的是8
    0.77, 8 , '99'中数据类型为浮点数的是0.77

通过设置.precision参数(.2)来控制浮点数的精度,就得到了我们原本需要的答案。

2.截取字符串的位数

result = '张三,恭喜你通过考试!'
print('%.2s' % result )

【终端输出】

张三

可选参数flags和width

flags[flæɡz]:标齐,标出。可选参数,设置对齐方式。
width [wɪdθ]:宽度。可选参数,设置占位的宽度。

height = 168

print('身高是%scm。' % height)     # 没有flags和width参数时,默认右对齐
print('身高是%+10scm。' % height)  # flags=+,width=10,右对齐,168左侧添加空格占位
print('身高是%-10scm。' % height)  # flags=-,width=20,左对齐,168右侧添加空格占位
print('身高是%05dcm。' % height)   # flags=0,width=6,右对齐,168右侧添加0占位,总位数为5位。

【终端输出】

身高是168cm。
身高是       168cm。
身高是168       cm。
身高是00168cm。

5.知识拓展

批量新建工作薄

# 导入库
import openpyxl

# for循环加range控制循环次数
# 达到批量新建工作薄的目的
for i in range(1,10):
    # 创建工作薄对象
    wb = openpyxl.Workbook( )
    # save保存工作薄对象
    # i 就是格式化对象
    wb.save('%d年级花名册.xlsx' % i )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串格式化:% 运算符 的相关文章

随机推荐

  • 生成ltx文件命令_系统小技巧:实用简单的PowerShell命令

    从Windows 10 1703版开始 PowerShell取代了原命令提示符的位置 成为Windows管理的必备利器 然而许多普通Windows用户不知它的用途 其实 通过在PowerShell窗口中执行简单的命令 往往可以解决一些实际问
  • 2023/9/11 qt&c++

    include
  • LeetCode646.最长数对链

    题目描述 646 最长数对链 力扣 LeetCode 这是一道典型的贪心算法题 我们先对原数对进行排序 排序规则是按照数对的右边界值的大小进行升序排列 初始化变量end为升序后第一个数对的右边界值 这个数无疑是最小的右边界 之后依次遍历整个
  • Qt程序的打包和发布(使用windeployqt)

    将编写完成的Qt程序进行打包 使得没有安装Qt环境的电脑也可以运行编写完成的应用 1 Release文件生成 在Qt Creator中 将构建方式改为Release 点击运行 或ctrl r快捷键运行 2 找到exe文件 复制到一个空目录中
  • java单元测试之Mock静态方法

    用例子说明 例如有下面静态方法 public final class AmountUtil public static String CustomFormatWith2Digits int amount return 1 单元测试代码 需要
  • 服务器端虚拟化安卓,安卓服务器端实例

    安卓服务器端实例 内容精选 换一换 本章节以Linux操作系统为例 指导您通过内网IP的方式连接GaussDB for Redis 实例 目标实例必须与弹性云服务器在同一个虚拟私有云和子网内才能访问 弹性云服务器必须处于目标实例所属安全组允
  • vscode和vs有什么区别?

    vscode是微软新推出的一款代码编辑器 内置了一些编译器 免费开源跨平台的工具 VS是微软的商业企业级开发环境IDE 在这之前 我们写代码的工具可以分为三个层次 最轻量级的叫做代码编辑器 例如notepad notepad subline
  • OD查看字符串

    在反汇编窗口中右击 出来一个菜单 我们在 查找 gt 所有参考文本字串 上左键点击 在text string窗口后 再右击这个窗口里面随便一处 选 search for text 输入要查找的内容 把Case sensitive 区分大小写
  • 【RoCE】拥塞控制机制(ECN, DC-QCN)

    1 网络拥塞问题 在网络交换机中 当入口流量大于出口流量的带宽时会发生网络拥塞 典型的例子是多个发送方同时向同一个目的地发送网络数据 交换机的缓存可以处理暂时的拥塞 但是当拥塞太久时 交换机的缓存就会过载 当交换机缓存过载时 下一个收到的新
  • mysql ipk 编译_OpenWrt的ipk包安装

    在 make menuconfig 进行裁减 OpenWrt 时 为了让系统更精小一点 我们会把部分功能以 模块 的方式编译 即不编入内核 只是在后期用户可以进行安装与卸载 包安装示例 如下关于Lua的配置项 其中 json4lua lua
  • 头文件库文件

    问题 不知道 Visual Studio 的头文件库文件如何配置 方法 C C gt 常规 gt 附加包含目录 添加头文件 链接器 gt 常规 gt 附加库目录 添加库目录 链接器 gt 输入 gt 附加依赖项 添加库文件
  • zip文件解压详解

    文章目录 1 起因 2 详解 3 实践 4 参考 1 起因 自己之前在linux系统解压zip文件 一直用 unzip zip 我们期望解压后的文件都是统一放到以 命名的文件夹下 但是自己有一次解压后发现所有的文件并没有放到上述文件夹下 而
  • 使用 @RequestMapping 注解,需要导入的包:spring-webmvc

    在Controller 层使用 RequestMapping注解 需要导入的包 spring webmvc 在类中需要添加 import org springframework web bind annotation RequestMapp
  • Pycharm激活方法使用的是(license server)Activate new license with: License server

    pycharm所有版本 http www jetbrains com pycharm download previous html 打开激活窗口 选择 Activate new license with License server 用li
  • 【JVM调优】JDK11-JVM基本参数调优以及日志打印

    Parm Xmx2g Xms1g Xss256k XX MaxDirectMemorySize 256m XX UseG1GC XX UseCompressedOops XX UseCompressedClassPointers XX Se
  • Python Interview Questions: A Review

    本文转载至 https www udemy com blog python interview questions Python is an elegant and versatile language used for a wide va
  • java获取当前时间戳的方法

    https www cnblogs com zhujiabin p 6168671 html utm source itdadao utm medium referral 获取当前时间戳 方法 一System currentTimeMill
  • Qt中的位置和尺寸

    在QT中我们常见的 点 线 尺寸 矩形 都被进行了封装 下边依次为大家介绍相关的类 目录 QPoint QLine QSize QRect QPoint QPoint是C 编程语言中Qt框架中的一个类 它表示2D坐标系中的一个点 它用于定义
  • python如何判断一个数是整数,浮点数,复数还是字符?

    遇到判断字符类型 上网搜索了一下 整理下来 1 判断字符串 python字符串常用的判断函数很多 有如下8种 1 str isalnum 所有字符都是数字或者字母 2 str isdecimal 所有字符都是十进制数字 3 str isdi
  • 字符串格式化:% 运算符

    1 课题导入 任务 用字符串拼接法原样输出 圆周率是3 1415926 声明变量pi 用于存储圆周率 pi 3 1415926 type函数查看变量pi 的数据类型 print type pi 用字符串拼接的方法输出 str函数将浮点数类型