你好我正在用python编写一个游戏,有一次它将用户的名字放入名称标签中,但是我遇到了一个问题。
e.g。
def name_tag(name):
printf("____________")
printf("|## {} ##|".format(name))
printf("|__________|")
假设它有效
___________
|##Sarah##|
|_________|
对于长度比“Sara”更长或更短的单词,它不起作用
___________
|##Joshua##|
|_________|
这是因为额外/更少的字母会进出边界。有谁知道如何解决这个问题?
答案 0 :(得分:1)
您可以调整顶部和底部线条的长度,如下所示。为了消除一组可能出现的问题,我还将名称的最大长度限制为80.
def name_tag(name):
name_len = min(len(name), 80)
print '-' * (name_len + 8)
print '|## {} ## |'.format(name[:name_len])
print '-' * (name_len + 8)
>>> name_tag('Sarah')
-------------
|## Sarah ## |
-------------
>>> name_tag('JT')
----------
|## JT ## |
----------
>>> name_tag('An improbably long name for an example')
----------------------------------------------
|## An improbably long name for an example ## |
----------------------------------------------
修改:调整上述内容以匹配您发布的代码中的格式:
def name_tag(name):
name_len = min(len(name), 80)
print '_' * (name_len + 8)
print '|## {} ## |'.format(name[:name_len])
print '|{}|'.format('_' * (name_len + 6))