python设计一个函数,实现输入一个五位数的正整数(程序要对输入数据的合法性进行检查),对输入的数据加密后再返回,加密规则:每位数字都加上7,然后用10取余,再将得到的结果交换顺序:第一位和第二位交换,第三位和第五位交换。
时间: 2024-11-16 13:20:07 浏览: 0
为了在Python中实现这个功能,你可以创建一个名为`encrypt_number`的函数,首先检查输入是否合法,然后按照给出的规则进行加密。以下是详细的函数实现:
```python
def is_valid_number(num):
if isinstance(num, int) and 10000 <= num < 100000: # 检查是否为五位正整数
return True
else:
return False
def encrypt_number(input_num):
# 检查输入合法性
if not is_valid_number(input_num):
raise ValueError("输入的不是一个5位正整数.")
# 加密过程
encrypted_digits = [((digit + 7) % 10) for digit in str(input_num)]
# 交换位置
encrypted_digits[0], encrypted_digits[1] = encrypted_digits[1], encrypted_digits[0]
encrypted_digits[2], encrypted_digits[3] = encrypted_digits[3], encrypted_digits[2]
# 返回加密后的字符串并转换回整数
encrypted_str = ''.join(map(str, encrypted_digits))
return int(encrypted_str)
# 示例
try:
input_num = int(input("请输入一个五位正整数: "))
result = encrypt_number(input_num)
print(f"加密后的数值是: {result}")
except ValueError as e:
print(e)
```
在这个代码中,我们首先定义了一个辅助函数`is_valid_number`用于验证输入。然后在`encrypt_number`函数里,我们先检查输入,接着按加密规则操作每一位数字,并最终将结果转换回整数。
运行此代码时,用户可以输入一个五位正整数,如果输入合法,它会显示加密后的数字;如果不合法,会捕获异常并提示错误信息。如果你想要测试这个函数,可以直接在控制台运行,或者用单元测试覆盖边界情况。
阅读全文