直接贴代码:
#coding:utf-8
'''
某个公司采用加密方式传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位
交换。编写加密的函数与解密的函数。 '''
#加密过程
def jiami(num):
if num>1000 and num<9999:
a = num/1000%10 #取出千位数
a1 = (a+5)%10 #根据条件+5再取余
b = num/100%10# 取出百位数
b1 = (b+5)%10
c = num/10%10 #取出十位数
c1 = (c+5)%10
d = num%10 #取出个位数
d1 = (d+5)%10
return d1*1000+c1*100+b1*10+a1 #返回为:千位数和个数交换,百位数和十位数交换
#解密过程:
def jiemi1(num):
w = [0, 0, 0, 0]
#把num值放到w列表里
for i in range(4):
w[i] = num % 10
num /= 10
#索引0的值和索引3的值交换
w[0] = w[3] + w[0]
w[3] = w[0] - w[3]
w[0] = w[0] - w[3]
print w
#索引1的值和索引2的值交换
w[1] = w[1] + w[2]
w[2] = w[1] - w[2]
w[1] = w[1] - w[2]
print w
#解密方法:
for i in range(4):
if w[i] % 10 - 5 < 0:
w[i] = w[i] % 10 - 5 + 10
else:
w[i] = w[i] % 10 - 5
#解密后拼接起来
print w[3] * 1000 + w[2] * 100 + w[1] * 10 + w[0]
print jiami(1235)
print jiemi(876)
总结取千位数:num/1000%10 百位数 :num/100%10 十位数:num/10%10 个位数: num/1%10