python-情报加密副本

【问题描述】某情报机构采用公用电话传递数据,数据是5位的整数,在传递过程中是加密的。加密规则如下:每位数字都加上8,然后用和除以7的余数代替该数字,再将第1位和第5位交换,第2位和第4位交换。请编写程序,完成明文至密文的加密过程。

【输入形式】输入一个5位整数

【输出形式】输出加密后的密文整数

【样例输入】12345

【样例输出】65432

++完整代码如下:++

n=int(input())

a=[]

if 10000>n or 99999<n:

print("您输如的不是五位数,请重新输入:")

else:

b=n%10

c=n//10%10

d=n//100%10

e=n//1000%10

f=n//10000

g=[b,c,d,e,f]

for i in range(len(g)):

g[0]=g[0]+8

g[0]=g[0]%7

a.append(g[0])

del g[0]

print("{}{}{}{}{}".format(a[0],a[1],a[2],a[3],a[4]))

++代码解释:++

"n=int(input())

a=[]

if 10000>n or 99999<n:

print("您输如的不是五位数,请重新输入:") ",让用户输入一个五位数,建立一个空列表,并判断用户输入的是不是五位数。

"else:

b=n%10

c=n//10%10

d=n//100%10

e=n//1000%10

f=n//10000 ",判断是五位数的情况下分别求出该五位数的个,十,百,千,万位数字。

"g=[b,c,d,e,f]",将分别求出的该五位数的个,十,百,千,万位数字按个,十,百,千,万的顺序存入列表g中。

"for i in range(len(g)):

g[0]=g[0]+8

g[0]=g[0]%7

a.append(g[0])

del g[0] ",按照加密规则:利用循环将列表g中每个数字都加上8,然后用和除以7的余数代替该数字。然后将替代该数字的余数存入列表a中,之后将列表g中替代该数字的余数删除。

"print("{}{}{}{}{}".format(a[0],a[1],a[2],a[3],a[4]))",由于列表添加的默认顺序为添加到列表的最后末尾,因此列表a中五位数字的排列顺序已经在将g列表中余数存入列表a中时掉转,此时只需要按正常顺序排列即可。

++运行效果展示:++

++++

++(声明:以上内容均为原创)++

相关推荐
时尚IT男18 小时前
Python 魔术方法详解:掌握面向对象编程的精髓
开发语言·python
找了一圈尾巴18 小时前
Python 学习-深入理解 Python 进程、线程与协程(下)
开发语言·python·学习
可触的未来,发芽的智生18 小时前
微论-自成长系统引发的NLP新生
javascript·人工智能·python·程序人生·自然语言处理
adam_life18 小时前
【P8306 【模板】字典树】
数据结构·算法·字典树·trie·哈希表··结构体
1***357718 小时前
SQL之CASE WHEN用法详解
数据库·python·sql
晨非辰19 小时前
算法闯关日记 Episode :解锁链表「环形」迷局与「相交」奥秘
数据结构·c++·人工智能·后端·python·深度学习·神经网络
信号处理学渣19 小时前
matlab之将一个升序数组按照元素值连续与否分成多组
数据结构·算法·matlab
qq_3363139319 小时前
java基础-set系列集合
java·开发语言·python
多恩Stone19 小时前
【系统资源监控-1】Blender批量渲染中的负载、CPU、GPU和进程管理
linux·python
安然无虞19 小时前
LoadRunner性能测试详解·上
python·测试工具·压力测试