学而实习之 不亦乐乎

Python:print() 及其格式化

2022-03-25 08:07:06

一、print() 方法

语法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

参数:

  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file -- 要写入的文件对象。
  • flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

二、格式化输出

在C语言中,可以使用 printf("%2d",x) 的形式实现数据的格式化输出。类似的,在 python 中,我们同样可以实现数据的格式化输出。

1、常用符号

(1)% 字符

.% 标记转换说明符的开始。

(2)宽度及精度

如:

PI = 3.141592653
print('%10.3f' % PI)  #字段宽10,精度3

输出:

     3.142

(3)转换标志

  • -:表示左对齐
  • +:表示在数值前要加上正负号
  • " "(空白字符):表示正数之前保留空格()
  • 0:表示转换值若位数不够则用0填充。
  • <sp>:在正数前面显示空格
  • #:在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
  • %:'%%'输出一个单一的'%'
  • (var):映射变量(字典参数)
  • m.n:m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

如:

PI=3.1415926
print('%-10.3f' % PI)  #左对齐,还是10个字符,但空格显示在右边。

输出:
3.142

print('%+f' % PI)  #显示正负号  

输出:
#+3.141593

print('%010.3f' % PI) #字段宽度为10,精度为3,不足处用0填充空白

输出:
#000003.142

(4)格式字符

  • %c:格式化字符及其ASCII码
  • %s:格式化字符串
  • %d:格式化整数
  • %u:格式化无符号整型
  • %o:格式化无符号八进制数
  • %x:格式化无符号十六进制数
  • %X:格式化无符号十六进制数(大写)
  • %f:格式化浮点数字,可指定小数点后的精度
  • %e:用科学计数法格式化浮点数
  • %E:作用同%e,用科学计数法格式化浮点数
  • %g:%f和%e的简写
  • %G:%f 和 %E 的简写
  • %p:用十六进制数格式化变量的地址


(5)常用转义字符

  • \:续行符
  • \\:反斜杠
  • \':单引号
  • \":双引号
  • \a:响铃
  • \b:退格
  • \e:转义
  • \000:空
  • \n:换行
  • \v:纵向制表符
  • \t:横向制表符
  • \r:回车
  • \f:换页
  • \oyy:八进制数yy代表的字符,如:\o12代表换行
  • \xyy:十进制数yy代表的字符,如:\x0a代表换行
  • \other:其他的字符以普通格式输出

2.实例 

输出99乘法表:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
y = 1
while y <= 9:
    x = 1
    while x <= y:
        print("%d * %d = %d" %(x,y,x*y) , end="\t")
        x += 1
    print("") # 打印换行
    y += 1