Python -= 从字符串中去掉空格

0 投票
3 回答
3256 浏览
提问于 2025-04-19 20:42

我正在尝试在一个循环里从字符串中去掉空格。我已经搞定了添加空格的部分,但去掉空格却不行。

这是我的代码:

letterHeight = 10

def nLetter():
    x = 0
    diagonal = ""
    vertical = "          "
    while x < letterHeight:
        print "*"+diagonal+"*"+vertical+"*"
        diagonal += " "
        vertical -= " "
        x += 1

nLetter()

错误信息:TypeError: unsupported operand type(s) for -=: 'str' and 'str'

3 个回答

1

你不能用 -= 这个符号来处理字符串。如果你想从一个字符串中去掉最后一个字符(不一定是空格),可以试试下面的方法:

vertical = vertical[:-1]
2

另外,你可以试试字符串格式化来实现这个功能!

letterHeight = 10

def nLetter():
    diagonal = 1
    vertical = 10
    for _ in range(letterHeight):
        print("*{2:>{0}}{2:>{1}}".format(diagonal, vertical, "*"))
        diagonal += 1
        vertical -= 1

nLetter()

或者稍微好一点的方法:

def nLetter():
    for mod in range(letterHeight):
        print("*{2:>{0}}{2:>{1}}".format(1+mod, 10-mod, "*"))
5

字符串不支持减法;你想去掉哪个空格呢?可以用切片来解决这个问题:

vertical = vertical[:-1]

这样做会通过从所有字符中去掉最后一个字符,来创建一个新的字符串:

>>> "abcd"[:-1]
'abc'

撰写回答