0

我正在尝试在 python 中调整我的文本,以便将输入调整到右侧。我希望输入中的最后一个字符位于第 60 位。因此,我使用了以下脚本:

def adjust_right(s):
    print(' '*60 - len(s)*' '+s)

adjust_right(input())

如果我将其更改-为 a ,则此方法有效+,但情况相反。

我的问题是:为什么这会产生一个错误,当它与 a 完美地工作时+,而不是 a -

答案可能是,如果len(s) > 60,我们得到一个负数的空间?如果是这种情况,我应该如何重写我的代码?

4

3 回答 3

0

我想你的意思是:

print(' '*(60 - len(s))+s)

您正在尝试从另一串空格中减去一串空格。+ 起作用的原因是它连接了字符串。但是 Python 没有字符串减法。

于 2015-03-21T19:32:46.673 回答
0

由于操作顺序,您正在减去字符串,以避免这种情况:

print(s.rjust(60)) # right justify string with length = 60
于 2015-03-21T19:38:11.723 回答
-1

Python没有字符串减法。(这是因为它被认为是“unpythonic” - 大多数像这样的操作都是语法糖/糖浆,程序员可以轻松完成,或者具有执行操作的功能)

你应该使用' '*60.strip(len(s)*' '). 这将len(s)*' '起飞' '*60。如果做不到,它就什么也做不了。

于 2015-03-21T19:37:30.063 回答