我制作了一个程序,将文本翻译成二进制代码,但它真的很乱。这是我的代码:
def converter():
print("message:")
inputMsg = input()
msg = ''
for letter in inputMsg:
if letter == 'a':
msg = msg + '01100001'
elif letter == 'b':
msg = msg + '01100010'
elif letter == 'c':
msg = msg + '01100011'
elif letter == 'd':
msg = msg + '01100100'
elif letter == 'e':
msg = msg + '01100101'
elif letter == 'f':
msg = msg + '01100110'
elif letter == 'g':
msg = msg + '011000111'
elif letter == 'h':
msg = msg + '01101000'
elif letter == 'i':
msg = msg + '01101001'
elif letter == 'j':
msg = msg + '01101010'
elif letter == 'k':
msg = msg + '01101011'
elif letter == 'l':
msg = msg + '01101100'
elif letter == 'm':
msg = msg + '01101101'
elif letter == 'n':
msg = msg + '01101110'
elif letter == 'o':
msg = msg + '01101111'
elif letter == 'p':
msg = msg + '01110000'
elif letter == 'q':
msg = msg + '01110001'
elif letter == 'r':
msg = msg + '01100010'
elif letter == 's':
msg = msg + '01110011'
elif letter == 't':
msg = msg + '01110100'
elif letter == 'u':
msg = msg + '01110101'
elif letter == 'v':
msg = msg + '01110110'
elif letter == 'w':
msg = msg + '01110111'
elif letter == 'x':
msg = msg + '01111000'
elif letter == 'y':
msg = msg + '01111001'
elif letter == 'z':
msg = msg + '01111010'
elif letter == 'A':
msg = msg + '01000001'
elif letter == 'B':
msg = msg + '01000010'
elif letter == 'C':
msg = msg + '01000011'
elif letter == 'D':
msg = msg + '01000100'
elif letter == 'E':
msg = msg + '01000101'
elif letter == 'F':
msg = msg + '01000110'
elif letter == 'G':
msg = msg + '01000111'
elif letter == 'H':
msg = msg + '01001000'
elif letter == 'I':
msg = msg + '01001001'
elif letter == 'J':
msg = msg + '01001010'
elif letter == 'K':
msg = msg + '01001011'
elif letter == 'L':
msg = msg + '01001100'
elif letter == 'M':
msg = msg + '01001101'
elif letter == 'N':
msg = msg + '01001110'
elif letter == 'O':
msg = msg + '01001111'
elif letter == 'P':
msg = msg + '01010000'
elif letter == 'Q':
msg = msg + '01010001'
elif letter == 'R':
msg = msg + '01000010'
elif letter == 'S':
msg = msg + '01010011'
elif letter == 'T':
msg = msg + '01010100'
elif letter == 'U':
msg = msg + '01010101'
elif letter == 'V':
msg = msg + '01010110'
elif letter == 'W':
msg = msg + '01010111'
elif letter == 'X':
msg = msg + '01011000'
elif letter == 'Y':
msg = msg + '01011001'
elif letter == 'Z':
msg = msg + '01011010'
elif letter == ' ':
msg = msg + '00100000'
print('\n',msg,'\n')
print('do again? (y/n)')
yn()
def yn():
yn = input()
if yn == 'y':
converter()
elif yn == 'n':
pass
else:
yn()
converter()
我的输出没问题,但是你看到我的每个字母都有if / else。还有其他方法可以清洁并提高效率吗?