Python脚本不起作用

时间:2017-05-05 14:45:01

标签: python

我为自己改变职业生涯但我遇到很多问题的程序编写了这个脚本。假设接受一个字符串并用密钥加密它。不知道从何处开始进行故障排除,因为我是编程新手,所以来这里寻求帮助。也许如果你能指出我的写作方向从哪里开始?

这是我得到的错误,但看起来很好。

$ python temp.py -p "ThisIsATestOfMyCode" -k "testtest"
  File "encrypt.py", line 37
    else:
       ^

这是我的代码。

#!/usr/bin/env python
import sys, argparse

def encrypt(varAble1, varAble2):
    varAble1_size = len(varAble1)/float(len(varAble2))
    if str(varAble1_size).split(".")[1] == "0":
    else:
        while str(varAble1_size).split(".")[1] != "0":
            varAble1 +== "@"
            varAble1_size = len(varAble1)/float(len(varAble2))
    code = []
    varAble1 = list(varAble1)
    varAble2 = list(varAble2))
    multiply_size = int(str((varAble1_size)).spliy(".")[0]) * 8
    while varAble1 != []:
        p_varAble1 = varAble1[0:8]
        p_varAble2 = varAble2[0:8]
        temp_list = []
        for i in xrange(0,8):
            if type(p_varAble2[i]) == type(int):
                new_ct = (ord(chr(p_varAble2[i])) ^ ord(p_varAble1[0]))
            else:
            new_ct = (ord(p_varAble2[i]) ^ ord(p_varAble1[0]))
            code.append(new_ct)
            temp_list.append(new_ct)
            varAble1.pop(0)
            p_varAble1.pop(0)
            varAble2 = temp_list
       varAble2.reverse()
    code.reverse()
    varAble1 = code.reverse()
    code_text = []
    for i in code:
        hex_value = hex(i)
        if len(hex_value) != 4:
            code_text.append("0" + hex(i)[2:])
        else:
            code_text.append(hex(i)[2:])
            varAble2 += i
    code_text = "".join(code_text).upper()
    return code_text

def main():
    parser = argparse.ArgumentParser(description="Encrypt things")
    parser.add_argument("-p", "--var1",help="String to enc",metavar='<pt>', required=True)
    parser.add_argument("-k", "--var2", help="8 length key to encrypt with", metavar='<key>', required=True)
    args = parser.parse_args()
    var1 = args.var1
    var2 = args.var2
    hash = encrypt(var1, var2)
    print "[+] Encrypted using %s [+]\n%s" % (var2, hash)

if __name__ == "__main__":
    main()

2 个答案:

答案 0 :(得分:2)

if str(varAble1_size).split(".")[1] == "0":的块为空,因此您需要在其后添加pass语句。 Keef Baker也正确地发现第37行else:的块没有正确缩进。

答案 1 :(得分:2)

您必须在else之后缩进代码:

else:
    new_ct = (ord(p_varAble2[i]) ^ ord(p_varAble1[0]))

正如安德鲁·库尔帕所指出的那样,

之后
if str(varAble1_size).split(".")[1] == "0":

为空,因此您需要在该块中执行某些操作,或者添加pass语句。

Python不使用括号,而是使用缩进来控制流程。 在您的代码中,Python解释器会看到 else 但没有声明,因此会抛出错误。 在此处查看有关控制流程的更多信息:https://docs.python.org/3/tutorial/controlflow.html