我正在尝试围绕单词或某些语句的字符创建顶部和底部边框。我理解如何通过代码手动完成它,但我不知道如何创建一个函数,在这个函数中它会自动边框而不输入字符数。
离。 输入:
>>> Border("StackOverFlow")
期望的输出:
=============
StackOverFlow
=============
答案 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
=============