我正在尝试从for循环中的字符串中删除空格。我能够让它在添加空间时工作,但删除不起作用。
这是我的代码:
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'
答案 0 :(得分:5)
字符串不支持减法;应删除哪一个空格?改为使用切片:
vertical = vertical[:-1]
这将通过从除最后一个字符之外的所有字符创建新字符串来删除最后一个字符:
>>> "abcd"[:-1]
'abc'
答案 1 :(得分:1)
您不能将-=
运算符与字符串一起使用。如果您需要从字符串中删除最后一个字符(不一定是空格),请尝试以下操作:
vertical = vertical[:-1]
答案 2 :(得分: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, "*"))