鱼C论坛

 找回密码
 立即注册
查看: 2959|回复: 9

[已解决]求助格式化函数问题

[复制链接]
发表于 2019-1-13 19:20:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


Hi  大家好~

在这里我有两个问题想问的:

1、格式化操作符的辅助指令中:m.n 如何使用?

2、format 和 %格式化操作符  的区别。

3、{1:.2f}此处中   “  :”  冒号是指格式化符号的开始 , 也就是什么意思呢?



万分感谢大家的留言!!
最佳答案
2019-1-14 21:58:54
pythongirl 发表于 2019-1-14 21:40
所以是说,最后是以N来确定,长度的?


小姑娘,你的理解能力真的有待提高啊。刚刚回复你的时候,我就担心你会问出这个问题所以我把两种情况都说了一下。但是你还是问了这个问题。。。
当m不足以显示n位小数的时候,m无效,但是此时总长度也不是n,是n+前面的位数(整数部分、符号部分(负号)、小数点)。
当m足以显示n为小数的时候,m才有效,此时总长度是m,数据长度不足时,用空格补齐。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-13 19:30:44 | 显示全部楼层
参考以下

https://www.cnblogs.com/chunlaipiupiupiu/p/7978669.html
https://www.cnblogs.com/fat39/p/7159881.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-13 23:38:29 | 显示全部楼层
先说第一个问题,格式化中的m.n,m是输出的总宽度(负号、小数点各算一位),n是小数的位数,没有其他格式限制的情况下,不足位数由空格在左侧填充,若总位宽不足以显示n位小数的时候,显示n位小数优先,因此很多时候是不写m的。
无标题.jpg
第二个问题,这两种方法的区别,%格式化操作符是一种普通的格式化方法。大部分的时候就够用了,format是一种更加高级一些的格式化方法,功能要比%格式操作符更强大一些,例如format右面的参数列表可以像函数参数那样用关键字自我调整顺序,而%操作符不可以,format可以格式化输出二进制,而%格式化操作符无法完成,等等。
第三个问题,{1:.2f}中的1是参数标签,:后面才是将对应的参数格式化,所以说:是格式化符号的开始,就像循环体、判断体、函数等的好好一样是模块的开始。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-14 20:42:27 | 显示全部楼层
sunrise085 发表于 2019-1-13 23:38
先说第一个问题,格式化中的m.n,m是输出的总宽度(负号、小数点各算一位),n是小数的位数,没有其他格式 ...

您好,其实我不太懂你的这句话:“若总位宽不足以显示n位小数的时候,显示n位小数优先,因此很多时候是不写m的。”
请看例子:
>>> a=3.141592688888
>>> '{0:10.9f}'.format(a)
'3.141592689'
>>> '{0:10.12f}'.format(a)
'3.141592688888'


写完公式后,不懂你刚刚说的那就那句话。可以再详细解答吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 21:01:04 | 显示全部楼层
pythongirl 发表于 2019-1-14 20:42
您好,其实我不太懂你的这句话:“若总位宽不足以显示n位小数的时候,显示n位小数优先,因此很多时候是不 ...

你可以结合我给出的那个截图和你的这个运行结果,看一下。当总长度m不足以显示n为小数的时候,是会显示出n为小数的,此时m是无效的。例如你的这个'{0:10.12f}'.format(a),m是10,n是12,实际输出是12位小数,总长度并不是10位,而是14位。若显示n位小数,总长度不足m位的时候,在左侧以空格补齐,例如我的那个例子中的'{0:8.2f}'.format(a),输出结果在2.02前用4个空格空格补够了八位。因此在不要求对齐的时候一般是不写m的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-14 21:40:49 | 显示全部楼层
sunrise085 发表于 2019-1-14 21:01
你可以结合我给出的那个截图和你的这个运行结果,看一下。当总长度m不足以显示n为小数的时候,是会显示出 ...

所以是说,最后是以N来确定,长度的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 21:58:54 | 显示全部楼层    本楼为最佳答案   
pythongirl 发表于 2019-1-14 21:40
所以是说,最后是以N来确定,长度的?


小姑娘,你的理解能力真的有待提高啊。刚刚回复你的时候,我就担心你会问出这个问题所以我把两种情况都说了一下。但是你还是问了这个问题。。。
当m不足以显示n位小数的时候,m无效,但是此时总长度也不是n,是n+前面的位数(整数部分、符号部分(负号)、小数点)。
当m足以显示n为小数的时候,m才有效,此时总长度是m,数据长度不足时,用空格补齐。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
pythongirl + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-14 22:58:55 | 显示全部楼层
sunrise085 发表于 2019-1-14 21:58
小姑娘,你的理解能力真的有待提高啊。刚刚回复你的时候,我就担心你会问出这个问题所以我把两种情况都 ...

好的好的~ 明白了·~ 感谢~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-14 23:00:07 | 显示全部楼层
sunrise085 发表于 2019-1-14 21:58
小姑娘,你的理解能力真的有待提高啊。刚刚回复你的时候,我就担心你会问出这个问题所以我把两种情况都 ...

其实我还有一个问题   那么如果用%格式化操作符,里面也有{1:.2f}这样子的写法,那这里   ".2"前面需要加上长度吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 09:07:30 | 显示全部楼层
pythongirl 发表于 2019-1-14 23:00
其实我还有一个问题   那么如果用%格式化操作符,里面也有{1:.2f}这样子的写法,那这里   ".2"前面需要加 ...

学习编程最重要的是什么?最重要的当然是多写代码多尝试啦~~

你的这个问题我就不回答你了~~自己试一下不就知道了么~~~

一味地问别人,即使回答你了,过几天你也就忘了,自己动动手记忆更加深刻。

你还可以对比分析一下format和%的区别。

加油喔~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 10:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表