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