一、%s是什么
在python中,%s是一种基本的格式化字符串输出的符号。
二、为何要用%s
为了实现格式化输出,用简便的方法让字符串看起来更加美观。
三、%s如何使用
可以在字符串中加入%s,将一个值插入到该字符串中,插入位置是%s所在位置。另外,%d用于接收传入的格式化的整数,一般还是使用%s居多。下面,我们以打印进度条为例,看一下%s的比较酷的玩法:
# 进度条效果
[# ]
[## ]
[### ]
# 实现上述效果的代码
print('[%-15s]' %'#')
print('[%-15s]' %'##')
print('[%-15s]' %'###')
# | | |--> 15或其他数字,写在%s或%d中间,代表占位符+格式化字符占据的字符的数量,不够的字符使用空格' '填充。
# | |--> 负号,代表指定字符为左对齐,若为正号则为右对齐,不写符号则默认是右对齐。
# |--> %s 是用于接收后面字符串的占位符
# 如何显示%这个符号?
# 使用'%%'输出一个单一的'%'
print('%s%%' %(100)) # 第二个%号代表取消第一个%的特殊意义
# 传参来控制宽度 使用双层传参,内层%d传递宽度,外层的%s传递字符串
print('[%%-%ds]' %50) # [%-50s]
print(('[%%-%ds]' %50) %'#')
print(('[%%-%ds]' %50) %'##')
# ===实现打印进度条函数
def progress(percent, width=50):
if percent >= 1:
percent = 1
show_str = ('[%%-%ds]' % width) % ('#' * int(width * percent))
print('\r%s %d%%' % (show_str, int(percent * 100)), file=sys.stdout, flush=True, end='')
# 应用==打印进度条
data_size = 10250
recv_size = 0
while recv_size < data_size:
time.sleep(0.4)
recv_size += 1024
percent = recv_size / data_size
progress(percent, width=70)