Кажется, я не могу найти ошибку в этом коде. Я продолжаю получать это как свой выходной журнал.
STDERR
Traceback (most recent call last):
File "main.py", line 18, in <module>
static ("Avoid success at all costs!")
File "main.py", line 10, in static
test.assert_equals(rot13(d),sol(d))
File "/home/codewarrior/solution.py", line 16, in rot13
newkey = (get_keyA(i)+13)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Цель этого кода - активировать Rot13, если в нем есть числовое значение или пробел, он просто оставит его как оригинал.
ABC = {1: "A", 2: "B", 3:"C", 4: "D", 5: "E", 6: "F", 7: "G", 8: "H", 9: "I", 10: "J", 11: "K",
12: "L", 13: "M", 14: "N", 15: "O", 16: "P", 17: "Q", 18: "R", 19: "S",
20: "T", 21: "U", 22: "V", 23: "W", 24: "X", 25: "Y", 26: "Z"}
abc = {1: "a", 2: "b", 3:"c", 4: "d", 5: "e", 6: "f", 7: "g", 8: "h", 9: "i", 10: "j", 11: "k",
12: "l", 13: "m", 14: "n", 15: "o", 16: "p", 17: "q", 18: "r", 19: "s",
20: "t", 21: "u", 22: "v", 23: "w", 24: "x", 25: "y", 26: "z"}
def rot13(message):
string = list(message)
new = ""
for i in string:
if (i.isnumeric() == False):
if (i != " "):
if (i.islower() == False):
newkey = (get_keyA(i)+13)
if (newkey > 26):
newkey -= 26
new += ABC[newkey]
if (i.islower() == True):
newkey = (get_keya(i)+13)
if (newkey > 26):
newkey -= 26
new += abc[newkey]
else:
new += i
else :
new += i
return new
def get_keyA(val):
for key, value in ABC.items():
if val == value:
return key
def get_keya(val):
for key, value in abc.items():
if val == value:
return key
Да, я не использую кодировку. Я хочу попробовать это без использования. Спасибо, что прочитали, и спасибо за помощь!