keyword = raw_input ("Enter your keyword") *10000
keyword = keyword.lower()
keywordoutput = []
for character in keyword:
number = ord(character)
keywordoutput.append(number)
input1 = raw_input('Write Text: ')
input1 = input1.lower()
output1 = []
for character in input1:
number = ord(character)
output1.append(number)
output2 = [x + y for x, y in zip(output1, keywordoutput)]
print output2
到目前为止,这是我的代码。我正在尝试创建一个程序,使用简单的Vigenere Cypher来加密输入的文本。代码工作得很好,但是我遇到了一个问题,即在返回一串'output2'时使用新代码。
我很容易得到'output2',但是从那里我需要把它变成一个简单的字符串。 例如:[1,2,3,4] 变成(1234)
我试过了,但我似乎无法在我的代码中实现这样的东西。
答案 0 :(得分:2)
首先,您必须将数字转换为文本。
output2 = map(str, output2)
然后您可以使用join
来连接元素。
print "".join(output2)
或者在一行中:
print "".join(map(str, output2))
答案 1 :(得分:0)
一步使用 - > join
:
output2 = ''.join([str(x + y) for x, y in zip(output1, keywordoutput)])
检查:https://docs.python.org/2/library/string.html#string.join
由于该函数需要string
类型,因此您必须隐藏数字结果x + y
。
答案 2 :(得分:0)
试试这个
print ''.join(str(i) for i in output2)