Python自动边框问题

时间:2017-06-29 23:11:55

标签: python

我正在尝试围绕单词或某些语句的字符创建顶部和底部边框。我理解如何通过代码手动完成它,但我不知道如何创建一个函数,在这个函数中它会自动边框而不输入字符数。

离。 输入:

>>> Border("StackOverFlow")

期望的输出:

=============
StackOverFlow
=============

4 个答案:

答案 0 :(得分:2)

def borderize(string):
    return '{0}\n{1}\n{0}'.format('='*len(string), string)

print borderize('strackoverflow')

答案 1 :(得分:0)

def Border(content):
    print("="*len(content) + "\n" + content + "\n" + "="*len(content))

在python中,*可以是乘法,但它也可以是重复,如此处所示。 "="*10表示重复字符"="十次。

答案 2 :(得分:0)

这里有一些代码可以清理它。

def Border(text):
    # First border,
    length = len(text)
    print('='*length)
    # Now for the text,
    print(text)
    # Second border,
    print('='*length)

您甚至可以添加更多装饰:

def Border(text):
    text = '* ' + text + ' *'
    length = len(text)
    print('='*length)
    print(text)
    print('='*length)

为什么会这样:

我们首先得到字符串length = len(text)的长度。通过这样做,我们可以有效地获得边界应该有多长。

然后我们可以使用'='*length打印边框,这会打印出一个' ='乘以length

Python可以使用乘法字符串作为模式,例如 '123'*3 -> 123123123。在我们的例子中,我们只想将一个字符相乘,所以:'='*10 -> ==========

答案 3 :(得分:-1)

def border(a):
    return '='*len(a) + '\n' + a + '\n' + '='*len(a)


>>> print(border('StackOverFlow'))

=============
StackOverFlow
=============