001 % 运算符

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精准度参数前必须有点.

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参数

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

【终端输出】

        0.77, 8 , 'Mike'中数据类型为字符串的是Mike0.77, 8 , '99'中数据类型为整数的是80.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)s0.77, 8 , '99'中数据类型为整数的是%(答案2)d0.77, 8 , '99'中数据类型为浮点数的是%(答案3).2f'''% {'答案1':'Mike','答案2':8,'答案3':0.77}
print(math)

【终端输出】

        0.77, 8 , 'Mike'中数据类型为字符串的是Mike0.77, 8 , '99'中数据类型为整数的是80.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 )

001 Python 字符串格式化 % 运算符相关推荐

  1. python 字符串格式化是打印不同类型更简单一些

    Python 支持格式化字符串的输出 与 C 中 sprintf 函数一样的语法 下面写3中不同类型的数据合在一起打印 name = "张三丰" height = 1.88 wei ...

  2. python 字符串格式化%s_Python字符串格式化%s%d%f详解

    关于讨论输出格式化的问题,小编不是一时兴起,之前学习python的时候就经常遇到输出时"%d",一直没有仔细学习,今天又看到了,下面分享一个简单实例,python输出99乘法表: ...

  3. python的格式化输出学号_安利三个关于Python字符串格式化进阶知识

    点击蓝色"Python空间"关注我丫 加个"星标",每天一起快乐的学习 今 日 鸡 汤 名花倾国两相欢,常得君王带笑看. /前言/ 关于Python字符串格式化 ...

  4. python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解

    一文秒懂!Python字符串格式化之format方法详解 一文秒懂!Python字符串格式化之format方法详解 format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符 ...

  5. 【知识碎片】python 字符串格式化输出:%d,%s,%f

    在进行爬虫项目练习是会遇到语句中有%d,%s,%f的情况,这就是python字符串格式化输出.基本用法是将一个"值"插入到有字符串格式符%d,%s,%f的字符串中. 比如下面代码: ...

  6. python字符串格式化详解_Python字符串格式化%s%d%f详解

    Python字符串格式化%s%d%f详解 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python字符串格式化%s%d%f详解.txt ] (友情提示:右键点上 ...

  7. Python字符串格式化,%和format函数

    Python字符串格式化 格式化的操作有两种 一.使用%,常用的格式化 格式 描述 %s 字符串 %d 有符号整数(十进制) %f 浮点数 %O 转换为带符号的八进制形式的整数 %X 转换为带符号的十 ...

  8. Python字符串格式化%s输出

    Python 支持格式化字符串的输出 . 尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中. 在 Python 中,字符串格式化使用与 C 中 s ...

  9. python字符串格式化深入详解(四种方法)

    前言:本文详细整理了python字符串格式化的几种方式. 一.使用 % 符号来进行格式化 格式符为真实值预留位置,并控制显示的格式.格式符可以包含有一个类型码,用以控制显示的类型,如下: %s    ...

最新文章

  1. 深入理解PHP原理之Opcodes
  2. JavaScript对象模型-执行模型
  3. 从0开始的微服务架构:(一)重识微服务架构
  4. 记一次使用快速幂与Miller-Rabin的大素数生成算法
  5. 一图看懂windows11新功能
  6. STM32开发 -- DMA详解
  7. 线性插值算法实现图像_C程序实现插值搜索算法
  8. 今儿新学会一个写日志技能:双缓冲机制
  9. python基础编程练习题_Python随笔18:Python基础编程练习题1~2
  10. Intel® Math Kernel Library (Intel® MKL)
  11. 基数树(radix tree)
  12. <C++>文件操作基础详解,快来写出你的第一个文件吧
  13. wannier插值能带拟合5
  14. Maven导入jar包失败问题,lastUpdated问题解决
  15. 职场,社恐的终极噩梦
  16. java-php-net-python-校园OTO超市系统ssm-视频计算机毕业设计程序
  17. python3+scrapy+selenium爬取英雄联盟英雄资料
  18. 深度学习,NLP和表征(译:小巫)
  19. 国际长相思庆典在新西兰马尔堡举办
  20. Iocomp 5.12 SP6 ActiveX Crack

热门文章

  1. 突变点检测:带突变的趋势描述测试过程
  2. catti 三笔 计算机专业,工科过CATTI三笔,学习计划真系统!
  3. mysql数据库插入数据为空_插入数据成功,但是数据库中显示为空(菜鸟提问)...
  4. Maven创建第一个java项目(官方教程)
  5. Subresource Integrity 介绍--SRI (Subresource Integrity) 的检查
  6. 机械中计算机的应用研究,机械设计制造自动化中计算机技术的应用
  7. RPG游戏经典的系统架构
  8. vue和socket.io开发简单web聊天室
  9. [RoCE]RDMA over Converged Ethernet模式以及配置
  10. 【xdoj难题集】1202 The Offer - Lunatic(附优化版)