python 再学习(二)关于 format 的一些操作

0.前言

   python 第一篇写的可能有点长,尽量还是不要写太长,阅读体验观感不大好,到时候自己找起来可能也不大方便,这篇主要介绍关于 format 显示的一些操作,其实应该是 c++、c 都学过的,但是好像我大一的时候没有认真学,或者我们大一学的就跟 shit 一样,一点不记得了,就记得 IDL 课上讲过,特此记录。

1.关于数字的格式化

1.1 关于常用的转换码

   关于格式化浮点数,其实主要是 3 个关键点,第一你要多少的域宽,精度要多少,转换码要什么,可以先看一张图后面再看 jupyter Lab 运行的结果。

plus:下面的两张图是我用 TikZ 画出来的矢量图,源代码的话可以看 TikZ 实例那篇 blog.

在这里插入图片描述

  1. 域宽度,就是你整个格式化要多少个方格占,即可以有空方格,当你右对齐(默认)时,显示的宽度不到域宽度时,会自动的填充前面的空。
  2. 精度,顾名思义,不过这里是小数点后面保留几位,所以要注意域宽度、精度的联合控制,不能太宽,而精度不够,也不能精度太高而域宽度不够。
  3. 转换码主要就是你要显示什么类型的有 f(float)、e(exp)、%(percent) 就是浮点型指数型还有百分号
      看一些具体的例子吧
#格式化,浮点型右对齐
print(format(51.7281,'10.2f'))
#科学记数法,右对齐
print(format(51.7281,'10.2e'))
#域宽度为9,右对齐
print(format(51.7281,'9.2f'))
#显示百分数,右对齐
print(format(52.7281,"10.2%"))
#显示百分数,左对齐
print(format(52.7281,'<10.2%'))

在这里插入图片描述
当你不设置<左对齐时,当精度不够填充域宽度的时候,会自动用空白填充前面的空,直到达到域宽度为止。

符号 意义
f 浮点型
e 科学记数法
% 百分数

在转换码那里选择相应的就 ok, 试了试好像没 double型。
其作用的方式如下图:
在这里插入图片描述
其中,. 号也算一个域宽,所以一共 10 个方格要填充,由于保留小数点后 2 位,所以显示的数字一共 10 个域宽,又由于右对齐,所以。

1.2 关于进制的格式化

   实际上关于进制和上面普通的转换码没什么区别,但是为了加以区别还是单写吧!

转换码 含义
d 十进制
x 十六进制
o 八进制
b 二进制
#打印10进制的数字,左对齐
print(format(517281,'<10d'))
#打印16进制的数字,左对齐
print(format(517281,'<10x'))
#打印8进制的数字,默认右对齐
print(format(517281,'10o'))
#打印2进制的数字,默认右对齐
print(format(517281,'20b'))

在这里插入图片描述
其实只要会上面的那一套,剩下的现查现学即可了。

2.关于字符串的格式化

   实际上,这部分也和上面也差不多,也是转换码的问题,其次是显示的是文本,即 string 吗~0~.
  这个转换码还更简单就是 s,看下面的例子:

#格式化字符串
print(format('我真的好累啊','<10s'))
#格式化字符串,右对齐默认填充
print(format('我真的好累啊','>10s'))

在这里插入图片描述
就是控制域宽,还有左对齐还是右对齐,再转换码那加入 s 即可。

3.总结

  其实格式化还是挺简单的,只要控制好域宽度精度转换码对齐方式就可以了,这篇文章应该解释的差不多了。~-~

猜你喜欢

转载自blog.csdn.net/qq_48019718/article/details/112116695