python - 密码学:在 python 中加密
问题描述
问题陈述:每个大写字母都向左移动,例如,如果字母 D 向左移动 3,它将变为 A,E 将变为 B,依此类推。
我正确地得到了前两个测试用例,但我被困在第三个带有井号的测试用例上。
我的试用:
sh = int(input())
s = input()
n = ""
for char in s:
val = ord(char)-sh
if char != " ":
if 65 <= val <= 90:
n += chr(val)
else:
if val < 65:
if '0' <= char <= '9':
n += char
else:
n += chr(90 - (65 - val - 1))
else:
n += char
print(n)
测试用例 1:
(in1)>> 3
(in2)>> H3LL0 W0RLD
(out)>> E3II0 T0OIA
测试用例 2:
(in1)>> 6
(in2)>> THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
(out)>> NBY KOCWE VLIQH ZIR DOGJM IPYL NBY FUTS XIA
测试用例 3:
(input_num_1)>> 2
(input_num_2)>> H4IGDFDNO£PJNHVDKHZPDOPG2
(ExpectedOut)>> F4GEBDBLM\-62\-93NHLFTBIFXNBMNE2
(My_output_.)>> F4GEBDBLMNHLFTBIFXNBMNE2
非常感谢您的帮助和审查此内容的时间。谢谢你。
编辑:为了更加清晰,我在预期输出下添加了我的代码产生的输出,具体来说,如何/为什么£
映射到\-62\-93
?
解决方案
无法解决一个好的凯撒密码问题。你在正确的轨道上,但我会使用对角色的内置检查来快速决定如何处理它。
sh = int(input())
s = input()
n = ""
for char in s:
val = ord(char)-sh
if char.isupper() and char.isalpha():
if 65 <= val <= 90:
n += chr(val)
else:
n += chr(90 - (65 - val - 1))
else:
n += char
print(n)
推荐阅读
- ssh - ssh:连接到主机 example.com 端口 22:权限被拒绝
- javascript - 如何从 JavaScript 读取 SharePoint 列表?
- c - 使用递归函数反转字符串的概念
- google-sheets - 这个公式的间接版本是什么?
- java - 使用 UTF8 编译 JAR
- reactjs - 如何更改道具 ReactJs
- windows - 启用记录到批处理文件命令
- wordpress - WP Query 将今天的日期与自定义字段日期进行比较以显示今天的生日
- android - 如何阻止 RecyclerView 项目无序显示
- hyperledger-fabric - Python Fabric SDK,CA注册用户