Program gives error but doesn't say where the error is. - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Program gives error but doesn't say where the error is. (/thread-16655.html) |
Program gives error but doesn't say where the error is. - FWendeburg - Mar-08-2019 Hi, i'm making an encryption algorithm but when I test it it gives me a strange error which i can't correct because it doesn't say where. I only have the encryption function for now. The code: """A funciton to encrypt a given text.""" from random import randint class w_encryption(): """A class with a method to encrypt text and a method to decrypt text.""" def __init__(self, text): """Declares the variables used within the methods.""" self.text = text self.encrypted = [] self.return_encrypted = '' def _encrypt_(self): """Encrypts a text.""" for character in self.text: # Encrypts lowercase letters. if character == 'a': echar = randint(1, 50) self.encrypted.append(echar) elif character == 'b': echar = randint(300, 400) self.encrypted.append(echar) elif character == 'c': echar = randint(100, 150) self.encrypted.append(echar) elif character == 'd': echar = randint(51, 99) self.encrypted.append(echar) elif character == 'e': echar = randint(500, 550) self.encrypted.append(echar) elif character == 'f': echar = randint(700, 729) self.encrypted.append(echar) elif character == 'g': echar = randint(799, 830) self.encrypted.append(echar) elif character == 'h': echar = randint(180, 200) self.encrypted.append(echar) elif character == 'i': echar = randint(1000, 1100) self.encrypted.append(echar) elif character == 'j': echar = randint(1150, 1160) self.encrypted.append(echar) elif character == 'k': echar = randint(1212, 1221) self.encrypted.append(echar) elif character == 'l': echar = randint(1340, 1560) self.encrypted.append(echar) elif character == 'm': echar = randint(3000, 3002) self.encrypted.append(echar) elif character == 'n': echar = randint(4020, 4050) self.encrypted.append(echar) elif character == 'o': echar = randint(4130, 4340) self.encrypted.append(echar) elif character == 'p': echar = randint(6000, 6100) self.encrypted.append(echar) elif character == 'q': echar = randint(6120, 6130) self.encrypted.append(echar) elif character == 'r': echar = randint(8020, 8100) self.encrypted.append(echar) elif character == 's': echar = randint(8200, 8340) self.encrypted.append(echar) elif character == 't': echar = randint(9200, 9222) self.encrypted.append(echar) elif character == 'u': echar = randint(9223, 9300) self.encrypted.append(echar) elif character == 'v': echar = randint(9500, 9700) self.encrypted.append(echar) elif character == 'w': echar = randint(9701, 9720) self.encrypted.append(echar) elif character == 'x': echar = randint(9800, 9820) self.encrypted.append(echar) elif character == 'y': echar = randint(9888, 9900) self.encrypted.append(echar) elif character == 'z': echar = randint(9901, 9999) self.encrypted.append(echar) # Encrypts special characters. elif character == ' ': echar = randint(10000, 10100) self.encrypted.append(echar) elif character == '!': echar = randint(10150, 10300) self.encrypted.append(echar) elif character == '"': echar = randint(10350, 10423) self.encrypted.append(echar) elif character == '#': echar = randint(10424, 10499) self.encrypted.append(echar) elif character == '$': echar = randint(10500, 10505) self.encrypted.append(echar) elif character == '%': echar = randint(10510, 10600) self.encrypted.append(echar) elif character == '&': echar = randint(10602, 10700) self.encrypted.append(echar) elif character == "'": echar = randint(10800, 10900) self.encrypted.append(echar) elif character == '(': echar = randint(10904, 10912) self.encrypted.append(echar) elif character == ')': echar = randint(10999, 11020) self.encrypted.append(echar) elif character == '*': echar = randint(11050, 11111) self.encrypted.append(echar) elif character == '+': echar = randint(11112, 11540) self.encrypted.append(echar) elif character == ',': echar = randint(11600, 11620) self.encrypted.append(echar) elif character == '-': echar = randint(11621, 11630) self.encrypted.append(echar) elif character == '.': echar = randint(11700, 11809) self.encrypted.append(echar) elif character == '/': echar = randint(11890, 11925) self.encrypted.append(echar) elif character == ':': echar = randint(11930, 12000) self.encrypted.append(echar) elif character == ';': echar = randint(12400, 12434) self.encrypted.append(echar) elif character == '<': echar = randint(12456, 12479) self.encrypted.append(echar) elif character == '=': echar = randint(12490, 12556) self.encrypted.append(echar) elif character == '>': echar = randint(12587, 12600) self.encrypted.append(echar) elif character == '?': echar = randint(12674, 12699) self.encrypted.append(echar) elif character == '@': echar = randint(12805, 12999) self.encrypted.append(echar) elif character == '[': echar = randint(13000, 13123) self.encrypted.append(echar) elif character == '': echar = randint(13230, 13240) self.encrypted.append(echar) elif character == ']': echar = randint(13260, 13300) self.encrypted.append(echar) elif character == '^': echar = randint(13307, 13367) self.encrypted.append(echar) elif character == '_': echar = randint(13400, 13500) self.encrypted.append(echar) elif character == '`': echar = randint(13600, 13611) self.encrypted.append(echar) elif character == '{': echar = randint(13705, 13709) self.encrypted.append(echar) elif character == '|': echar = randint(13790, 13845) self.encrypted.append(echar) elif character == '}': echar = randint(13869, 13934) self.encrypted.append(echar) elif character == '~': echar = randint(13950, 14000) self.encrypted.append(echar) # Encrypt upper-case letters. elif character == 'A': echar = randint(14005, 14103) self.encrypted.append(echar) elif character == 'B': echar = randint(14134, 14189) self.encrypted.append(echar) elif character == 'C': echar = randint(14200, 14222) self.encrypted.append(echar) elif character == 'D': echar = randint(14333, 14359) self.encrypted.append(echar) elif character == 'E': echar = randint(14364, 14400) self.encrypted.append(echar) elif character == 'F': echar = randint(14401, 14444) self.encrypted.append(echar) elif character == 'G': echar = randint(14500, 14700) self.encrypted.append(echar) elif character == 'H': echar = randint(14766, 14888) self.encrypted.append(echar) elif character == 'I': echar = randint(14900, 14950) self.encrypted.append(echar) elif character == 'J': echar = randint(14956, 15000) self.encrypted.append(echar) elif character == 'K': echar = randint(15030, 15080) self.encrypted.append(echar) elif character == 'L': echar = randint(15100, 15176) self.encrypted.append(echar) elif character == 'M': echar = randint(15200, 15209) self.encrypted.append(echar) elif character == 'N': echar = randint(15243, 15250) self.encrypted.append(echar) elif character == 'O': echar = randint(15286, 15297) self.encrypted.append(echar) elif character == 'P': echar = randint(15300, 15334) self.encrypted.append(echar) elif character == 'Q': echar = randint(15410, 15459) self.encrypted.append(echar) elif character == 'R': echar = randint(15479, 15500) self.encrypted.append(echar) elif character == 'S': echar = randint(15555, 15604) self.encrypted.append(echar) elif character == 'T': echar = randint(15614, 15637) self.encrypted.append(echar) elif character == 'U': echar = randint(15666, 15675) self.encrypted.append(echar) elif character == 'V': echar = randint(15700, 15734) self.encrypted.append(echar) elif character == 'W': echar = randint(15736, 15777) self.encrypted.append(echar) elif character == 'X': echar = randint(15789, 15805) self.encrypted.append(echar) elif character == 'Y': echar = randint(15867, 15900) self.encrypted.append(echar) elif character == 'Z': echar = randint(15937, 16000) self.encrypted.append(echar) else: character = echar self.encrypted.append(echar) for object in self.encrypted: self.return_encrypted += str(object) return self.return_encryptedThe error: Thanks in advance! :D.
RE: Program gives error but doesn't say where the error is. - ichabod801 - Mar-08-2019 You are going to have to be more specific about how you are testing it. It works fine when I run it. That doesn't look like an error, it looks like the repr for an instance of w_encryption. My guess is your test is returning the encryption object when it should be returning the encrypted text. Edit: for example:
RE: Program gives error but doesn't say where the error is. - woooee - Mar-09-2019 You can save yourself a whole lot of lines of code by using a dictionary encr_dict={'a':(1, 50) 'b':(300, 400)} if echar in encr_dict: echar = randint(encr_dict(echar)) self.encrypted.append(echar) ## etc ## replaces if character == 'a': echar = randint(1, 50) self.encrypted.append(echar) elif character == 'b': echar = randint(300, 400) self.encrypted.append(echar)Finally, how are you going to decode it since you don't know which random number was used to encode it? RE: Program gives error but doesn't say where the error is. - FWendeburg - Mar-09-2019 (Mar-08-2019, 09:21 PM)ichabod801 Wrote: You are going to have to be more specific about how you are testing it. It works fine when I run it. That doesn't look like an error, it looks like the repr for an instance of w_encryption. My guess is your test is returning the encryption object when it should be returning the encrypted text. Thanks for your response! I was doing: test = w_encryption('hello') test._encrypt_() print(test)Haha that's why I got "<__main__.w_encryption instance at 0x0000000003988548>" in response. (Mar-09-2019, 01:22 AM)woooee Wrote: You can save yourself a whole lot of lines of code by using a dictionaryencr_dict={'a':(1, 50) 'b':(300, 400)} if echar in encr_dict: echar = randint(encr_dict(echar)) self.encrypted.append(echar) ## etc ## replaces if character == 'a': echar = randint(1, 50) self.encrypted.append(echar) elif character == 'b': echar = randint(300, 400) self.encrypted.append(echar)Finally, how are you going to decode it since you don't know which random number was used to encode it? Thanks for your response! But I already wrote the code for 80+ characters. Haha |