如何修复自我创建模块不起作用

时间:2019-04-18 01:38:07

标签: python-3.x module

我的自制模块没有返回预期的结果(我想输入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,依此类推),然后返回翻译成数字的短语。 (我没有输入错误)

为了测试,我估算出“你好,我是山姆”,我回来了 ['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 :(得分:0)

我正在使用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