Python 字符串的格式化循环
我无法格式化下面的字符串。试图使消息以边框为中心,但执行起来很困难。下面是我想要的输出,下面是我到目前为止的代码。注意:我需要在最长行的左右列上留一个空格,并且我需要使用split()函数Python 字符串的格式化循环,python,function,python-3.x,Python,Function,Python 3.x,我无法格式化下面的字符串。试图使消息以边框为中心,但执行起来很困难。下面是我想要的输出,下面是我到目前为止的代码。注意:我需要在最长行的左右列上留一个空格,并且我需要使用split()函数 将字符串拆分为单独的行,然后将每行居中。记住要么立即打印函数中的每一行,建立一个列表,要么生成每一行,而不是在第一行之后返回。您还可以确定并使用计算的宽度,而不是静态值 def border_sign(note): note = note.splitlines() m = len(max(no
将字符串拆分为单独的行,然后将每行居中。记住要么立即打印函数中的每一行,建立一个列表,要么生成每一行,而不是在第一行之后返回。您还可以确定并使用计算的宽度,而不是静态值
def border_sign(note):
note = note.splitlines()
m = len(max(note, key=len))
yield ('-'*m).join('++')
for line in note:
yield ("|{:^%d}|" % m).format(line)
yield ('-'*m).join('++')
print(*border_sign("STOP\nDANGER AHEAD\nDrive safely!"), sep='\n')
将字符串拆分为单独的行,然后将每行居中。记住要么立即打印函数中的每一行,建立一个列表,要么生成每一行,而不是在第一行之后返回。您还可以确定并使用计算的宽度,而不是静态值
def border_sign(note):
note = note.splitlines()
m = len(max(note, key=len))
yield ('-'*m).join('++')
for line in note:
yield ("|{:^%d}|" % m).format(line)
yield ('-'*m).join('++')
print(*border_sign("STOP\nDANGER AHEAD\nDrive safely!"), sep='\n')
快速采样考虑,不准备就绪代码:
def border_sign(note):
rows = note.splitlines()
mlen = len(max(rows, key=len))
print "+" + "-" * (2+mlen) + "+"
for row in rows:
print ("| {:^"+str(mlen)+"} |").format(row)
print "+" + "-" * (2+mlen) + "+"
快速采样考虑,不准备就绪代码:
def border_sign(note):
rows = note.splitlines()
mlen = len(max(rows, key=len))
print "+" + "-" * (2+mlen) + "+"
for row in rows:
print ("| {:^"+str(mlen)+"} |").format(row)
print "+" + "-" * (2+mlen) + "+"
patiz.format
是一个函数,然后可以在map
patiz.format
是一个函数,然后可以在map
中使用,这就是在编辑器中设置代码的方式吗?因为你正在循环中返回。它也在字符上迭代。你正在格式化整个注释,并且使用一个不做任何事情的计数器,不使用i
做任何事情……你为什么要使用循环?在您的示例中,您从未使用过它。我假设需要计算最大的字符串,然后为列添加一个空格,但意识到这是错误的。您的编辑器中的代码就是这样设置的吗?因为你正在循环中返回。它也在字符上迭代。你正在格式化整个注释,并且使用一个不做任何事情的计数器,不使用i
做任何事情……你为什么要使用循环?在您的示例中,您从未使用过它。我假设我需要计算最大的字符串,然后为列添加一个空格,但意识到这是错误的。感谢您对拆分的解释。如果我在使用其他测试函数,我将如何生成正确数量的“+”和“-”?@AlanWakke-请参见编辑。+
不会改变(只是每个角有一个),但您可以根据最大宽度计算所需的空格和-
字符。感谢您对拆分的解释。如果我在使用其他测试函数,我将如何生成正确数量的“+”和“-”?@AlanWakke-请参见编辑。+
不会改变(只是每个角有一个),但您可以根据最大宽度计算所需的空格和-
字符。