两种方法python实现某个公司采用加密方式传递数据,传递的数据是一个10进制的四位整数,加密规则如下:每位数字都先分别加上5,然后用其除以10的余数代替该数字,再将第一位和第三位交换,第二位和第四位交换。让用户在控制台输入加密前的数据,通过程序进行加密,并输出加密后的数据,程序需要判断用户输入的是否为四位10进制整数,比如用户输入12345或﹣10等内 时,提示用户输入的不是四位整数;用户输入236a或12.3等内容时,提示用户输入的不是整数。
时间: 2023-05-20 15:05:35 浏览: 93
以下是 Python 实现某个公司采用加密方式传递数据的两种方法:
方法一:
```python
def encrypt(num):
if not isinstance(num, int) or num < 1000 or num > 9999:
print("输入的不是四位整数!")
return None
num_list = list(str(num))
for i in range(4):
num_list[i] = (int(num_list[i]) + 5) % 10
num_list[0], num_list[2] = num_list[2], num_list[0]
num_list[1], num_list[3] = num_list[3], num_list[1]
encrypted_num = int(''.join(map(str, num_list)))
return encrypted_num
input_num = input("请输入四位整数:")
try:
input_num = int(input_num)
except ValueError:
print("输入的不是整数!")
else:
encrypted_num = encrypt(input_num)
if encrypted_num is not None:
print("加密后的数据为:", encrypted_num)
```
方法二:
```python
def encrypt(num):
if not isinstance(num, int) or num < 1000 or num > 9999:
print("输入的不是四位整数!")
return None
num_list = list(str(num))
num_list = [(int(n) + 5) % 10 for n in num_list]
num_list[0], num_list[2] = num_list[2], num_list[0]
num_list[1], num_list[3] = num_list[3], num_list[1]
encrypted_num = int(''.join(map(str, num_list)))
return encrypted_num
input_num = input("请输入四位整数:")
try:
input_num = int(input_num)
except ValueError:
print("输入的不是整数!")
else:
encrypted_num = encrypt(input_num)
if encrypted_num is not None:
print("加密后的数据为:", encrypted_num)
```
以上两种方法都是定义了一个 `encrypt` 函数,接收一个整数参数 `num`,返回加密后的整数。在主程序中,先判断用户输入的是否为四位整数,如果不是则提示用户重新输入;如果是,则调用 `encrypt` 函数进行加密,并输出加密后的数据。
注意:以上代码中没有使用 `input` 函数的 `eval` 参数,因为 `eval` 可能会执行用户输入的任意代码,存在安全隐患。