Python-=字符串中的空格

Python-=字符串中的空格,python,string,subtraction,Python,String,Subtraction,我试图从for循环中的字符串中删除空格。我能够让它为添加空间而工作,但删除不起作用 这是我的密码: letterHeight = 10 def nLetter(): x = 0 diagonal = "" vertical = " " while x < letterHeight: print "*"+diagonal+"*"+vertical+"*" diagonal += " " ver

我试图从for循环中的字符串中删除空格。我能够让它为添加空间而工作,但删除不起作用

这是我的密码:

letterHeight = 10

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

nLetter()

错误:TypeError:-=:“str”和“str”字符串不支持的操作数类型不支持减法;应该删除哪一个空格?改用切片:

vertical = vertical[:-1]
这将通过从除最后一个字符外的所有字符中创建新字符串来删除最后一个字符:

>>> "abcd"[:-1]
'abc'
不能对字符串使用-=运算符。如果需要从不一定是空格的字符串中删除最后一个字符,请尝试以下操作:

vertical = vertical[:-1]

或者,您可以尝试使用字符串格式来执行此操作

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, "*"))

令人惊叹的工作完美。很高兴知道字符串不支持减法。原因是什么?其他语言的情况是否相同?谢谢。@Nicolas:序列类型列表、元组和字符串都不支持减法,因为它不清楚要删除什么元素。大多数语言都是这样处理序列的;追加很容易,因为这只是在末尾添加元素。