Python 有人能帮我解决ASCII部分吗

Python 有人能帮我解决ASCII部分吗,python,encryption,ascii,Python,Encryption,Ascii,我的任务是对编码进行加密和解密,并创建一个按钮或一个将退出程序的单词。现在,我已经想出了如何做到这一点,但现在我必须使用ASCII,我需要一些帮助。。。这是我的加密、解密和退出代码。有人能帮我解决ASCII部分吗 welcome = input("Hello there...") letters = ("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w

我的任务是对编码进行加密和解密,并创建一个按钮或一个将退出程序的单词。现在,我已经想出了如何做到这一点,但现在我必须使用ASCII,我需要一些帮助。。。这是我的加密、解密和退出代码。有人能帮我解决ASCII部分吗

    welcome = input("Hello there...")
    letters = ("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")

    numberShift = int(input("How much do you wish to shift the letters? "))
    phrase = input("Enter a phrase to be encrypted: ")
    newPhrase = ""
    for l in phrase:
    if l in letters:
    pos = letters.index(l) + numberShift
    if pos > 25:
        pos = pos - 26
    newPhrase += letters[pos]
else:
    newPhrase += " "
    print(newPhrase)

    numberShift = int(input("How many times has the code you want to decrypt been shifted? "))
    phrase = input("Enter a phrase to be decrypted: ")
    newPhrase = ""
    for l in phrase:
if l in letters:
    pos = letters.index(l) - numberShift
    if pos > 25:
        pos = pos - 26
    newPhrase += letters[pos]
else:
    newPhrase += " "
    print(newPhrase)

exit1 = input("Do you want to exit?")

if 'yes' in exit1:
   exit()

这是您的代码的修复版本。正确的缩进在Python中非常重要,因为这是将代码分组到块中的方式。如果代码缩进错误,Python解释器和阅读程序的人都不能告诉您希望它做什么

我们可以将字母简化为单个字符串,而不是字符串的元组

我所做的主要改变是将字母以外的字符复制到newPhrase,而不移动它们。这意味着空格和标点符号会被复制,但也意味着数字和大写字母也会被复制

我还将你的程序放入一个大循环中,这样你想退出吗?东西是有意义的。否则,程序无论如何都将退出

letters = "abcdefghijklmnopqrstuvwxyz" 

welcome = print("Hello there!")

while True:
    #Encrypt
    numberShift = int(input("How much do you wish to shift the letters? "))
    phrase = input("Enter a phrase to be encrypted: ")
    newPhrase = ""
    for l in phrase:
        #Only change characters that aren't in letters
        if l in letters:
            pos = letters.index(l) + numberShift
            if pos > 25:
                pos = pos - 26
            l = letters[pos]
        newPhrase += l

    print(newPhrase)

    #Decrypt
    numberShift = int(input("How many times has the code you want to decrypt been shifted? "))
    phrase = input("Enter a phrase to be decrypted: ")
    newPhrase = ""
    for l in phrase:
        #Only change characters that aren't in letters
        if l in letters:
            pos = letters.index(l) - numberShift
            if pos > 25:
                pos = pos - 26
            l = letters[pos]
        newPhrase += l

    print(newPhrase)

    if 'yes' in input("Do you want to exit? "):
        break
测试输出

你好! 您希望将字母移位多少?3. 输入一个需要加密的短语:在拉曼查的某个地方,在一个我不想记住名字的地方,不久前有一位绅士,他有一把长矛和一块古老的盾牌放在架子上,养着一匹瘦小的马和一只赛狗。 Vrphzkhhuh lq od pdqfkd,lq d sodfh zkrvh qdph I gr qrw fduh wr UHPPEHU,d jhqwohpdq olyhg qrw或QJ djr,rqh ri wkrvh zkr kdv d odqfh DQFGLHQW VKLHQW rq d vkhoi dqg nhhsv d VNLQB qdj d juhbkrxqg udflqj。 您要解密的代码被移位了多少次?3. 输入要解密的短语:Vrphzkhhuh lq od pdqfkd,lq d sodfh zkrvh qdph I gr qrw fduh wr UHPPEHU,d jhqwohpdq olyhg qrw或QJ djr,rqh ri wkrvh zkr kdv d odqfh dqflhqw VKHOG rq d VKHOG nhhsv d VNLQB qdj dqg d juhbkrxqg UDFLJ。 在拉曼查的某个地方,在一个我不记得名字的地方,不久前住着一位绅士,他有一把长矛和一块古老的盾牌放在架子上,养着一匹瘦瘦的马和一只赛狗。 你想退出吗?对
缩进已关闭,您可能需要修复。你到底有什么问题?@depperm:我不认为缩进有问题。看起来他只是漏掉了if部分的线条。缩进完全搞砸了。如果有相同的缩进,那么后面有for和right。首先修复缩进,很难说它应该做什么:@camconnolly您的代码不是有效的Python。错误的缩进只是一个风格问题——这是一个语法错误。请将generateKey的内容保存到新问题中。