python - 凯撒 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)
我做了一个加密代码,但输出不显示特殊字符,我希望显示特殊字符而不加密
解决方案
一个粗略的解决方案是替换这个
if char == " " :
chiper += ' '
有了这个
if not char.isalpha():
chiper += char
推荐阅读
- python - 如何使用 Tkinter Listbox 小部件在 Sqlite3 表中获取一行?
- python - 如何在python中以文本格式获取sparql查询的结果
- sql - SQLite:如何查看不是我朋友但与我朋友成为朋友的人
- sql - 错误(14,5):PL/SQL:ORA-00933:创建存储过程时 SQL 命令未正确结束
- javascript - 我应该将 fetch() 与 .then 或 async/await 一起使用
- javascript - 元素加载上的 jQuery 触发器不起作用
- javascript - 有人可以解释这种奇怪的行为(nodejs + mongoose)吗?
- function - 是否可以在 TCL 程序中按名称传递参数?
- javascript - [Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性 'correct_answer'”
- python - 我尝试在 driver.find_elements_by_css_selector 中加载新值,不要用新值更新