如何在字符串中添加元素

时间:2019-08-05 09:47:04

标签: python string

如何在字符串中添加一些元素?我写了这段代码,但它给了我这个错误:

  

“ frase2 [i] + = frase [i]

     

IndexError:字符串索引超出范围”

我的代码是:

def copia(frase):
    i = 0
    while i < len(frase):
        frase2 = ""
        if (frase[i] >= 'a' and frase[i] <='z') or (frase[i] >= 'A' and frase[i] <= 'Z'):
            frase2[i] += frase[i]
        else:
            frase2[i] += " "
        i += 1
    return frase2


frase = getString("Inserisci frase: ")


print(copia(frase))

我该如何解决?

3 个答案:

答案 0 :(得分:1)

您的代码存在两个 问题。首先,正如已经指出的那样,frase2[i] +=必须为frase2 += ...,因为frase2[i]还不存在。您要整体附加到字符串,而不是附加到特定字符。其次,在循环的每次迭代中设置frase2 = ""。在循环开始之前将那条线移动!

接下来,您可以通过直接迭代字符,使用for循环而不是while并使用比较链接代替那些复杂的and和{{1} }语句:

or

或者您甚至可以使用str.isalpha(不完全相同,但可能更像您真正想要的,例如还允许带有重音符号的字符),使用三元def copia(frase): frase2 = "" for c in frase: if 'a' <= c <= 'z' or 'A' <= c <= 'Z': frase2 += c else: frase2 += " " return frase2 并将循环移动到str.join中的生成器表达式:

a if c else b

答案 1 :(得分:0)

尝试使用frase2 += frase[i];

答案 2 :(得分:0)

这是示例如何添加字符串。 string append

frase2[i]也应该是frase2,因为它只是一个字符串而不是数组

相关问题