码迷,mamicode.com
首页 > 编程语言 > 详细

Python格式化输出字符串 (%, format(), f'')

时间:2020-01-22 12:53:15      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:元素   没事   ace   style   描述   小数   group   浮点数   索引   

格式说明符/占位符:%

目的:格式与内容分离,制作复杂的公共字符串模板,让某些位置变成动态可输入的。

用法:‘ %[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))  # 参数只要是能索引的对象就行

 

 

 

Python格式化输出字符串 (%, format(), f'')

标签:元素   没事   ace   style   描述   小数   group   浮点数   索引   

原文地址:https://www.cnblogs.com/pyonwu/p/12228155.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!