как исправить сам создать модуль не работает - PullRequest
1 голос
/ 18 апреля 2019

Мой самодельный модуль не возвращает ожидаемый результат (я хочу ввести ABC и получить 123, но он этого не делает)

Я делаю это, чтобы узнать, как это сделать, и поэтому яможет сделать мой код чище. (Я пытаюсь сделать очень сложный кодировщик сообщений, и это мой первый шаг)

    def counter(key):
    length = len(key)
    counting = 0
    word = []
    try:
        while length != counting:
            if key[counting] == 'A' or 'a' :
                word += '1'
                counting += 1
            if key[counting] == 'B' or 'b' :
                word += '2'
                counting += 1
            if key[counting] == 'C' or 'c' :
                word += '3'
                counting += 1
            if key[counting] == 'D' or 'd' :
                word += '4'
                counting += 1
            if key[counting] == 'E' or 'e' :
                word += '5'
                counting += 1
            if key[counting] == 'F' or 'f' :
                word += '6'
                counting += 1
            if key[counting] == 'G' or 'g' :
                word += '7'
                counting += 1
            if key[counting] == 'H' or 'h' :
                word += '8'
                counting += 1
            if key[counting] == 'I' or 'i' :
                word += '9'
                counting += 1
            if key[counting] == 'J' or 'j' :
                word += '10'
                counting += 1
            if key[counting] == 'K' or 'k' :
                word += '11'
                counting += 1
            if key[counting] == 'L' or 'l' :
                word += '12'
                counting += 1
            if key[counting] == 'M' or 'm' :
                word += '13'
                counting += 1
            if key[counting] == 'N' or 'n' :
                word += '14'
                counting += 1
            if key[counting] == 'O' or 'o' :
                word += '15'
                counting += 1
            if key[counting] == 'P' or 'p' :
                word += '16'
                counting += 1
            if key[counting] == 'Q' or 'q' :
                word += '17'
                counting += 1
            if key[counting] == 'R' or 'r' :
                word += '18'
                counting += 1
            if key[counting] == 'S' or 's' :
                word += '19'
                counting += 1
            if key[counting] == 'T' or 't' :
                word += '20'
                counting += 1
            if key[counting] == 'U' or 'u' :
                word += '21'
                counting += 1
            if key[counting] == 'V' or 'v' :
                word += '22'
                counting += 1
            if key[counting] == 'W' or 'w' :
                word += '23'
                counting += 1
            if key[counting] == 'X' or 'x' :
                word += '24'
                counting += 1
            if key[counting] == 'Y' or 'y' :
                word += '25'
                counting += 1
            if key[counting] == 'Z' or 'z' :
                word += '26'
                counting += 1
            if key[counting] == ' ' :
                word += '#'
                counting += 1
    finally:
        return word

Я хочу, чтобы этот модуль позволял вам вводить любую фразу и преобразовывать буквы в цифры(A = 1, B = 2, C = 3 и т. Д.) И вернуть фразу обратно переведенной в числа.(Я не импортирую неправильно)

Для проверки я вменял «Hello I am Sam» и получил обратно ['1', '2', '3', '4', '5', '6',' 7 ',' 8 ',' 9 ',' 1 ',' 0 ',' 1 ',' 1 ',' 1 ',' 2 ',' 1 ',' 3 ',' 1 ',«4»] Это явно не правильно, так в чем же проблема.Вот так выглядит мой импорт

import random
from h import counter
key = "Hello I am Sam"
keyascii = counter(key)
print(key)
print(keyascii)

1 Ответ

0 голосов
/ 18 апреля 2019

Я использую ord , чтобы получить целочисленное представление, и вычитая его с 64, чтобы получить целочисленный эквивалент, указанный в вашем коде.
Я конвертирую каждый символ в верхний регистр, так как вы хотите, чтобы и A, и a были равны 1, B и b были равны 2 и так далее. Я добавляю символ пробела, как он есть

def counter(s):

    result = ''
    for c in s:
        if c != ' ':
            result += str(ord(c.upper())-64)
        else:
            result += ' '
    return result

print(counter('ABC'))
print(counter('Hello I am Sam'))
#123
#85121215 9 113 19113
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...