我正在制作一个简单的程序,用于使用Ceasar的密码翻译文本。这是我的代码。
alphabet = ["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"]
text = "hello how are you"
text = text.split(" ")
new_text_array = []
key = 3
for w in range(len(text)):
new_word_array = []
word = list(text[w])
for i in range(len(word)):
if word[i] in alphabet:
new_index = alphabet.index(word[i]) + key
if new_index > 25:
new_index -= 26
new_word_array += alphabet[new_index]
new_word = ''.join(new_word_array)
print(new_word)
new_text_array += new_word
print(new_text_array)
new_text = ' '.join(new_text_array)
print(new_text)
当我运行代码时,在第20行,它正确地将加密的单词打印为字符串,但是在第21行,我在向数组添加单词,它将每个字母添加为数组中的单个项而不是添加整个字。我还是陌生的新手,我缺少什么?请帮忙。对不起我的英文,希望你能理解我想说的话。
答案 0 :(得分:3)
您需要使用new_text_array.append(new_word)
。
在new_text_array += new_word
+=
意味着您要将第二个数组的所有元素添加到第一个数组,因此Python迭代new_word
,因为字符串也可以迭代new_word[x]
,并将其所有元素(此处的字母)添加为单独的元素。
此处的另一个选项是new_text_array += [new_word]
,您只需将new_word
作为唯一元素放入数组中