这是一篇很小的笔记,原因是我做学习通的时候见到了这个题:

当时看了一会儿发现没有符合自己想法的答案,然后就脑袋一热选了C,结果当然是错了...

看了一眼这个format的字符串对象,发现有个 {:7.2f} 的写法。既然 {:.2f} 是保留两位小数,那么这个 7 一定是保留七位整数吧!

但是定睛一看,不对啊,这答案也没有填充满7位啊!打开搜索引擎查了一下 Python format ,找了几篇文章都没有强调这件事,看了老久发现菜鸟教程提到了个“宽度”,我心里一惊,这就是我想要的结果。

问题出现在哪里呢?

7.2f 指的其实是保留2位小数的同时保证数字宽度7。之所以说是宽度,因为整个数字 包含小数点 都被算在内。 例如:

数字 宽度
4 1
3.14 4
450 3
14.43 5

再返回去看上面那道题,其实是选B101/7保留2位小数得14.43,而这个数值的宽度只有5,所以默认在数字之前补充两个空格: 14.43。如果用Python的左填充写法更明显:

print("{:0>7.2f}".format(14.43))
# 0014.43

了解了这个之后我突然想起来,C语言里的百分号%格式化符其实也是同样有printf("%7.2f",14.43)这种写法的,7这个宽度同样是把小数点算入在内

写这篇笔记也是为了加深咱自己的印象...希望以后不要再犯这种错误( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)

Python里字符串Format时的一个易错“点”的更多相关文章

  1. Python格式化字符串--format

    format格式化字符串方法相较于老版%格式方法的优点: 1.不需要理会数据类型的问题,在%方法中'%s'只能替代字符串类型. 2.单个参数可以多次输出,参数顺序可以不相同. 3.填充方式十分灵活,对 ...

  2. 《java入门第一季》之面向对象(一个易错面试题)

    这个面试题有点难度,有一些饶.不明白可以在下面讨论.还是值得搞懂的. / * 看程序写结果: A:成员变量的问题 int x = 10; //成员变量x是基本类型 Student s = new St ...

  3. Python list遍历remove()时的一个小BUG

    有这样一个列表: s=list('abcdefg') 现在因为某种原因我们需要从s中踢出一些不需要的元素,方便起见这里直接以踢出所有元素的循环代替: for e in s: s.remove(e) 结 ...

  4. python格式化字符串format函数

    1. format可以接受无限个的参数,位置可以不按顺序: In [1]: "{} {}".format("hello","world") ...

  5. python格式化字符串format的用法

    填充与对齐 填充常跟对齐一起使用 ^.<.>分别是居中.左对齐.右对齐,后面带宽度 :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充 比如 In [15]: '{:> ...

  6. [python][oldboy]字符串 format

    #coding=utf8 def format(self, *args, **kwargs): # known special case of str.format """ ...

  7. PAT1067 试密码 (20分)——测试点4分析 一个易错点

    1067 试密码 (20分)   当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实现这个小功能. 输入格式: 输入在第一行给出一个密码( ...

  8. python list 中 remove 的骚操作/易错点

    在过去的某一天(2019.3.19),有个学弟问了一个关于python list中的一个问题: 比如我们已知一个列表 [3,4,5,6,5,4,3] 我们想删除第一个为3的元素. 我们尝试了如下几种方 ...

  9. Vuex的一个易错点

    好长时间不用Vuex,发现有些东西记模糊了. 在对Vuex进行模块化开发的时候, const store = new Vuex.Store({ modules: { a: moduleA, b: mo ...

随机推荐

  1. nginx环境下提交表单一直301

    之前网站一直正常的,现在提交表单一直301 原因: 前几天把网站http升为https协议,需要去掉连接 // 前内容 把 <form method ="post" acti ...

  2. Linux系列(25) - 常用快捷键(未更新完)

    快捷键 说明 Ctrl+L 清屏 tab tab按一次自动补全目录文件名称/tab按二次将目录下带有补全前面字段的所有文件目录展示出来,例子: cd /   tab键按两次将根目录下所有文件展示出来 ...

  3. requests接口自动化-excel参数化

    在数据量大的时候,需要使用文件参数化. excel文件是其中一种. 安装xlrd读取excel文件.(这里是在pycharm安装) 发现选择豆瓣安装失败,阿里云安装成功. 准备excel文件,放在te ...

  4. centos7.X 系统初始化>>优化

    1 修改网卡为eth0 cd /etc/sysconfig/network-scripts/ vim ifcfg-eno16777729TYPE=EthernetBOOTPROTO=staticIPA ...

  5. 神器----IntelliJ IDEA基本配置

    介绍 首先是百度百科对于 IDEA 的介绍 IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手.代码 ...

  6. Java程序的种类

    Java程序的种类 Application:Java应用程序,是可以由Java解释器直接运行的程序. Applet:即Java小应用程序,是可随网页下载到客户端由浏览器解释执行的Java程序. Ser ...

  7. 编译原理: FIRST(x) FOLLOW(x) SELECT(x)的计算

    目录 First计算 Follow计算 Select计算 已知文法G[S]: S→MH|a H→LSo|ε K→dML|ε L→eHf M→K|bLM 判断G是否是LL(1)文法. First计算 F ...

  8. Bayou复制分布式存储系统

    本文主要参考文献[1]完成. 第1章导读 Bayou是一个复制的.弱一致性的存储系统,用于移动计算环境.为了最大化可用性,Bayou为用户提供了可以任意读写访问的副本.Bayou的设计侧重于为应用程序 ...

  9. 题解 GT考试

    题目传送门 题目大意 给出\(n,m,k\),以及一个长度为\(m\)的数字串\(s_{1,2,...,m}\),求有多少个长度为\(n\)的数字串\(X\)满足\(s\)不出现在其中的个数模\(k\ ...

  10. 【数据结构与算法Python版学习笔记】引言

    学习来源 北京大学-数据结构与算法Python版 目标 了解计算机科学.程序设计和问题解决的基本概念 计算机科学是对问题本身.问题的解决.以及问题求解过程中得出的解决方案的研究.面对一 个特定问题,计 ...