格式说明符/占位符:%
目的:格式与内容分离,制作复杂的公共字符串模板,让某些位置变成动态可输入的。
用法:' %[datatype] ' % (data, data, ...)
%前设置输出格式,用引号括起来;%后设置输出内容,格式部分有几个%,内容部分就有几个数据,多个数据时用小括号括起来,并用逗号分隔。
需要输出%时,可以用%%转义,就取消了占位符的作用
print('3%%%s' % 'gg')
结果:
3%gg
整型
%o 八进制 ,%d (或%i)十进制,%x 十六进制
print('%d' % 30) print('%o' % 30) print('%x' % 30)
执行结果:
30
36
1e
浮点数
%f 普通输出,默认小数点后6位,
%e 科学计数法输出 ,默认同上
%g 默认6位有效数字,默认普通输出,当整数部分超过有效数字位数时,改为科学计数法输出
%.3f 保留3位有效数字
print('%f' % 1.22221233) print('%e' % 1.11287631812) print('%.8g' % 682632894.85982379)
结果:
1.222212
1.112876e+00
6.8263289e+08
字符串输出
%s
%20s 右对齐,20位宽度,超过没事儿,不够补空格
%-20s 左对齐,同上
%.5s 截取5位
%10.5 右对齐,10位宽度,截取5位
在%与s中间,可选项
[-]对齐方式
[num]占位宽度
[.num]截取位数
print('%s' % 'ok') print('%20s' % 'interpreter') print('%-20s' % 'interpreter') print('%.5s' % 'interpreter') print('%20.5s' % 'interpreter') msg = " %s %s %s " %('hello','world','!') name = input('请输入姓名') age = input('请输入年龄') job = input('请输入职业') hobby = input('请输入兴趣') msg = '''------------ info of %s ------------ Name : %s Age : %d Job : %s Hobby : %s ------------ end ------------''' % (name,name,int(age),job,hobby) print(msg)
结果:
ok
_________interpreter
interpreter_________
inter
inter_______________
转义字符
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符,将光标移动到下一行的开头 |
\t | 横向制表符,将光标向右移动一个制表符位 |
\r | 回车 |
\f | 换页 |
format()
格式化输出,还有另一种方法,那就是format()函数。
基本语法是通过 {} 和 : 来代替以前的 % 。与%同理,可以用{{}}来转义输出{}。
输出数字
: 后面写格式说明,形如{:.3f},表示小数点后3位有效数字的浮点数;{:.2%}表示百分数小数点后两位。
最前面是要填充的字符,只能是单个字符,默认是空格。
^, <, > 分别是居中、左对齐、右对齐,后面带宽度
+ 表示在正数前显示 +,负数前显示 -
.表示有效数字位数
输出字符串
用法一:使用位置参数
print('{} {}'.format('hello', 'world')) print('{0}{1}{2}{3}{4}{3}{2}{1}{0}'.format('上', '海', '自', '来', '水'))
可以使用list作为参数,列表对象前要加*,如下(可以和用法三中索引列表进行比较)
list1 = ['A', 'B', 'C'] print('{} {} {}'.format(*list1)) # 可以用索引号随意选择输出的元素,结果:A B A list1 = ['A', 'B', 'C'] print('{0} {1} {0}'.format(*list1)) # 当传入两个列表参数时,索引号会依次排列下去,结果:A B A c a list1 = ['A', 'B', 'C'] list2 = ['a', 'b', 'c'] print('{0} {1} {0} {5} {3}'.format(*list1, *list2))
用法二:使用关键字参数,在{}内写变量名,用format()参数传入相应变量
print('''地区:{area} 人口数:{people}'''.format(area='上海', people='24000000')) # 必须在format()参数内对关键字进行赋值。 print('''地区:{area} 人口数:{people}'''.format(area='上海', people='24000000')) # 必须在format()参数内对关键字进行赋值。 # 但是,如果使用另一种方式(3.6以上版本),可以让关键字在外面赋值 area = '阿拉斯加' people = '100' print(f'''地区:{area} 人口数:{people}''')
可以使用dict作为参数,字典对象前要加**,如下
dict1 = {'area': '北京', 'people': '22000000'} print('''地区:{area} 人口数:{people}'''.format(**dict1))
用法三:使用索引
# A 90 B 80 C 70 list1 = ['A', 'B', 'C'] list2 = ['90', '80', '70'] print('{0[0]} {1[0]} {0[1]} {1[1]} {0[2]} {1[2]}'.format(list1, list2)) # 参数只要是能索引的对象就行
来源:https://www.cnblogs.com/pyonwu/p/12228155.html