《Python语言程序设计》 —2.3 运算符

举报
华章计算机 发表于 2019/11/18 16:28:49 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第2章,第2.3.1节,作者是王恺 王志 李涛 朱洪文。

2.3 运算符

在计算机中,数据处理实际上就是对数据按照一定的规则进行运算。在已经掌握Python基本数据类型的基础上,我们来看一下对这些类型的数据可以做哪些运算。这里介绍数据处理中一些常用运算符的作用和使用方法。

2.3.1 占位运算符

占位运算符类似于C语言中sprintf或printf函数中使用的占位符,在字符串中可以给出一些占位符用来表示不同类型的数据,而实际的数据值在字符串之外给出。此处仅介绍3个常用占位符(如表2-2所示),更详细的占位符列表将在第6章中给出。

表2-2 常用占位符

image.png

 

下面通过具体实例介绍这3个占位符的使用方法,如代码清单2-1所示。

代码清单2-1 占位符使用示例

1    s1='%s上次数学成绩%d,本次%d,成绩提高%f' %('小明',85,90,5/85)

2    s2='%5s上次数学成绩%5d,本次%5d,成绩提高%.2f' %('小明',85,90,5/85)

3    s3='%5s上次数学成绩%05d,本次%05d,成绩提高%08.2f' %('小明',85,90,5/85)

执行完毕后,通过print函数分别输出s1、s2和s3,可得到下面的结果:

1    小明上次数学成绩85,本次90,成绩提高0.058824

2       小明上次数学成绩   85,本次   90,成绩提高0.06

3       小明上次数学成绩00085,本次00090,成绩提高00000.06

从输出结果中可以看出占位符的使用方法和使用上的差异:

在带有占位符的字符串后面写上%(…),在一对小括号中即可指定前面字符串中各占位符所对应的实际数据值,各数据值之间用逗号分开。例如,对于代码清单2-1中的3行代码,因为前面的字符串中包含4个占位符(%s、%d、%d和%f),所以在后面的%(…)中给出了用逗号分隔的4个对应的数据值。

对于占位符%s,可以写成%xs的形式(其中x是一个整数),x用于指定代入字符串所占的字符数。如果未指定x或x小于等于实际代入字符串的长度,则将字符串直接代入;否则,如果x大于实际代入字符串的长度,则会在代入字符串前面补空格,使得实际代入字符串的长度为x。例如,对于代码清单2-1中的第2行和第3行代码,通过%5s要求代入字符串占5个字符的空间,但实际代入字符串“小明”长度为2,所以会在“小明”前补3个空格。

对于占位符%d,可以写成%xd或%0xd的形式(其中x是一个整数),x用于指定代入整数的位数。如果未指定x或x小于等于实际代入整数的位数,则将整数直接代入;否则,如果x大于实际代入整数的位数,则会在代入整数前面补空格(%xd)或0(%0xd),使得实际代入整数的位数是x。例如,对于代码清单2-1中的第2行和第3行代码,通过%5d和%05d,要求代入整数是5位,但实际代入整数85和90位数都为2,所以会分别在85和90前补3个空格或0。

对于占位符%f,可以写成%x.yf或%0x.yf的形式(其中x和y都是整数),x用于指定代入浮点数的位数,y用于指定代入浮点数的小数位数。如果未指定x或x小于等于实际代入浮点数的位数,则将浮点数直接代入;否则,如果x大于实际代入浮点数的位数,则会在代入整数前面补空格(%x.yf)或0(%0x.yf),使得实际代入浮点数的位数是x。如果未指定y,则默认保留6位小数;否则,由y决定小数位数,代入浮点数实际小数位数小于y时,则在后面补0。例如,对于代码清单2-1中的第2行代码,通过%.2f指定小数位数为2,因此实际代入浮点数为0.06(保留两位小数);对于第3行代码,通过%08.2f指定代入浮点数位数为8,不足补0,小数位数为2,因此实际代入浮点数为00000.06。

提示 由于%作为占位符的前缀字符,因此对于有占位符的字符串,表示一个%时需要写成%%。例如,执行print('优秀比例为%.2f%%,良好比例为%.2f%%。

'%(5.2,20.35)),输出结果为“优秀比例为5.20%,良好比例为20.35%”。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。