一.标准输出
1.使用表达式
2.使用print()函数
基本格式为:
print([输出项1,输出项2,......,输出项n][,sep=分隔符][,end=结束符])
没有输出项时输出一个空行:
1 | print () |
这里输出了两个空行是因为print()输出了一个空行,结尾又输出了一个换行符,所以是两行。
其中,输出项之间以逗号分隔,sep表示输出时各输出项之间的分隔符(默认以空格分隔),end表示结束符(默认以回车换行结束)
1 2 3 | x = 12 y = 45 print (x, y) #输出项x与y之间以逗号分隔 |
因为没有设置分隔符,所以以空格分隔:
如果有分隔符:
1 2 3 | x = 12 y = 45 print (x, y, sep = '-' ) |
没有设置end的情况:
1 2 | x = 12 print (x) |
结尾会多输出一个换行符:
设置了end的情况:
1 2 | x = 12 print (x, end = '!' ) |
结尾的换行符就变成了其他符号:(不换行了)
例:
1 2 | print ( 10 , 20 , sep = '-' , end = '*' ) print ( 30 ) |
二.格式化输出
1.利用字符串格式化运算符%
一般格式为:
格式字符串%(输出项1,输出项2,......,输出项n)
例如:
1 | print ( 'The value is ¥%.2f' % 7.8 ) |
单引号内的字符为格式字符串,格式字符串分为普通字符和格式说明符,格式说明符以%开头,普通字符原样输出
本例中,The value is ¥是普通字符,原样输出,%.2f是格式说明符,表示输出项保留小数点后两位。
例如:
1 | print ( 'Values are %s,%s,%s' % ( 1 , 2.3 , [ 'one' , 'two' , 'three' ])) |
格式符%s表示输出类型是字符串类型
输出结果:
例如:
1 | print ( '%6.2f' % 12.345 ) |
它表示输出的长度为6个字符,保留小数后两位。(默认右对齐)(小数点也算一个字符)
(12.35左边有一个空格)
如果输出项的数的位数大于控制输出的长度:
1 | print ( '%6.2f' % 12345678.345 ) |
原样输出
左对齐的方式: (加负号)
1 | print ( '%-6.2f' % 12.345 ,end = '*' ) |
可以看到12.35与*之间有一个空格,即左对齐
例如:
1 | print ( '%06.2f' % 1.2345 ) |
在6的前面多加了个0,表示输出的位数不足用6位就用0补足
除了0以外,我们还可以使用-与+
-表示左对齐,+表示在正数前面也加上+号
1 2 3 | print ( '%-7.2f' % 1.2345 , end = '*\n' ) print ( '%+7.2f' % 1.2345 , end = '*\n' ) print ( '%-+7.2f' % 1.2345 , end = '*' ) |
有时候在"%6.2f"这种格式字符串中,输出长度和小数位数不能事先指定,这时可以用%*.*f的形式
例如:
1 | print ( '%0*.*f' % ( 8 , 2 , 123.524 )) |
括号不能删!
1 | print ( '%0*.*f' % 8 , 2 , 123.524 ) #这样是不对的 |
相当于:
1 | print ( '%08.2f' % 123.524 ) |
例:
1 2 3 4 | print ( '%+3d,%0.2f' % ( 25 , 123.567 )) print ( "Name:%-10s Age:%-8d Salary:%-0.2e" % ( "Aviad" , 25 , 1839.8 )) nHex = 0xFF print ( "nHex=%x,nDec=%d,nOct=%o" % (nHex, nHex, nHex)) |
格式说明符 | 格式化结果 |
%% | 百分号 |
%c | 字符 |
%s | 字符串 |
%d | 带符号整数(十进制) |
%o | 带符号整数(八进制) |
%x或%X | 带符号整数(十六进制,用小写字母或大写字母) |
%e或%E | 浮点数字(科学计数法,用小写e或大写E) |
%f或%F | 浮点数字(用小数点符号) |
%g或%G | 浮点数字(根据值的大小,采用%e,%f或%E,%F) |
2.利用format()内置函数
format()函数可以将一个输出项单独格式化,一般格式为:
format(输出项[,格式字符串])
如果省略格式字符串时,该函数等价于函数“str(输出项)”的功能。
1 | print ( format ( "Hello" )) |
格式字符串 | 格式化结果 |
d | 十进制 |
b | 二进制 |
o | 八进制 |
x或X | 十六进制 |
f或F | 浮点数字(用小数点符号) |
e或E | 浮点数字(科学计数法,用小写e或大写E) |
g或G | 浮点数字(根据值的大小,采用%e,%f或%E,%F) |
c | 以整数为编码的字符 |
% | 输出百分号 |
例:
1 | print ( format ( 15 , 'X' ), format ( 65 , 'c' ), format ( 3.145 , '6.2f' )) |
格式字符串还可以指定:
1.填充字符
1 2 | print ( format ( 3.145 , '08.2f' )) print ( format ( 3.145 , '08.2' )) |
08.2f中,0是填充字符,8表示总共占8个字符长度,.2f表示保留小数点后两位(不包括小数点)
08.2中,0是填充字符,8表示总共占8个字符长度,.2表示不包括小数点在内的输出位数是2位
也就是说,假如用8.3输出1.2345,那么会输出1.23;用8.3输出12.345的话,会输出12.3
2.对齐方式(<表示左对齐,>表示右对齐,^表示居中对齐,=表示填充字符位于符号和数字之间)
1 2 3 4 | print ( "01234567890123456789" ) #20个字符 print ( format ( 'text' , '<20' )) print ( format ( 'text' , '^20' )) print ( format ( 'text' , '>20' )) |
20表示在20个字符长度中进行对齐
1 | print ( format ( - 3.145 , '$=8.2' )) |
$是填充字符,=表示填充字符$位于符号-和数字3之间
3.符号(+表示正号,-表示负号)
没有+号时,输出一个正数不会输出+号,加上正号才会有+号
1 2 | print ( format ( 3.145 , '8.2' )) print ( format ( 3.145 , '+8.2' )) |
输出一个正数时,即使加上负号也不会输出-号
1 2 | print ( format ( 3.145 , '8.2' )) print ( format ( 3.145 , '-8.2' )) |
3.字符串的format()方法
调用格式:
格式字符串.format(输出项1,输出项2,……,输出项n)
其中格式字符串可以是普通字符和格式字符串。普通字符原样输出,格式字符串决定所对应输出项的转换格式。
普通字符:
1 | print ( "Hello" . format ()) #普通字符 |
格式字符串使用大括号括起来,一般形式如下:
{[序号或键]:格式说明符}
序号对应着后面的输出项:(省略全部序号按输出项的顺序输出)
1 2 3 4 | print ( "{0},{1},{2}" . format ( 1 , 2 , 3 )) print ( "{2},{1},{0}" . format ( 1 , 2 , 3 )) print ( "{0},{0},{0}" . format ( 1 , 2 , 3 )) print ( "{},{},{}" . format ( 1 , 2 , 3 )) |
可选的键要对应输出项的名字或字典的键值:
1 | print ( "{y},{x},{z}" . format (x = 1 , y = "Hello" , z = 3 )) |
其中x,y,z就是键。
如果序号或键与格式说明符一起使用,那么就要在序号或键后面加上:再写格式说明符
例:
1 | print ( "{1:5.2f},{0}" . format ( 500 , 3.1415 )) |
{1:5.2f}中1表示输出项1,:是必须写的,5.2f表示输出占5个字符长度,保留小数后两位
例:
使用大括号“{}”格式说明符,大括号及里面的字符(称为格式化字符)将会被format()中的参数替换
1 | print ( "I\'m{},{}" . format ( "JYHZZ" , "Welcome!" )) |
1 2 | import math print ( "The value of PI is approximately {}" . format (math.pi)) |
使用“{序号}”形式的格式说明符,在大括号中的数字用于指向输出对象在format()函数中的位置。
1 | print ( "{0},i\'m {1}.My E-mail is {2}" . format ( "Hello" , "JTHZZ" , "666" )) |
改变格式说明符的位置:
1 | print ( "{1},i\'m {2}.My E-mail is {0}" . format ( "666" , "Hello" , "JTHZZ" )) |
使用“{键}”形式的格式说明符,大括号中是一个标识符,该标识符会指向使用该名字的参数
1 | print ( "Hi,{nm}.{ms}" . format (nm = "JYHZZ" ,ms = "How are you?" )) |
混合使用“{序号}”,“{键}”形式的格式说明符
1 | print ( "Hi,{0}.{ms}" . format ( "JYHZZ" ,ms = "How are you?" )) |
输出的格式控制:
序号和键后面可以跟一个冒号:和格式说明符,这就允许对输出项进行更好的格式化。
例如,{0:8}表示format()中的第一个参数占8个字符宽度,如果输出位数大于该宽度,就按实际位数输出;如果输出位数小于这个宽度,默认右对齐,左边补空格,补足8位。
{1:.3}表示第二个输出项除小数点外的输出位数是3位。
{1:.3}表示保留小数点后3位。
1 2 3 | import math print ( "The value of PI is approximately {0:.3}" . format (math.pi)) print ( "The value of PI is approximately {0:.3f}" . format (math.pi)) |
例如:
1 2 3 4 5 6 | print ( "{0:<15}" . format ( 1234567890 )) #左对齐 print ( "{0:>15}" . format ( 1234567890 )) #右对齐 print ( "{0:*^15}" . format ( 1234567890 )) #中间对齐,空位以*填充 print ( "{0:10b}" . format ( 65 )) #用二进制形式输出 print ( "{0:10o}" . format ( 65 )) #用八进制形式输出 print ( "{0:10x}" . format ( 65 )) #用十六进制形式输出 |
总结
到此这篇关于Python数据的标准输出与格式化输出的文章就介绍到这了,更多相关Python数据输出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
最新评论