到目前为止我有这样的代码:
def alfabeto_deslocado(deslocamento):
letra_inicial = 97 + deslocamento #1a letra deslocada
alfa_lista_deslo = (list(map(chr, range(letra_inicial, 123)))) #lista deslocada até 'z'
alfa_lista_resto = (list(map(chr, range(97, letra_inicial)))) #resto lista desde 'a'
return alfa_lista_deslo + alfa_lista_resto
def encripta_cadeia(cad, chave):
###Encriptar###
cad_chave = repete_chave(cad, chave) #ok
coluna_linha_tab = alfabeto_deslocado(0)
lista_cad = list(cad)
lista_cad_chave = list(cad_chave)
lista_chave = list(chave)
ind_lista_cad_chave = [i for i, valor in enumerate(lista_cad_chave)]
ind_lista_cad = [i for i, valor in enumerate(lista_cad)]
for letra in range(len(cad)):
indice = alfabeto_deslocado(0).index(letra)
return indice代码尚未完成,但在测试过程中,for循环始终显示错误"builtins.ValueError: 0不在列表“。
for letra in range(len(cad)):
indice = alfabeto_deslocado(0).index(letra)
return indice示例(cad,cad)=encripta_cadeia(“cantor”,“cima”)
alfabeto_deslocado(0)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']发布于 2020-12-10 16:06:11
首先:range(len(cad))提供数字(0,1,2.),而不是cad中的字符。Yo
for letra in cad:您有错误的缩进- return在for-loop中,所以它在第一个元素之后退出这个循环。您必须使用return后循环。
似乎你不知道如何处理许多价值-你应该使用列表。
在循环之前,为在循环中创建的所有值创建空列表。
内部循环将值追加到此列表(而不是print()),
循环之后,您将得到包含所有值的列表--正如您所期望的。
就像这样:
# --- before loop ---
results = []
# --- loop ---
for letra in cad:
indice = alfabeto_deslocado(0).index(letra)
results.append(indice)
# --- after loop ---
#print(results)
return resultshttps://stackoverflow.com/questions/65237521
复制相似问题