Python 在for循环和if循环中,在循环外打印非字符串列表

Python 在for循环和if循环中,在循环外打印非字符串列表,python,loops,Python,Loops,我把这个列表bravo_uncode_message=[(0000000),(0000001),(0000010),(0000011),…]放在for循环中的if语句中,我无法从这3个循环中得到它,我试过这个命令bravo_uncode_message.extend和bravo_uncode_message.append,但似乎都不起作用 import binascii response=raw_input("Decrypt a message or encrypt a message? D/E

我把这个列表
bravo_uncode_message=[(0000000),(0000001),(0000010),(0000011),…]
放在for循环中的if语句中,我无法从这3个循环中得到它,我试过这个命令
bravo_uncode_message.extend
bravo_uncode_message.append
,但似乎都不起作用

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[:-1]
            bravo_uncode_message = ''.join(map(str, bravo_uncode_message))
            binary_axis = '0b'
            bravo_uncode_message = binary_axis + bravo_uncode_message
            bravo_uncode_message.extend(bravo_uncode_message)
            k = int(bravo_uncode_message, 2)
            uncode_message = binascii.unhexlify('%x' % k)
            print uncode_message
            if n>129:
                break
        else:
            break
    print bravo_uncode_message
导入binascii
响应=原始输入(“解密消息或加密消息?D/E:”)
如果响应==“E”:
message\u to\u encrypt=原始输入(“引入要加密的消息:”)
键=原始输入(“插入键:”)
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']
如有(abc中的关键字对应单词):
打印“不是有效的密钥…”
艾利夫·伦(钥匙)!=7:
打印“无效密钥”
其他:
key=key*len(消息加密)
binary_message=bin(int(binascii.hexlify(message_to_encrypt),16))
打印二进制消息
二进制消息=列表(二进制消息)
del二进制_消息[0]
打印二进制消息
del二进制_消息[0]
恢复\u编号=二进制\u消息[0]
打印二进制消息
delbinary_消息[8-1::8]
打印二进制消息
二进制消息=''.join(映射(str,二进制消息))
打印二进制消息
打印键
a=二进制消息
b=键
xored_message=int(a,2)^int(b,2)
打印箱(xored_消息)[2:].zfill(len(a))
将邮件\u打印到\u加密
elif响应==“D”:
加密消息=原始输入(“引入要解密的消息:”)
beta_uncode_message=[范围(128)内i的元组(map(int,format(i,'07b')))
g=len(加密消息)/7
n=0
对于beta_uncode_消息中的i:
n=n+1
如果n129:
打破
其他:
打破
打印bravo_uncode_信息

我得到的错误是
AttributeError:“str”对象没有属性“extend”

您重新定义了
bravo\u uncode\u message
类型,从
list
str
,然后对其调用了
extend()
extend()
是用于
list
的方法,而不是用于
str

bravo_uncode_message = ''.join(map(str, bravo_uncode_message))
binary_axis = '0b'
bravo_uncode_message = binary_axis + bravo_uncode_message
bravo_uncode_message.extend(bravo_uncode_message)
此外,您还将
b
类型从
tuple
重新定义为
str
,这在将来可能会有问题

b=alpha_uncode_message
b=''.join(map(str,b))

希望这有帮助。欢迎来到StackOverflow。

您的if语句没有任何条件?你没有因此而得到一个错误吗?它有,但我不认为写它是必要的。请发布完整的代码示例。否则代码将无法编译。如果nAnd是
,那么什么是
beta\u beta\u uncode\u消息
?是的,但是我如何才能得到bravo\u uncode\u消息?这就是我试过的方法对不起,我不明白你说的“出去”是什么意思
bravo_uncode_message
是一个
str
而不是一个循环。在循环之外,我可以打印存储在bravo_uncode_message中的数据请允许我解释,我在使用
bravo_uncode_message[:-1]时遇到问题
当我运行代码时,该操作删除了最后一个字符,但也删除了一半的数据,因此我认为如果设法提取列表bravo_uncode_消息,循环将不会与此操作干涉
bravo_uncode_消息[:-1]
我在代码中没有看到
bravo_uncode_消息[:-1]
。它应该返回没有最后一个字符的bravo_uncode_消息。我不确定我是否明白你所说的“删除一半数据”的意思。您是否也在谈论范围(0,len(bravo\u uncode\u消息),q)中开始索引的循环
?如果你能给我举个例子会很有帮助的。