格式化输出
a. %格式化输出的方式和C语言中的printf中的类似。
b. format的格式化输出比较灵活,可以使用{}或者{n}的方式输出。
c. f-string格式化字符串常量(formatted string literals),使用f或F引领的字符串,字符串中使用{}标明被替换的字段。
三者区别:
-
多参数时,%格式化输出只能按照顺序输出;
-
format的方式,可以根据指定的参数位置进行输出;
-
f-string方式,简化格式化输出
a. print中使用%进行格式化输出
%[(name)][flags][width].[precision]typecode
整数输出方式:
八进制:%o
十进制:%d
十六进制:%x
浮点数输出方式:
%f:默认输出小数点后6位
%.2f:表示输出小数点后2位
字符串:
%s
num = 100000000001
print("%o" %num)
print("%d" %num)
print("0x%x" %num)
num = 1000000000001.3
print("%f" %num)
print("%.2f" %num)
print(num) #输出数据本身的长度
study = "Python study"
print("%s:%d" %(study, num)) #两个参数的方式,根据参数传入顺序输出
print(study)
输出结果:
1351035564001
100000000001
0x174876e801
1000000000001.300049
1000000000001.30
1000000000001.3
Python study:1000000000001
Python study
b. format格式化输出——{}和:
format功能更加的强大,输出参数可以指定入参位置及重复输出同一个参数。一般用法:
outputStr.format(args)
基本使用方法:
1)空大括号{}
2)指定参数位置{0},{2}
3)指定变量{arg}
更多用法,请参考
formatstrings
a = 39
b = 298
c = 23
print("{},{}:{}".format(a, b, c))
print("{2},{0}/{2}".format(a, b, c))
print("{1}&{1}?{1}".format(a, b, c))
输出结果:
39,298:23
23,39/23
298&298?298
输出对齐方式,使用{}和:
冒号后使用<^>分别表示居左,居中,居右,后面带输出宽度
str1 = "ab"
str2 = "abcd"
str3 = "abcd"
str4 = "abcdefgh"
print("{0:^8}\n{1:<8}\n{2:>8}\n{3}".format(str1, str2, str3, str4))
输出结果:输出位宽为8
ab
abcd
abcd
abcdefgh
进制转换、精度控制,使用{}和:
{index:[.num]format},其中index表示参数索引,.num 表示浮点数需要控制小数点后的精度num,format表示参数进制。
{:b}——二进制
{:o}——八进制
{:d}——十进制
{:x}——十六进制
{:.2f}——输出带2位小数浮点数
{:,}——输出数字带千位分隔符,比如:2,000,000
{:%}——输出百分数,默认小数点后六位,若只保留两位,则{:.2%}
value = 23
print("b{:b}".format(value))
print("0{:o}".format(value))
print("{:d}".format(value))
print("0x{:x}".format(value))
print("{:.3f}".format(value))
print("{:,}".format(2000000))
print("{:.2%}".format(value))
输出结果:
b10111
027
23
0x17
23.000
2,000,000
2300.00%
c. f-string方式
f"{var}"
或
F"{var}"
更多用法,请参考f-strings
num = 23
print(f"num={num}")
print(F"num={num}")
nums = [1, 2, 3]
print(f"nums={nums}")
输出结果:
num=23
num=23
nums=[1, 2, 3]