使用 .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
所以我想在这里做三件事。 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} |
添加到
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