【发布时间】:2017-11-28 19:10:06
【问题描述】:
我已经在 python 中的密码程序上工作了一段时间,用于在线课程。我一直在成功和挫折之间来回走动,最近我以为我已经弄明白了。也就是说,直到我将我得到的输出与课程所说的我实际应该得到的输出进行比较。当我输入“乌鸦在午夜飞!”和“boom”键,我应该回来“Uvs osck rwse bh auebwsih!”但取而代之的是“Tvs dfci tzufg mu auebwsih!”我对我的程序正在做什么感到茫然,并且可以从某人那里再次查看我的程序。不幸的是,我在现实生活中没有一个人可以去哈哈。非常感谢任何帮助。
alphabet = "abcdefghijklmnopqrstuvwxyz"
def alphabet_position(letter):
lower_letter = letter.lower() #Makes any input lowercase.
return alphabet.index(lower_letter) #Returns the position of input as a number.
def vigenere(text,key):
m = len(key)
newList = ""
for i in range(len(text)):
if text[i] in alphabet:
text_position = alphabet_position(text[i])
key_position = alphabet_position(key[i % m])
value = (text_position + key_position) % 26
newList += alphabet[value]
else:
newList += text[i]
return newList
print (vigenere("The crow flies at midnight!", "boom"))
# Should print out Uvs osck rmwse bh auebwsih!
# Actually prints out Tvs dfci tzufg mu auebwsih!
【问题讨论】:
-
你真的应该学习如何使用调试器。这是编程的要求,确实如此。
-
我应该使用哪一个?我在一本启用了开发者模式并安装了 python 的 chrome 书上
-
我不知道 chrome book 但我使用 pycharm IDE。在此之前,我使用 Eclipse IDE 和 pydev 插件。
-
谢谢,我会查一下这两个。我正在学习只使用浏览器内置解释器的初学者课程。
标签: python encryption vigenere