我应该定义一个函数pad_with_n_chars(s, n, c)
string's',整数'n'和字符'c'并返回
一个由's'组成的字符串,用'c'填充以创建一个
字符串,长度为'n'的居中's'。例如,
pad_with_n_chars(”dog”, 5, ”x”)
应该返回
字符串“xdogx
”。
答案 0 :(得分:48)
使用Python2.6或更高版本,无需定义自己的功能;字符串format方法可以为您完成所有这些:
In [18]: '{s:{c}^{n}}'.format(s='dog',n=5,c='x')
Out[18]: 'xdogx'
答案 1 :(得分:13)
看起来你只是在寻找指针,而不是一个完整的解决方案。所以这是一个:
你可以在python中加倍字符串:
>>> "A" * 4 'AAAA'
此外,我会使用更好的名称,而不是 s 我会使用 text ,这更清晰。即使你现在的教授(我想你在大学里学习Python)也会使用这些可怕的缩写。
答案 2 :(得分:11)
是的,只需使用ljust或rjust左对齐(右侧对齐)和右对齐(左侧对齐)任意给定的字符。
例如......制作' 111'用' x'填充的5位数字符串
在Python3.6中:
>>> '111'.ljust(5, 'x')
111xx
>>> '111'.rjust(5, 'x')
xx111
答案 3 :(得分:2)
print '=' * 60
header = lambda x: '%s%s%s' % ('=' * (abs(int(len(x)) - 60) / 2 ),x,'=' * (abs(int(len(x)) - 60) / 2 ) )
print header("Bayors")
答案 4 :(得分:1)
def pad_with_n_chars(s, n, c):
r=n - len(s)
if r%2==0:
pad=r/2*c
return pad + s + pad
else:
print "what to do if odd ? "
#return 1
print pad_with_n_chars("doggy",9,"y")
或者,当你不再上学时。
>>> "dog".center(5,"x")
'xdogx'
答案 5 :(得分:-1)
在Python 3.x中,有字符串方法:ljust
,rjust
和center
。
我创建了一个函数:
def header(txt: str, width=45, filler='-', align='c'):
assert align in 'lcr'
return {'l': txt.ljust, 'c': txt.center, 'r': txt.rjust}[align](width, filler)
print(header("Hello World"))
print(header("Hello World", align='l'))
print(header("Hello World", align='r'))
[输出]:
-----------------Hello World-----------------
Hello World----------------------------------
----------------------------------Hello World