使用 .format() 打印不超过定义的空格数且居中的字符串?

Using .format() to print a string that does not exceed a defined number of spaces and is centered?

所以我想在这里做三件事。 1. 获取下面的打印语句为 16 个空格长 2. 剪掉名字两边多余的=号,导致它长于16。 3. 将文本居中,使等量的 = 符号出现在名称的两边

这是我的尝试...

import random

name_list = ['Joe','Phil','Frank','Daniel']
name_choice = random.choice(name_list)
name_string = '======| {0} |======'.format(name_choice)
print('{0:.16}'.format(name_string))

======| Phil |==  # Result
====| Phil |==== # What I want

您可以定义一个函数来 return 您想要的输出:

def heading(text):
    return '{0:=^16}'.format(text)
heading(name_choice)

请注意,如果列表中的其中一个姓名超过 16 个字符,此函数将 return 整个姓名,不带 = 符号。

你应该把print('{0:.16}'.format(name_string))改成print('{0:16}'.format(name_string)),然后就可以了。

| {0} | 添加到 中的格式会产生问题中显示的 OP 所需的输出:

import random

def extra_format(text):
    return '{0:=^16}'.format(text)

name_list = ['Joe','Phil','Frank','Daniel']
name_choice = random.choice(name_list)
print(extra_format('| {0} |'.format(name_choice))) # ====| Phil |==== # What I want