用python编写一个函数encrypt能够加密学号,对于每一位若是字母保持不变,若是数字则与9相减,例如T18123456加密得到T81876543。要求使用递归且不能使用循环,此外调用该函数输出自己学号加密后的结果。
时间: 2024-12-13 13:25:37 浏览: 11
在Python中,你可以创建一个名为`encrypt`的递归函数,按照题目描述的要求对输入的学号进行加密。下面是一个简单的实现:
```python
def encrypt_char(c):
if '0' <= c <= '9':
return chr((ord(c) - ord('0') + 9) % 10 + ord('0'))
else:
return c
def encrypt(s, index=0):
# 递归结束条件:当索引等于字符串长度时返回加密后的字符
if index == len(s):
return s
# 如果当前字符是数字,加密并继续处理下一个字符
elif s[index].isdigit():
encrypted_char = encrypt_char(s[index])
return encrypt(encrypted_char + s[index+1:], index + 1)
# 如果当前字符是字母,直接返回(因为题目要求字母保持不变)
else:
return encrypt(s[index+1:], index + 1)
# 示例学号
student_id = "T18123456"
encrypted_student_id = encrypt(student_id)
print(f"原始学号: {student_id}, 加密后: {encrypted_student_id}")
#
阅读全文