为了清楚起见,我问这个是因为我已经尝试了大约 1.5 个小时,但似乎没有得到任何结果。我没有上编程课或其他任何东西,但今年夏天我有很多空闲时间,我用很多时间从这本书中学习 Python。我想知道我将如何完成这个问题。
该问题要求您创建一个运行“凯撒密码”的程序,该程序将字符的 ascii 数字向下移动您选择的某个键。例如,如果我想写 sourpuss 并选择键 2,程序会吐出全部向下移动 2 的 ascii 字符。所以 s 会变成 u,o 会变成 q(ascii 字母表中的 2 个字符......)。
我可以通过编写这个程序来获得那部分。
def main():
the_word=input("What word would you like to encode? ")
key=eval(input("What is the key? "))
message=""
newlist=str.split(the_word)
the_word1=str.join("",the_word)
for each_letter in the_word1:
addition=ord(each_letter)+key
message=message+chr(addition)
print(message)
main()
运行这个程序,你会得到以下信息:
What word would you like to encode? sourpuss
What is the key? 2
uqwtrwuu
现在,下一个问题是,如果您将密钥添加到 ascii 数字并导致数字高于 128,则会出现问题。它要求您创建一个实现系统的程序,如果数字高于 128,则字母表会重置,你会回到 0 的 ascii 值。
我试图做的是这样的:
if addition>128:
addition=addition-128
当我这样做后运行程序时,它不起作用,只是返回了一个空格而不是正确的字符。有任何想法吗?