我正在学习有关打开和阅读文件的python在线课程。偶然发现一条代码行
data = "{:^13} {:<11} {:<6}\n"
得到如下答复之一。然而,我仍然不清楚以下几点
which will come at position of 13 , 11 and 6位置是什么意思?它和索引相似吗?
"^", "<" and {:}所代表的符号是什么?不清楚澄清
Thank you for the post!
data = "{:^13} {:<11} {:<6}\n" this will be printed as string which will be formatted using the random number between 10000 9999 , which will come at position of 13 , 11 and 6
Happy learning!代码如下所示:
from random import randint as rnd
memReg = 'members.txt'
exReg = 'inactive.txt'
fee =('yes','no')
def genFiles(current,old):
with open(current,'w+') as writefile:
writefile.write('Membership No Date Joined Active \n')
data = "{:^13} {:<11} {:<6}\n"
for rowno in range(20):
date = str(rnd(2015,2020))+ '-' + str(rnd(1,12))+'-'+str(rnd(1,25))
writefile.write(data.format(rnd(10000,99999),date,fee[rnd(0,1)]))发布于 2021-01-04 04:36:01
让我们尝试一些更简单的东西,一步一步地把它拆开,看看它为什么会发生:
data = "{:^13} {:<11} {:<6}\n"
print(data.format(1,2,3))
>>> 1 2 3
>>>我们能理解为什么这根绳子现在是这样的吗?是!绝对:
>>> "{:^13}".format(1)
' 1 '
>>> len(' 1 ')
13格式化字符串的第一部分是13个字符,无论您传递到以它为中心的任何内容({:^13})。
>>> "{:<11}".format(2)
'2 '
>>> len('2 ')
11
>>> "{:<6}".format(3)
'3 '
>>> len('3 ')
6格式化字符串的第二部分是11个字符长,第三个部分是6个字符长,因为我们前面的白空间(注意,它不一定是白空间!您可以选择用于填充的字符,方法是在<符号之前写入它:{:<11}_ _-> now we would prepend_ _‘),直到字符串中分别有11个和6个字符为止。
我们可以通过将它们计算在一起来确认这一点:括号+1新行= 33之间的13 + 11 +6+2空格
>>> len(data.format(1,2,3))
33好的,我们完全理解为什么字符串是这样格式化的,但是现在来问一下为什么使用来格式化,而不是用来格式化。Python确实提供了大量格式化数据的方法,但是当谈到string .format()方法时,我推荐给每个人一篇文章:
在这里,您会发现旧的格式化方法和.format()方法之间有很多比较。并不是所有的事情都有可能,即使除此之外,也有很多不同之处。我想你也应该能找到所有的答案。
最后但并非最不重要的一点是,@阴影护林员已经向您提供了关于格式化“迷你语言”的所有细节和细节的实际文档。虽然不像初学者那样友好,但是在尝试理解某人的代码是如何工作的时候,总是先阅读文档是一个好习惯。
https://stackoverflow.com/questions/65557514
复制相似问题