用初级的python语言编写一个函数encrypt能够加密学号,对于每一位若是字母保持不变,若是数字则与9相减,例如T18123456加密得到T81876543。要求使用递归且不能使用循环,此外调用该函数输出自己学号加密后的结果。
时间: 2024-12-13 14:25:59 浏览: 22
你可以使用Python的基础递归函数来实现这个加密规则。首先定义一个辅助函数用于处理单个字符的加密,然后在主加密函数中递归地应用这个辅助函数。下面是一个简单的实现:
```python
def is_digit(char):
return char.isdigit()
def encrypt_helper(char, prev_num):
# 如果当前字符是字母,返回原样
if char.isalpha():
return char
# 如果是数字,按照题目规则加密
elif is_digit(char):
return chr(((ord(char) - ord('0') - 9 + prev_num) % 10) + ord('0'))
else:
raise ValueError(f"Invalid character: {char}")
def encrypt(s, index=0, prev_num=0):
# 递归终止条件:当索引超过字符串长度
if index == len(s):
return s
else:
encrypted_char = encrypt_helper(s[index], prev_num)
return encrypt(s, index + 1, (prev_num + 1) % 10)
# 调用函数并打印加密后的结果
my_student_id = "T18123456"
encrypted_id = encrypt(my_student_id)
print(f"原始学号:{my_student_id}")
print(f"加密后学号:{encrypted_id}")
```
当你运行这段代码,它会输出加密后的学号。
阅读全文
相关推荐
















