如何在字符串中添加元素

2024-10-01 17:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

"frase2[i] += frase[i]

IndexError: string index out of range"

我的代码是:

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))

我怎样才能解决这个问题?你知道吗


Tags: andof字符串代码元素stringindexdef
3条回答

尝试使用frase2 += frase[i]

下面是如何添加字符串的示例。string append

而且frase2[i]假定为frase2,因为它只是一个字符串而不是数组

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

接下来,您可以通过直接迭代字符来改进代码,使用for循环代替while,使用比较链代替那些复杂的andor语句:

def copia(frase):
    frase2 = ""
    for c in frase:
        if 'a' <= c <= 'z' or 'A' <= c <= 'Z':
            frase2 += c
        else:
            frase2 += " "
    return frase2

或者您甚至可以使用^{}(不完全相同,但可能更像您真正想要的,例如,还允许重音字符),使用三元a if c else b,并将循环移动到^{}中的生成器表达式中:

def copia(frase):
    return ''.join(c if c.isalpha() else " " for c in frase)

相关问题 更多 >

    热门问题