Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字符串的格式化循环_Python_Function_Python 3.x - Fatal编程技术网

Python 字符串的格式化循环

Python 字符串的格式化循环,python,function,python-3.x,Python,Function,Python 3.x,我无法格式化下面的字符串。试图使消息以边框为中心,但执行起来很困难。下面是我想要的输出,下面是我到目前为止的代码。注意:我需要在最长行的左右列上留一个空格,并且我需要使用split()函数 将字符串拆分为单独的行,然后将每行居中。记住要么立即打印函数中的每一行,建立一个列表,要么生成每一行,而不是在第一行之后返回。您还可以确定并使用计算的宽度,而不是静态值 def border_sign(note): note = note.splitlines() m = len(max(no

我无法格式化下面的字符串。试图使消息以边框为中心,但执行起来很困难。下面是我想要的输出,下面是我到目前为止的代码。注意:我需要在最长行的左右列上留一个空格,并且我需要使用split()函数


将字符串拆分为单独的行,然后将每行居中。记住要么立即打印函数中的每一行,建立一个列表,要么生成每一行,而不是在第一行之后返回。您还可以确定并使用计算的宽度,而不是静态值

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-请参见编辑。
+
不会改变(只是每个角有一个),但您可以根据最大宽度计算所需的空格和
-
字符。