如何在Python中用n个字符填充

46 投票
6 回答
61129 浏览
提问于 2025-04-16 06:00

我需要定义一个函数 pad_with_n_chars(s, n, c),这个函数接收一个字符串's'、一个整数'n'和一个字符'c',然后返回一个新的字符串,这个字符串是将's'用'c'填充到长度为'n',并且's'在中间。例如,pad_with_n_chars(”dog”, 5, ”x”) 应该返回字符串 "xdogx"。

6 个回答

27

看起来你只是想要一些提示,而不是完整的解决方案。那我给你一个:

在Python中,你可以对字符串进行乘法运算:

>>> "A" * 4
'AAAA'

另外,我建议你使用更好的变量名,比如用text代替s,这样会更清楚明了。即使你现在的教授(我猜你是在大学学Python)用这种糟糕的缩写。

52

没错,你可以用 ljust 或 rjust 来处理字符串的对齐问题。ljust 是把字符串左对齐(右边填充),而 rjust 是把字符串右对齐(左边填充),你可以选择任何你想要的字符来填充。

举个例子……如果你想把 '111' 变成一个长度为 5 的字符串,并用 'x' 来填充。

在 Python3.6 中:

>>> '111'.ljust(5, 'x')
111xx

>>> '111'.rjust(5, 'x')
xx111
65

在Python 2.6或更高版本中,你不需要自己定义函数;字符串的format方法可以帮你完成所有这些工作:

In [18]: '{s:{c}^{n}}'.format(s='dog',n=5,c='x')
Out[18]: 'xdogx'

使用f-string的方式是:f'{"dog":x^5}'

撰写回答