Python练习实例89 | 关于数字加密算法

原题目是这样的:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

Python练习实例89 | 关于数字加密算法_第1张图片
轻骑,一骑绝尘!.jpg

多余的话就不多说了,我们直接看下面的代码吧!

if __name__ == '__main__': # 定义程序入口
    num = input("请输入需加密的数字:") # 输入需要加密的数字
    str_num = '' # 创建一个空的字符串
    for i in range(4): # 创建一个循环
        str_num += str(int((int(num[i])+5)%10)) # 输入的数字中,每一个数字转换为整型,加上5,然后再对其进行求余。
    i,j,k,l = str_num[0],str_num[1],str_num[2],str_num[3] # 将控制好的变量,分别赋值给i,j,k,l
    print('加密后的数据为:%s'%str_num[::-1]) # 打印出结果,并逆序输出结果

具体的结果如下所示:

C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 练习实例100题/练习实例89.py"
请输入需加密的数字:2535
加密后的数据为:0807

Process finished with exit code 0

当然,除了这种方法之外,我们还有另外一种方法,这种方法从逻辑上,相对来说更加容易一些。

num = int(input("请输入一个数字:"))
list_num = [] # 创建一个空列表
list_num.append(int(num / 1000)) # 将输入数字的千分位添加到空列表中
list_num.append(int(num % 1000) / 100 ) # 将输入数字的百分位添加到空列表中
list_num.append(int(num % 100) / 10) # 将输入数字的十分位添加到空列表中
list_num.append(int(num % 10)) # # 将输入数字的个分位添加到空列表中
for i in range(4): # 逐个对列表中的元素进行+5,并做求余处理
    list_num[i] = int((list_num[i] + 5) % 10)
print("加密后的数据为:",end='')
for i in range(-1,-5,-1): # 对列表当中的元素逐个进行逆向的访问,并输出。
    print(list_num[i],end='')

下面我们来看下最终输出的结果:

C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 练习实例100题/练习实例89 方法二.py"
请输入一个数字:0564
加密后的数据为:9105
Process finished with exit code 0

北京市通州区京贸中心
2020年6月28日

你可能感兴趣的:(Python练习实例89 | 关于数字加密算法)