相关文章推荐
小眼睛的热带鱼  ·  Python equivalent of ...·  2 月前    · 
俊逸的火锅  ·  Python 控制台 — Blender ...·  2 月前    · 
健身的抽屉  ·  在 Google Cloud 上使用 ...·  2 月前    · 
直爽的黑框眼镜  ·  Difference between ...·  2 月前    · 
个性的骆驼  ·  android - ...·  2 年前    · 
酒量小的薯片  ·  c - EVP_PKEY_keygen() ...·  2 年前    · 
有胆有识的红豆  ·  Tkinter ...·  2 年前    · 
Python编程环境搭建
3 变量类型和运算符
3.1 Python变量的定义和使用
3.2 Python整数类型(int)
3.3 Python小数/浮点数(float)
3.4 Python复数类型(complex)
3.5 为什么Python浮点类型存在误差?
3.6 Python字符串
3.7 Python字符串使用哪种编码格式?
3.8 Python bytes
3.9 Python bool布尔类型
3.10 Python初始化变量,并不一定开辟新的内存!
3.11 Python input()函数:获取用户输入的字符串
3.12 Python print()函数高级用法
3.13 Python格式化字符串
3.14 Python转义字符
3.15 Python数据类型转换
3.16 Python算术运算符
3.17 Python赋值运算符
3.18 Python位运算符
3.19 Python比较运算符
3.20 Python逻辑运算符
3.21 Python三目运算符
3.22 Python运算符优先级和结合性
列表、元组、字典和集合 Python字符串常用方法 Python流程控制 函数和lambda表达式 Python类和对象 类特殊成员(属性和方法) Python异常处理机制 Python模块和包 Python文件操作(I/O)
我们在《 第一个Python程序——在屏幕上输出文本 》中讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出,这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。

print() 函数使用以 % 开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。
表 1 Python 转换说明符 转换说明符 %d、%i 转换为带符号的十进制整数 转换为带符号的八进制整数 %x、%X 转换为带符号的十六进制整数 转化为科学计数法表示的浮点数(e 小写) 转化为科学计数法表示的浮点数(E 大写) %f、%F 转化为十进制浮点数 智能选择使用 %f 或 %e 格式 智能选择使用 %F 或 %E 格式 格式化字符及其 ASCII 码 使用 repr() 函数将表达式转换为字符串 使用 str() 函数将表达式转换为字符串 C语言中文网已经8岁了!
在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个 %d 说明符,它最终会被后面的 age 变量的值所替代。
中间的 % 是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。
当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符;多个表达式必须使用小括号 ( ) 包围起来。请看下面的例子: name = "C语言中文网" age = 8 url = "http://c.biancheng.net/" print("%s已经%d岁了,它的网址是%s。" % (name, age, url)) 运行结果: C语言中文网已经8岁了,它的网址是http://c.biancheng.net/。

总之,有几个占位符,后面就得跟着几个表达式。 指定最小输出宽度 当使用表1中的转换说明符时,可以使用下面的格式指定最小输出宽度(至少占用多少个字符的位置): %10d 表示输出的整数宽度至少为 10; %20s 表示输出的字符串宽度至少为 20。 请看下面的演示: n = 1234567 print("n(10):%10d." % n) print("n(5):%5d." % n) url = "http://c.biancheng.net/python/" print("url(35):%35s." % url) print("url(20):%20s." % url) 运行结果: n(10): 1234567. n(5):1234567. url(35): http://c.biancheng.net/python/. url(20):http://c.biancheng.net/python/. 从运行结果可以发现,对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。
你看,这里指定的只是最小宽度,当数据的实际宽度足够时,指定的宽度就没有实际意义了。
指定对齐方式 默认情况下,print() 输出的数据总是右对齐的。也就是说,当数据不够宽时,数据总是靠右边输出,而在左边补充空格以达到指定的宽度。Python 允许在最小宽度之前增加一个标志来改变对齐方式,Python 支持的标志如下:
Python 支持的标志 指定左对齐 表示输出的数字总要带着符号;正数带 + ,负数带 - 。 表示宽度不足时补充 0,而不是补充空格。 对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。
精度值需要放在最小宽度之后,中间用点号 . 隔开;也可以不写最小宽度,只写精度。具体格式如下: %m.nf
m 表示最小宽度,n 表示输出精度, . 是必须存在的。
请看下面的代码: f = 3.141592653 # 最小宽度为8,小数点后保留3位 print("%8.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0 print("%08.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0,带符号 print("%+08.3f" % f) 运行结果: 3.142 0003.142 +003.142

关注公众号「 站长严长生 」,在手机上阅读所有教程,随时随地都能学习。本公众号由 C语言中文网站长 亲自运营,长期更新,坚持原创。

微信扫码关注公众号