python函数不工作

python函数不工作,python,list,Python,List,有人能帮我吗?我试图使每个字符都是“x”。它不起作用了! 我已经创建了一个函数,该函数应该返回xxx。。对于exmaple,如果我将“hello”放在列表中,我希望此函数返回“xxxxx” def encriptar(lletra): lletra = 'x' return lletra letra = [input("Introduce la cadena: ")] x=0 for x in range(0,len(letra)): letra[x]=encript

有人能帮我吗?我试图使每个字符都是“x”。它不起作用了! 我已经创建了一个函数,该函数应该返回xxx。。对于exmaple,如果我将“hello”放在列表中,我希望此函数返回“xxxxx”

def encriptar(lletra):
    lletra = 'x'
    return lletra

letra = [input("Introduce la cadena: ")]
x=0

for x in range(0,len(letra)):
    letra[x]=encriptar(letra[x])
    print(letra[x])
    x+=1

print(letra)

您不是将用户输入作为字符串进行迭代,而是将用户输入的字符串放入列表并进行迭代

letra = [input("Introduce la cadena: ")]
如果用户键入
hello
,这意味着您最终将
letra
设置为
[“hello”]
。也就是说,一个包含1项的列表,其中该项是一个字符串。因此,您可以将整个字符串传递给
encriptar
,而不是一次传递一个字符

相反,要:

letra = input("Introduce la cadena: ")
然后您将遇到字符串不可变的问题,因此您需要构造一个新字符串,而不是就地更新现有字符串

您可以使用列表理解功能轻松构建字符列表:

new_chars = [
    encriptar(c)
    for c in letra
]
然后从该列表中创建一个新字符串:

letra = "".join(new_chars)

问题是
letra=[input(“improduct la cadena:”)]
并没有返回您期望的结果。您将得到一个单一元素的列表,该元素是一个字符串。无论如何,字符串在Python中是不可变的

一个简单快捷的修复方法是将字符串转换为字符列表:

letra = list(input("Introduce la cadena: "))
因为现在您有了一个可变列表,可以替换其中的每个字符:

for x in range(0,len(letra)):
    letra[x]=encriptar(letra[x])
    print(letra[x])
您只需在打印前加入:

print(''.join(letra))

您有问题或疑问吗?
打印('x'*len(输入(“输入单词”))
。一种可能的实现方法。我不认为这有什么效果,但是for循环处理更新x,你不需要在循环中自己增加它。哇!谢谢,帮了我很多忙!