형식 또는 %
서식 첨부 출력에 언급 된 파이썬 방법, 일반적으로 두 가지 방법이 있습니다 :
print('hello %s' % 'world')
# hello world
print('hello {}'.format('world'))
# hello world
어쨌든 나를 위해, 좋은 무엇 결국, 사용 .format()
다음은 사용하지 않습니다 %
까지.
format()
데이터 유형을 무시%s
,%f
내가 완료하지 기억 있도록;format()
더 풍부한 기능은 모드를 작성, 정렬은 매우 유연하고 효과가 더 아름다운 인쇄 할 수 있습니다;format()
그것은 공식 추천%
폐기물 밖으로 향후 릴리스에 Zhibuding.기본 사용법
print('{} {}'.format('hello', 'world')) # 最基本的
print('{0} {1}'.format('hello', 'world')) # 通过位置参数
print('{0} {1} {0}'.format('hello', 'world')) # 单个参数多次输出
"""输出结果
hello world
hello world
hello world hello
"""
키워드 스포팅
# 通过关键词参数
print('我的名字是{name},我今年{age}岁了。'.format(name='小明', age='12'))
# 与位置参数一样,单个参数也能多次输出
print('{name}说:"我的名字是{name},我今年{age}岁了。"'.format(name='小明', age='12'))
"""输出结果
我的名字是小明,我今年12岁了。
小明说:"我的名字是小明,我今年12岁了。"
"""
변수 매개 변수
이 때문에 format()
방법, 그것은 또한 동의하지 않습니다 *args
및 **kwargs
대량 참여의 형태는, 대답은 '예'입니다.
# 传入list
data = ['hello', 'world']
print('{0} {1}'.format(*data))
# 传入dict
data = {'name': '小明', 'age': 12}
print('我的名字是{name},我今年{age}岁了。'.format(**data))
# 混用
data_1 = ['hello', 'world']
data_2 = {'name': '小明', 'age': 12}
print('{0} {1} 我的名字是{name},我今年{age}岁了,{0}!'.format(*data_1, **data_2))
"""输出结果
hello world
我的名字是小明,我今年12岁了。
hello world 我的名字是小明,我今年12岁了,hello!
"""
고정 폭
format()
당신은 얼마나 많은 출력 폭을 지정할 수 있습니다, 설정 값이 적은 문자열 길이보다 때, 기본은 공백으로 패딩 :
data = [{'name': 'Mary', 'college': 'Tsinghua University'},
{'name': 'Micheal', 'college': 'Harvard University'},
{'name': 'James', 'college': 'Massachusetts Institute of Technology'}]
# 固定宽度输出
for item in data:
print('{:10}{:40}'.format(item['name'], item['college']))
"""输出结果
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology
공간 이외에 물론, 우리는 또한 당신에 의해 선택할 수 있습니다, 예를 들어, 내가 분할 선을 인쇄하려면, 채우기 위해 다른 문자를 선택할 수 -
채우기에 :
data = [{'name': 'Mary', 'college': 'Tsinghua University'},
{'name': 'Micheal', 'college': 'Harvard University'},
{'name': 'James', 'college': 'Massachusetts Institute of Technology'}]
# 固定宽度输出
for item in data:
# 每输出一条记录之前打印一条分割线
# 选择用其他字符来填充时需要指定对齐方式
print('{:-^60}'.format('我是分割线'))
print('{:10}{:40}'.format(item['name'], item['college']))
"""输出结果
---------------------------我是分割线----------------------------
Mary Tsinghua University
---------------------------我是分割线----------------------------
Micheal Harvard University
---------------------------我是分割线----------------------------
James Massachusetts Institute of Technology
"""
조정
format()
지원은 각각 중심, 오른쪽 정렬, 왼쪽 정렬 <
,, >
, ^
우리는 구체적인 예를 사용하는 방법에 대해 살펴 :
data = [{'name': 'Mary', 'college': 'Tsinghua University'},
{'name': 'Micheal', 'college': 'Harvard University'},
{'name': 'James', 'college': 'Massachusetts Institute of Technology'}]
print('{:-^50}'.format('居中'))
for item in data:
print('{:^10}{:^40}'.format(item['name'], item['college']))
print('{:-^50}'.format('左对齐'))
for item in data:
print('{:<10}{:<40}'.format(item['name'], item['college']))
print('{:-^50}'.format('右对齐'))
for item in data:
print('{:>10}{:>40}'.format(item['name'], item['college']))
"""输出结果
------------------------居中------------------------
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology
-----------------------左对齐------------------------
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology
-----------------------右对齐------------------------
Mary Tsinghua University
Micheal Harvard University
James Massachusetts Institute of Technology
"""
디지털 형식
다음과 같이 일반적으로 사용되는 예는 다음과 같습니다
# 取小数点后两位
num = 3.1415926
print('小数点后两位:{:.2f}'.format(num))
# 带+/-输出
num = -3.1415926
print('带正/负符号:{:+.2f}'.format(num))
# 转为百分比
num = 0.34534
print('百分比:{:.2%}'.format(num))
# 科学计数法
num = 12305800000
print('科学计数法:{:.2e}'.format(num))
# ,分隔
num = 12305800000
print('","分隔:{:,}'.format(num))
# 转为二进制
num = 15
print('二进制:{:b}'.format(num))
# 十六进制
num = 15
print('十六进制:{:x}'.format(num))
# 八进制
num = 15
print('八进制:{:o}'.format(num))
"""输出结果
小数点后两位:3.14
带正/负符号:-3.14
百分比:34.53%
科学计数法:1.23e+10
","分隔:12,305,800,000
二进制:1111
十六进制:f
八进制:17
"""
출력 중괄호
우리가 출력하려는 경우 물론, {}
시간이 어떻게 그것을 할까?
# 输出花括号
print('我是{{{}}}'.format('Awesome_Tang'))
"""输出结果
我是{Awesome_Tang}
"""
멋진 플레이
사실, 이러한 기능과 함께, 우리는 할 말을, 진행률 표시 줄을 작성 뭔가 재미를 가리킬 수 있습니다 :
import time
length = 1000
for i in range(1, length + 1):
percent = i / length
bar = '▉' * int(i // (length / 50))
time.sleep(0.01)
print('\r进度条:|{:<50}|{:>7.1%}'.format(bar, percent), end='')
print('\n')
- 결과는 다음과 같습니다 :
***
이제 느낌 %
과 str.format()
는 무엇보다 효율적으로 사용할 수있다?