删除'中的元组列表的最后一个字符。环?

时间:2017-07-11 02:55:28

标签: python

for start_index in range(0, len(bravo_uncode_message),q):
    new_list.extend(bravo_uncode_message[start_index:start_index + q])
    new_list.append('0')

我无法删除我附加到我的元组列表的最后一个0我已经尝试new_list.pop()new_list[:-1]并且它可以工作但是它还删除了我有的64个字符串字符串数是128。

import binascii

response=raw_input("Decrypt a message or encrypt a message? D/E : ")
if response== "E":
    message_to_encrypt=raw_input("Introduce message to encrypt: ")
    key= raw_input("Insert key:")
    abc=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    if any(word in key for word in abc):
        print 'Not a valid key...'
    elif len(key)!= 7:
        print 'Invalid key'
    else:
        key=key*len(message_to_encrypt)
        binary_message = bin(int(binascii.hexlify(message_to_encrypt), 16))
        print binary_message
        binary_message= list(binary_message)
        del binary_message[0]
        print binary_message
        del binary_message[0]
        recovery_number = binary_message[0]
        print binary_message
        del binary_message[8 - 1::8]
        print binary_message
        binary_message = ''.join(map(str,binary_message))
        print binary_message
        print key
        a = binary_message
        b = key
        xored_message= int(a,2) ^ int(b,2)
        print bin(xored_message)[2:].zfill(len(a))
        print message_to_encrypt
elif response== "D":
    encrypted_message = raw_input("Introduce message to decrypt: ")
    beta_uncode_message = [tuple(map(int, format(i, '07b'))) for i in range(128)]
    g=len(encrypted_message)/7
    n=0
    for i in beta_uncode_message:
        n=n+1
        if n<129:
            alpha_uncode_message=beta_uncode_message[n-1]*g
            x=tuple(map(str,alpha_uncode_message))
            alpha_uncode_message=x
            a=encrypted_message
            b=alpha_uncode_message
            b=''.join(map(str,b))
            charlie_uncode_message = int(a, 2) ^ int(b, 2)
            bravo_uncode_message=bin(charlie_uncode_message)[2:].zfill(len(a))
            new_list = []
            q = 7
            for start_index in range(0, len(bravo_uncode_message),q):
                new_list.extend(bravo_uncode_message[start_index:start_index + q])
            new_list.append('0')
            bravo_uncode_message = new_list
            bravo_uncode_message = ''.join(map(str, bravo_uncode_message))
            binary_axis = '0b'
            bravo_uncode_message = binary_axis + bravo_uncode_message
            print bravo_uncode_message
            k = int(bravo_uncode_message, 2)
            uncode_message = binascii.unhexlify('%x' % k)
            print uncode_message
            if n>129:
                break
        else:
            break

以上是我的代码。第一部分是我在使用new_list.pop()new_list[:-1]时遇到问题 - bravo_uncode_message丢失了64个字符串。

1 个答案:

答案 0 :(得分:0)

更新:

将二进制字符串转换为int:

new_list = int(new_list, 2);

然后运行new_list[:-1]

然后,将new_list转换回二进制文件:

new_list = bin(new_list)

我还没试过这段代码,我希望它有效。