首页 > 解决方案 > 凯撒 Cyper Python

问题描述

def caesar_encript(txt, shift):

chiper = ""
for i in range(len(txt)):
  char = txt[i]
  
  if char == " " :
      chiper += ' '
  elif (char.isupper()):
     chiper += chr((ord(char) + shift - 65) % 26 + 65)
  elif (char.islower()):
     chiper += chr((ord(char) + shift - 97) % 26 + 97)

        
return chiper

def caesar_decript(chiper, shift):
    return caesar_encript(chiper, -shift)
 

msg = 'Random Mesage, WOOOWW!'
cpr = caesar_encript(msg,4) 
txt = caesar_decript(cpr,4)

print('plain text : ', txt)
print('chiper text : ', cpr)

我做了一个加密代码,但输出不显示特殊字符,我希望显示特殊字符而不加密

标签: python

解决方案


一个粗略的解决方案是替换这个

if char == " " :
    chiper += ' '

有了这个

if not char.isalpha():
    chiper += char

推荐阅读