【发布时间】:2018-01-29 21:57:26
【问题描述】:
我正在尝试在 Python 中创建一个简单的 Caesar Cipher 函数,该函数根据用户的输入转换字母并在末尾创建一个最终的新字符串。问题是最终的密文仅显示最后一个移位字符,而不是具有所有移位字符的整个字符串,并且例如当字母 z 时,程序不会在字母表的开头重新启动 PS我受过法语教育,所以有些台词可能是法语 这是我的代码:
list=list()
r=0
choix=int(input("Veuillez entrer 1 pour coder ou 2 pour decoder"))
if choix==1 :
cle=int(input("Quelle est votre clé?"))
phrase=input("Quelle est votre phrase? ")
for i in phrase :
r=ord(i)
r=(r+cle)%26
lettre=chr(r)
list.append(lettre)
print(list)
elif choix==2 :
cle=int(input("Quelle est votre clé?"))
phrase=input("Quelle est votre phrase? ")
for i in phrase :
r=ord(i)
r=(r-cle)%26
lettre=chr(r)
list.append(lettre)
print(list)
【问题讨论】:
-
调整使用者
listcomme nom de variable。 En effet, il s'agit d'un nom déjà utilisé comme nom de fonction et de type de données。 -
你是
print(lettre)而不是list进行编码。你正在用你自己的列表覆盖内置的list。list=list.append(lettre)将list设置为None。它应该只是list.append(lettre)。查看欺骗目标。 -
您的代码充满了问题。您需要分解问题并确保一次只做一件事情。
-
虽然您的代码部分是用法语编写的,但 cmets 应该是英语。如果您想用法语交流,请找到一个大声的网站。选择 1:您没有将输出附加到“lettre”,因此您只会得到 list_lettre 中的最后一个。
标签: python caesar-cipher