原题目是这样的:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
轻骑,一骑绝尘!.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日
网友评论