Python定义一个函数,实现数值加密功能,返回加密后数据值。接收一个3位正整数(程序要对输入数据的合法性进行检查),加密规则:每位数字都加上7,然后用10取模。 例如输入 123,则 (1+7)mod 10=8 (2+7)mod 10=9 (3+7)mod 10=0 输出为890。 若加密后开头是0,去掉0。运行结果:输入一个三位数:123 输出:890
时间: 2023-12-03 12:44:42 浏览: 138
可以使用以下代码实现:
```python
def encrypt(num):
# 检查输入的合法性
if not isinstance(num, int) or num < 100 or num > 999:
return None
# 对每一位数字进行加密
digits = []
for digit in str(num):
digits.append((int(digit) + 7) % 10)
# 将加密后的数字拼接起来
encrypted = ''.join(map(str, digits))
# 去掉开头的0
encrypted = encrypted.lstrip('0')
return int(encrypted) if encrypted else 0
```
使用示例:
```python
num = input("输入一个三位数:")
encrypted = encrypt(int(num))
if encrypted is not None:
print(encrypted)
else:
print("输入不合法")
```
输出:
```
输入一个三位数:123
890
```
相关问题
python设计一个函数,实现输入一个五位数的正整数(程序要对输入数据的合法性进行检查),对输入的数据加密后再返回,加密规则:每位数字都加上7,然后用10取余,再将得到的结果交换顺序:第一位和第二位交换,第三位和第五位交换。
为了在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`函数里,我们先检查输入,接着按加密规则操作每一位数字,并最终将结果转换回整数。
运行此代码时,用户可以输入一个五位正整数,如果输入合法,它会显示加密后的数字;如果不合法,会捕获异常并提示错误信息。如果你想要测试这个函数,可以直接在控制台运行,或者用单元测试覆盖边界情况。
设计一个函数,实现输入一个五位数的正整数(程序要对输入数据的合法性进行检查),,对输入的数据加密后再返回,加密规则:每位数字都加上7,然后用10 取余,再将得到的结果交换顺序:第一位和第二位交换,第三位和第五位交换。 请输入五位正整数:12345 处理后的数据为:98210
设计这样一个函数,可以按照给定的加密规则实现:
```python
def encrypt_number(num):
# 检查输入是否为五位正整数
if not isinstance(num, int) or len(str(num)) != 5 or num < 10000 or num > 99999:
return "输入无效,请输入一个五位正整数"
encrypted_num = ""
# 加上7并取余
digits = [int(digit) + 7 for digit in str(num)]
digits = [digit % 10 for digit in digits] # 对每一位取余
# 交换顺序
encrypted_num += str(digits[1]) # 第二位
encrypted_num += str(digits[0]) # 第一位
encrypted_num += str(digits[2]) # 第三位
encrypted_num += str(digits[4]) # 第五位
encrypted_num += str(digits[3]) # 第四位
return encrypted_num
# 测试函数
input_num = 12345
encrypted_data = encrypt_number(input_num)
print(f"处理后的数据为:{encrypted_data}")
#
阅读全文