我正在尝试在python中调整我的文本,以便输入被调整到右边。我希望输入中的最后一个字符位于第60位。因此我使用了以下脚本:
def adjust_right(s):
print(' '*60 - len(s)*' '+s)
adjust_right(input())
如果我将-
更改为+
,则会有效,但情况相反。
我的问题是:当它与+
完美匹配而不是-
时,为什么会产生错误?
答案是否可以,如果len(s) > 60
,我们会得到负数量的空格?如果是这种情况,我应该如何重写我的代码?
答案 0 :(得分:0)
我认为你的意思是:
print(' '*(60 - len(s))+s)
您试图从另一个空格字符串中减去一串空格。 +的作用是它连接字符串。但Python并没有字符串减法。
答案 1 :(得分:0)
您需要根据操作顺序减去字符串,以避免这种情况:
print(s.rjust(60)) # right justify string with length = 60
答案 2 :(得分:-1)
Python没有字符串减法。 (这是因为它被认为是“unpythonic” - 大多数像这样的操作都是语法糖/糖浆,可以由程序员轻松完成,或者具有执行操作的功能)
您应该使用' '*60.strip(len(s)*' ')
。这将从len(s)*' '
开始' '*60
。如果它不能,它将不会做任何事情。