python三种字符串格式化

字符串格式化

% 字符串格式化

语法格式如下:

%[(name)][flags][width][.precision]typecode
  • (name) 可选,用于选择指定的 key
  • flags 可选,可供选择的值有,注意只有在和数值类型的 typecode 配合才起作用
    • +, 右对齐,正数前加正号,负数前加负号
    • -, 左对齐,正数前无符号,负数前加负号
    • 空格, 右对齐,正数前加空格,负数前加负号
    • 0, 右对齐,正数前无符号,复数前加负号;用 0 填充空白处
  • width,可选字符串输出宽度
  • .precision 可选,小数点后保留位数,注意只有在和数值类型的 typecode 配合才起作用
  • typecode 必选
  • %,当字符串中存在格式化标志时,需要用 %% 表示一个百分号
# '%s'作为槽位和 % 号后提供的值按顺序一一对应
# 百分号用%号转义下
res = '%s计算机的内存利用率为%s%%' % ('11:15', 75)
print(res)


# % 后是字典时,可以通过name指定key对应的值
res = '%(time)s计算机的内存利用率为%(percent)s%%' % {'time':'11:15', 'percent': 75}
print(res)


# 输出两位数的月份,例如01,02
res = '%02d' % 8
print(res)
08


# 保留2为小数
res = '%(time)s计算机的内存利用率为%(percent).2f%%' % {'time':'11:15', 'percent': 75.123}
print(res)
11:15 计算机的内存利用率为 75.12%

format 函数格式化

基本语法是:

<模板字符串>.format(<逗号分隔的参数>)

在模板字符串中使用 {} 代替以前的 % 作为槽位

'{}计算机的内存利用率为{}%'.format('11:15', 75)

当 format 中的参数使用位置参数提供时,{} 中可以填写参数的整数索引和参数一一对应

'{0}计算机的内存利用率为{1}%'.format('11:15', 75)

当 format 中的参数使用关键字参数提供时,{}中可以填写参数名和参数一一对应

'{time}计算机的内存利用率为{percent}%'.format(time='11:15', percent=75)

{<参数序号>:<格式控制标记>}
其中格式控制标记格式如下
[fill][align][sign][#][0][width][,][.precision][type]
  • fill 【可选】空白处填充的字符
  • align 【可选】对齐方式(需配合 width 使用)
    • <,内容左对齐
  • >,内容右对齐(默认)
  • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号 + 填充物 + 数字
  • ^,内容居中
  • sign 【可选】有无符号数字
    • +,正号加正,负号加负;
    • -,正号不变,负号加负;
    • 空格 ,正号空格,负号加负;
  • #
    【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示 
  • , 【可选】为数字添加分隔符,如:1,000,000
  • width 【可选】格式化位所占宽度
  • .precision 【可选】小数位保留精度
# 输出两位数的月份,例如01,02
res = '{:0>2}'.format(8) 
print(res)
08

# 保留2为小数
res = '{time}计算机的内存利用率为{percent:.2%}'.format(time='11:15', percent=0.75123)
print(res)

11:15 计算机的内存利用率为 75.12%

3 f 字符串的花括号内写上变量名,解释器会自动将变量的值的字符串形式替换

基本语法是:

literal_char{expression[:format_spec]}

  • literal_char 普通字符
  • expression 表达式,变量或函数。。
  • format_spec 格式字符串,规则同上面的 format 字符串

直接在 f 字符串的花括号内写上变量名,解释器会自动将变量的值的字符串形式替换

item = '11:15'
percent = 75
f'{time}计算机的内存利用率为{percent}%'
'11:15计算机的内存利用率为75%'
# 输出两位数的月份,例如01,02
month = 8
res = f'{month:0>2}'
print(res)
08
# 保留2为小数
time = '11:15'
percent = 0.75123
res = f'{time}计算机的内存利用率为{percent:.2%}'
print(res)
11:15计算机的内存利用率为75.12%

包含运算和函数的 f 字符串

num = -1
print(f'{num+1=}')
num+1=0
原文地址:https://www.cnblogs.com/shishibuwan/p/15469756.html