NameError:未定义名称(*)

时间:2019-05-11 19:01:13

标签: nameerror

我正在做应该做Twist加密的家庭作业,但是我一次又一次遇到相同的错误,我只知道一些C和VHL,但是我需要在python中完成

为什么会这样? “ NameError:名称'cifradocodigo'未定义”

出于某种原因,我也无法正确将文本固定为ASCII,即使我已尽力将其下划线(按教授的要求)也应映射为0而不是-1

# Criptografia Twist
def cifra(codigoplano, k): #recebe codigo a ser cifrado e chave
    n = len(codigoplano)    
    for i in range(n):
        j=mod(int(k)*i,n)           
        cifradocodigo[i]= str(mod(int(codigoplano[j])-i,28))

def decifra(cifradocodigo, k): #recebe codigo cifrado e chave
    n= len(cifradocodigo)
    for i in range(n):
        j=mod(int(k)*i,n)
        codigoplano[j]=str(mod(int(cifradocodigo[i])+i,28))


def convercaoIntChar (texto): #converte texto para string de numeros
    for x in texto:
        if x==0:
            x="_"
        else:
            x=chr(x+97)
    return texto

def convercaoCharInt (texto): #converte string de numeros em texto
    for x in texto:
        if x=="_": 
            x=0
        else:
            x=ord(x)-97
    return texto

def mod (n,m): #devolve o módulo e corrigido para negativos
    a=n%m
    if a<0 :
        a+=m        
    return a 

def convercaoIntChar (texto): #converte list de numeros para string de texto
    if 0 in texto:  
        texto.replace(0,-1)
    novotexto = [ chr(x+96) for x in texto] 
    return novotexto

def convercaoCharInt (texto): #converte string de texto para list de numeros
    if "_" in texto:
        texto.replace("_","`") 
    novotexto = [ord(x)-96 for x in texto] 
    return novotexto



modo=input("Digite 0 para codificar e 1 para decodificar: ")
chave=input("Digite a chave: ")
mensagem=input("Digite a mensagem: ")

if modo=='0':
    textoplano=mensagem
    codigoplano=convercaoCharInt(textoplano)
    cifradocodigo=cifra(codigoplano, chave)
    textocifrado=convercaoIntChar(cifradocodigo)
    print("Frase final: " + textocifrado)
if modo=='1':
    textocifrado=mensagem
    cifradocodigo=convercaoCharInt(textocifrado)
    codigoplano=decifra(cifradocodigo, chave)
    textoplano=convercaoIntChar(codigoplano)
    print("Frase final: " + textoplano)

0 个答案:

没有答案