python常用格式化输出
- format格式化输出
- format占位符格式化输出
- format输出格式转化
- format另一种用法
- 整数、浮点数、字符串格式化输出
- 整数格式化输出
- 浮点数格式化输出
- 字符串格式化输出
- print、sys.stdout.write函数
python开发实现常用的格式化输出:format函数、%d、%f、%s格式化输出
format格式化输出
format占位符格式化输出
将字符串作为模板,传入参数进行格式化,共分为3种:
1,占位符不使用任何参数
2,占位符指定数字
3,占位符指定名称
# 占位符不使用任何参数。按顺序填充模版
f1 = 'Hello {}, Hello {}!'
print(f1.format('野三坡', '河北'))
# 占位符指定元组索引。format函数中参数为元组,0、1、2为元组索引
f2 = 'Hello {0}, Hello {1}! My hometown is {1}'
print(f2.format('小红', '野三坡', '河北'))
# 占位符指定元组索引。format函数中参数为元组,0、1、2为元组索引
f3 = 'Hello {1}, Hello {2}! My hometown is {2}'
print(f3.format('小红', '野三坡', '河北'))
# 占位符指定字典key值。format函数中参数为字典 key - value
f4 = 'Hello {name}, Hello {address}! My hometown is {hometown}'
print(f4.format(name='小红', address='野三坡', hometown='河北'))
Hello 野三坡, Hello 河北!
Hello 小红, Hello 野三坡! My hometown is 野三坡
Hello 野三坡, Hello 河北! My hometown is 河北
Hello 小红, Hello 野三坡! My hometown is 河北
占位符指定为数字,数字为参数元组中的索引。其错误信息为元组索引超出范围
f2 = 'Hello {1}, Hello {2}! My hometown is {2}'
print(f2.format('野三坡', '河北'))
Traceback (most recent call last):
File "/Users/yxt/Desktop/MyProjects/OsTest/test.py", line 3, in <module>
print(f2.format('野三坡', '河北'))
IndexError: tuple index out of range
占位符指定为名称,名称为参数字典中的key值。其错误信息为KeyError即字典中不存在该key值
f5 = 'Hello {name}, Hello {address}! My hometown is {hometown}'
print(f5.format(address='野三坡', hometown='河北'))
Traceback (most recent call last):
File "/Users/yxt/Desktop/MyProjects/OsTest/test.py", line 4, in <module>
print(f5.format(address='野三坡', hometown='河北'))
KeyError: 'name'
format输出格式转化
print('转为二进制数:{:b}'.format(5))
print('转为十进制数:{:d}'.format(20))
print('转为八进制数:{:o}'.format(20))
print('转为十六进制数:{:x}'.format(20))
print('转为百分数进制数:{:%}'.format(0.45))
print('保留2位百分数:{:.2%}'.format(0.45))
print("保留2位小数:{:.2f}".format(2))
print("保留2位小数:{:.2f}".format(2.859))
转为二进制数:101
转为十进制数:20
转为八进制数:24
转为十六进制数:14
转为百分数进制数:45.000000%
保留2位百分数:45.00%
保留2位小数:2.00
保留2位小数:2.86
format另一种用法
a = '野三坡'
b = '河北'
print(f"Hello {a}, Hello {b}")
Hello 野三坡, Hello 河北
整数、浮点数、字符串格式化输出
整数格式化输出
print('转为二进制数 %s' % bin(5))
print('转为八进制数 %o' % 20)
print('转为十进制数 %d' % 20)
print('转为十六进制数 %x' % 20)
转为二进制数 0b101
转为八进制数 24
转为十进制数 20
转为十六进制数 14
浮点数格式化输出
import math
number = 10000.11
# %f:格式化输出保留6位小数、
# %e:科学计数法保留6位小数
# %g:保留6位有效数字
print("10000.11 默认保留6位小数 %f" % number)
print("10000.11 默认保留6位小数(科学计数法) %e" % number)
print("10000.11 默认保留6位有效数字 %g" % number)
print("*" * 10)
# %.8f:格式化输出保留8位小数、
# %.8e:科学计数法保留8位小数
# %.8g:保留8位有效数字,不足8位保持原数据
print("10000.11 默认保留8位小数 %.8f" % number)
print("10000.11 默认保留8位小数(科学计数法) %.8e" % number)
print("10000.11 默认保留8位有效数字,不足8位保持原数据 %.8g" % number)
print("*" * 10)
# %.2f:格式化输出保留2位小数、
# %.2e:科学计数法保留2位小数
# %.2g:保留2位有效数字,自动转换为科学计数法,若是去除小数仍比有效数字多,则为整数
print("10000.11 默认保留2位小数 %.2f" % number)
print("10000.11 默认保留2位小数(科学计数法) %.2e" % number)
print("10000.11 默认保留2位有效数字,去除小数仍比保留的有效数字多则保持为整数 %.2g" % number)
print("*" * 10)
# 获取pi值。浮点数填充字符
print("pi值 %s" % math.pi)
print("前面填充字符,保持6位整数不足则补充字符 %06d" % math.pi)
10000.11 默认保留6位小数 10000.110000
10000.11 默认保留6位小数(科学计数法) 1.000011e+04
10000.11 默认保留6位有效数字 10000.1
**********
10000.11 默认保留8位小数 10000.11000000
10000.11 默认保留8位小数(科学计数法) 1.00001100e+04
10000.11 默认保留8位有效数字,不足8位保持原数据 10000.11
**********
10000.11 默认保留2位小数 10000.11
10000.11 默认保留2位小数(科学计数法) 1.00e+04
10000.11 默认保留2位有效数字,去除小数仍比保留的有效数字多则保持为整数 1e+04
**********
pi值 3.141592653589793
前面填充字符,保持6位整数不足则补充字符 000003
字符串格式化输出
s = "jcodeer"
# 保留字符
print("%s" % s)
# 保留3位字符
print("%.3s" % s)
# 保留5位字符
print("%.*s" % (5, s))
print("*" * 10)
# 右对齐,取20位,不够则补位
print('%20s' % 'hello world')
# 左对齐,取20位,不够则补位
print('%-20s' % 'hello world')
print("*" * 10)
# 左对齐,取2位
print('%-10.2s' % 'hello world')
# 右对齐,取2位
print('%10.2s' % 'hello world')
jcodeer
jco
jcode
**********
hello world
hello world
**********
he
he
print、sys.stdout.write函数
import sys
# print函数,自动换行
for i in range(5):
print(i)
print("*" * 10)
# sys.stdout.write(string),不换行输出
for i in range(5):
sys.stdout.write(str(i))
0
1
2
3
4
**********
01234