Python实现凯撒密码变种:ASCII码与整数转换及加解密算法

沿途有光
沿途有光
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍Python中利用ord()和chr()函数进行ASCII码与整数转换的方法,并基于此实现凯撒密码的变种算法(ROT13)。通过遍历字符串、判断大小写字母范围并执行位移运算,完成英文字符串的加密处理。文章提供了完整的Python代码示例及输入输出样例,适用于理解字符编码转换与基础加密逻辑。

在Python中,将ASCII字符转换为对应的整数可使用内置函数ord(),例如ord('A')返回65。

反之,将整数转换为对应的ASCII字符可使用内置函数chr(),例如chr(65)返回'A'。

题目要求如下:

实现一个凯撒密码的变种算法,对输入的字符串进行加解密处理。

具体规则是将小写字母a-z分别循环对应为相距13个位置的字母n-m,即:

原文字母顺序为: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

对应转换后的字母顺序为:n o p q r s t u v w x y z a b c d e f g h i j k l m

大写字母的对应方式与小写字母类似,其他符号(包括标点符号)保持原样不作处理。

输入格式要求:

输入一个英文字符串。

输出格式要求:

输出经过上述算法加密后的字符串。

输入样例:

The Zen of Python

输出样例:

Gur Mra bs Clguba

系统限制条件:时间限制2000ms,内存限制128000kb。

解题思路:由于Python中的string类型是不可变的,若需修改字符串内容,需先将其转换为列表类型,处理完成后再使用join方法连接回字符串。

str=input()
strlist=list(str)
for i in range(len(strlist)):
  if strlist[i]>='a' and strlist[i]<='z':
    if ord(strlist[i])+13<=122:
      strlist[i]=chr(ord(strlist[i])+13)
    else:
      strlist[i]=chr((ord(strlist[i])+13)%122+96)
  elif strlist[i]>='A' and strlist[i]<='Z':
    if ord(strlist[i])+13<=90:
      strlist[i]=chr(ord(strlist[i])+13)
    else:
      strlist[i]=chr((ord(strlist[i])+13)%90+64)
print("".join(strlist))

以上关于Python中ASCII码字符与int之间转换及凯撒密码变种算法的实现即为完整内容,希望能为读者提供参考,欢迎继续支持本站获取更多技术分享。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表