Python 第7行:如果我用另一个数字代替26,比如%28,会发生什么?为什么它必须是%26?

Python 第7行:如果我用另一个数字代替26,比如%28,会发生什么?为什么它必须是%26?,python,python-3.x,caesar-cipher,Python,Python 3.x,Caesar Cipher,它不必是26,这样密文将使用(英文)字母字符来表示(英文)字母字符。 如果使用28,密文将使用a…z、“{'、“|”范围中的26个字符来表示小写,使用a…z、“[”、“\”范围中的26个字符来表示大写。这两个范围都有28个字符,但其中26个仅在使用中,因此每个范围将有2个字符的间隔,其位置取决于实际的“键”你可以使用。这是你可以简单尝试的,不会有什么不好的事情发生* (*只要原始文本不包含编码字母表中引入的额外字符,但如果包含,这些字符将在解码后成为字母)行 newchar=(newchar s

它不必是26,这样密文将使用(英文)字母字符来表示(英文)字母字符。
如果使用28,密文将使用a…z、“{'、“|”范围中的26个字符来表示小写,使用a…z、“[”、“\”范围中的26个字符来表示大写。这两个范围都有28个字符,但其中26个仅在使用中,因此每个范围将有2个字符的间隔,其位置取决于实际的“键”你可以使用。这是你可以简单尝试的,不会有什么不好的事情发生*

(*只要原始文本不包含编码字母表中引入的额外字符,但如果包含,这些字符将在解码后成为字母)

newchar=(newchar skey)%26
将字母移位skey值,然后返回模26。
这样做是为了确保返回值始终是英文字母表中的字母。 在ASCII中,它们在65到90的范围内表示为大写字母,在97到122的范围内表示为小写字母(这些值分别在第10行和第6行中移动到0-26的范围)


改变这个数字会增加(或减少)脚本可以使用的字符范围,请参见:

如果我使用另一个数字而不是26,会发生什么情况……我们使用另一个数字,看看会发生什么情况……然后访问并参观,看看要问什么以及如何问。26是字母表中的字母数。如果使用28,则需要使用28个字母的字母表。什么是26在这个上下文中可能是什么意思?即使没有上下文,如果你问我special 26在英语中是什么意思,我也会回答的…PS.它与字母表有关。你可以在这里阅读有关Caesar/shift密码的内容:
def encryption(message,skey):
    encryptedmessage=''
    for character in message:
        if character.isalpha()==True:
            if character==character.lower():
                newchar=ord(character)-97
                newchar=(newchar+skey)%26
                encryptedmessage+= chr(newchar +97)
            else:
                newchar=ord(character)-65
                newchar=(newchar+skey)%26
                encryptedmessage+= chr(newchar +65)
        else:
            encryptedmessage+= character
    return('Your Message is: {:s}'.format(encryptedmessage))

def decryption(message,skey):
    decryptedmessage=''
    for character in message:
        if character.isalpha()==True:
            if character==character.lower():
                newchar=ord(character)-97
                newchar=(newchar-skey)%26
                decryptedmessage+= chr(newchar +97)
            else:
                newchar=ord(character)-65
                newchar=(newchar-skey)%26
                decryptedmessage+= chr(newchar +65)
        else:
            decryptedmessage+= character
    return('Your Message is: {:s}'.format(decryptedmessage))

while True:
    u=str(input("To encrypt a messege enter 'E' or 'e',To dycrypt a message enter 'D' or 'd',To stop the program enter'quit': "))
    if u=='':
        print("")  
    elif (u in 'Ee'):
        Message1=str(input('Please enter your message: '))
        key=int(input('Please enter the shifting key: '))        
        print(encryption(Message1,key))
    elif (u in 'Dd'):
        Message1=str(input('Please enter your message: '))
        key=int(input('Please enter the shifting key: '))        
        print(decryption(Message1,key))        
    elif u=='quit':
        print('Program ended.')
        break;