文章目录

  • ♂前言√
  • ① 指定最小输出宽度
  • ② 指定对齐方式
  • ③ 指定小数精度

♂前言√

熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。

print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。

转换说明符(Conversion Specifier)只是一个占位符,它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。

【实例】输出一个整数:

    age = 8print("C语言中文网已经%d岁了!" % age)

运行结果:

C语言中文网已经8岁了!

在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个%d说明符,它最终会被后面的 age 变量的值所替代。

中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。

当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符;多个表达式必须使用小括号( )包围起来。请看下面的例子:

    name = "C语言中文网"age = 8url = "http://xxxxxx/"print("%s已经%d岁了,它的网址是%s。" % (name, age, url))

运行结果:

C语言中文网已经8岁了,它的网址是http://xxxxxx/。

总之,有几个占位符,后面就得跟着几个表达式。

① 指定最小输出宽度

当使用表1中的转换说明符时,可以使用下面的格式指定最小输出宽度(至少占用多少个字符的位置):

  • %10d 表示输出的整数宽度至少为 10;
  • %20s 表示输出的字符串宽度至少为 20。

请看下面的演示:

n = 1234567
print("n(10):%10d." % n)
print("n(5):%5d." % n)
url = "http://xxxxx/python/"
print("url(35):%35s." % url)
print("url(20):%20s." % url)

运行结果:

n(10):   1234567.
n(5):1234567.
url(35):     http://xxxxx/python/.
url(20):http://xxxxx/python/.

从运行结果可以发现,对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。

你看,这里指定的只是最小宽度,当数据的实际宽度足够时,指定的宽度就没有实际意义了。

② 指定对齐方式

默认情况下,print() 输出的数据总是右对齐的。也就是说,当数据不够宽时,数据总是靠右边输出,而在左边补充空格以达到指定的宽度。Python 允许在最小宽度之前增加一个标志来改变对齐方式,Python 支持的标志如下:

几点说明:

  • 对于整数,指定左对齐时,在右边补 0 是没有效果的,因为这样会改变整数的值。
  • 对于小数,以上三个标志可以同时存在。
  • 对于字符串,只能使用-标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。

请看下面的代码:

    n = 123456# %09d 表示最小宽度为9,左边补0print("n(09):%09d" % n)# %+9d 表示最小宽度为9,带上符号print("n(+9):%+9d" % n)f = 140.5# %-+010f 表示最小宽度为10,左对齐,带上符号print("f(-+0):%-+010f" % f)s = "Hello"# %-10s 表示最小宽度为10,左对齐print("s(-10):%-10s." % s)

运行结果:

n(09):000123456
n(+9):  +123456
f(-+0):+140.500000
s(-10):Hello     .

③ 指定小数精度

对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。

精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下:

%m.nf
%.nf

m 表示最小宽度,n 表示输出精度,.是必须存在的。

请看下面的代码:

    f = 3.141592653# 最小宽度为8,小数点后保留3位print("%8.3f" % f)# 最小宽度为8,小数点后保留3位,左边补0print("%08.3f" % f)# 最小宽度为8,小数点后保留3位,左边补0,带符号print("%+08.3f" % f)

运行结果:

   3.142
0003.142
+003.142

Python 格式化字符串(输出)相关推荐

  1. Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式

    Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式 本文参考输入输出 - Python 3.7.10 文档.首先声明咱的实验环境. ❯ python --version Pytho ...

  2. Python格式化字符串新语法:f-strings

    Python格式化字符串新语法:f-strings 原文地址: https://www.zhblog.net/go/python/advanced/python-fstrings?t=562 从Pyt ...

  3. Python格式化字符串的4种方式

    文章目录 Python格式化字符串的4种方式 一:%号 二:str.format 三:f-Strings 四:标准库模板 五:总结四种方式的应用场景 Python格式化字符串的4种方式 一:%号 %号 ...

  4. python格式化字符串的三种方法(%,format,f-string)

    DAY 7. 格式化字符串 到目前为止,我所知道的,python格式化字符串有三种方法,第一是早期就有的%,其次是2.5之后的format(),还有就是3.6添加的f字符串调试 7.1 %格式化字符串 ...

  5. 使用C++ ostringstream来格式化字符串输出

    在Linux C中,我们通常使用snprintf来格式化字符串输出,但是有一个问题,就是可能会频繁申请大的缓冲区,并且无法实现字符串的动态增加,比如你定义的字符缓存为100个字节,如果你格式化以后的内 ...

  6. python 格式化字符串长度_python-格式化字符串

    python格式化字符串有两种方式: 1.百分号形式(%):默认右对齐   "-"表示多对齐 常用的类型码: s -->字符串 d---->数字   f--->浮 ...

  7. python 格式化字符串_Python字符串三种格式化输出

    字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助. 格式化输出:内容按照一定格式要求进行输出. 1.使用占位符%输出 python2.6版本之 ...

  8. Python格式化字符串知多少

    字符串格式化相当于字符串模板.也就是说,如果一个字符串有一部分是固定的,而另一部分是动态变化的,那么就可以将固定的部分做成模板,然后那些动态变化的部分使用字符串格式化操作符(%) 替换. 如一句问候语 ...

  9. python 格式化字符串_Python格式化字符串常用操作

    前言 字符串的格式化.以及增.删.改.查.并.分,无论写什么程序都是一个非常重要的操作,熟练的使用可以让程序变得整洁,对于输出结果的格式能很好的统一性. 0 1 格式化字符串 在python的2.x版 ...

最新文章

  1. webview加载html跳转,WebView加载网页(二)
  2. OVS DPDK vhost-user详解(十二)
  3. 16.PHP_Ajax模拟服务器登录验证
  4. 还在搜百度图片?太LOW了!
  5. zookeeper清空hbase_Ambari 管理hadoop、hbase、zookeeper节点
  6. CodeDom Assistant CodeDom的强大工具, 有些BUG修正了下,发到CodePlex,大家有需要的可以看看...
  7. Ipad 日程管理APP使用心得
  8. linux下mysql数据库操作命令
  9. leetcode 1787. 使所有区间的异或结果为零
  10. docker集群运行在calico网络上
  11. 计算机一级插入页眉,2017年计算机一级WPS辅导:WPS中页眉页脚的设计技巧
  12. hive当前日期超前_微博数仓数据延时优化方案
  13. Scala的Tuple元素个数的限制问题
  14. 服务器安装谷歌浏览器
  15. 分布式系统设计权衡之CAP(一致性,可用性,分区容错性)
  16. 基于物理的渲染—更精确的微表面分布函数GGX
  17. beyond compare linux中文包,linux 下安装 Beyond Compare
  18. 关于重申快件出、入仓录单扫描、问题件处理等操作流程的通知
  19. 《光耦元器件》的特性分析
  20. 《Spring揭秘》读书笔记 2:Spring AOP

热门文章

  1. nginx的rewrite配置
  2. 使用了代理ip网速变慢,该怎么办?
  3. Camera对焦模式
  4. 银行业务笔记之贷款业务
  5. 异步组件及withRouter路由方法的使用
  6. python中括号怎么输入_python 有效的括号的实现代码示例
  7. 【数字图像处理4】小波变换 处理图像
  8. java如何实现redis分片存储_AOP与Redis缓存实现
  9. 深入理解JVM——字节码
  10. 谁偷了我的奶酪(中)