n = int(input()) m = input() a = '' for i in range(len(m)): if ord(m[i]) == 90: a += chr(ord(m[i])-26-1+n) else: a += chr(ord(m[i])+n) print(a)优化这段代码
时间: 2024-04-14 21:29:39 浏览: 176
python中ASCII码字符与int之间的转换方法
要优化这段代码,可以考虑以下几点:
1. 使用列表推导式替代循环和字符串拼接,可以提高效率。
2. 使用 ord() 和 chr() 函数的结果缓存起来,避免重复计算。
3. 使用字符串的 join() 方法来连接字符,而不是重复拼接。
下面是优化后的代码:
```python
n = int(input())
m = input()
a = [chr((ord(ch) - 65 + n) % 26 + 65) for ch in m]
print(''.join(a))
```
优化后的代码使用列表推导式一次性生成加密后的字符列表 `a`,然后使用 `join()` 方法将字符列表连接成一个字符串输出。同时避免了重复计算和字符串拼接,提高了效率。
阅读全文