python函数不工作
有人能帮我吗?我试图使每个字符都是“x”。它不起作用了! 我已经创建了一个函数,该函数应该返回xxx。。对于exmaple,如果我将“hello”放在列表中,我希望此函数返回“xxxxx”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
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,你不需要在循环中自己增加它。哇!谢谢,帮了我很多忙!