这个问题应该怎么解决?求指导

4.本题根据密码表将密文解密为明文。为了提高数据的安全性,可将数字数据(如银行账号等)加密成字母密文保存,在使用时再解密还原成数值(例如:密文“agKxKaKa”用本程序可解密为20151212)。
本题解密方法可预先约定好一组字母密码存放在元组code密码表中,code[0]~code[9]分别表示数字“0”~“9”对应的密码;输入欲解密的密文(Ciphertext)并回车(输入字母“q”将推出程序),根据密码表转换成明文(Plaintext,码表中无法转换的代码用“?”代替,最后显示在标签上。)运行结果如下:图片说明

图片说明
密码表如下:code=('g','K','a','P','W','x','E','Q','f','t')
请在IDLE环境编写程序实现以上功能。

package com.yysd;

import java.util.Scanner;

public class testmima {

private final static String[] code = {"g","K","a","P","W","x","E","Q","f","t"};

private final static String[] num = {"0","1","2","3","4","5","6","7","8","9"};

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入明文:");
    String codem = sc.nextLine();
    System.out.println(testmima.szTransZm(codem));
    Scanner scc = new Scanner(System.in);
    System.out.println("请输入密文:");
    String numm = scc.nextLine();
    System.out.println(testmima.zmTransSz(numm));
}

/**
 * 加密
 * @param numm
 * @return
 */
public static String szTransZm(String numm) {
    String numtocode = "";
    for(int i = 0;i<numm.length();i++){
        System.out.println(numm.substring(i, i+1));
        numtocode +=  code[Integer.parseInt(numm.substring(i, i+1))];
    }
    return numtocode;
}

/**
 * 解密
 * @param codem
 * @return
 */
public static String zmTransSz(String codem) {
    String numm = "";
    for(int i = 0; i<codem.length();i++) {
        System.out.println(codem.substring(i,i+1));
        int k = -1;
        for(int j =0;j<code.length;j++) {
            if(codem.substring(i,i+1).equals(code[j])) {
                k = j;
            }
        }
        if(k == -1) {
            numm += "?";
        }else {
            numm += k;
        }
    }

    return numm;
}

}

我用java 写的

while True:
    st = input('密文:')
    if st == 'q':
        break
    code = ['g', 'K', 'a', 'P', 'W', 'x', 'E', 'Q', 'f', 't']
    result = ''
    for i in range(len(st)):
        bo = False
        for j in range(len(code)):
            if st[i] == code[j]:
                result = result + str(j)
                bo = True
        if bo == False:
            result = result + '?'

    print(result)
    我随便写了下,你看一下吧