第3章-13 字符串替换
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 对应字母
A Z
B Y
C X
D W
… …
X C
Y B
Z A
输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出替换完成后的字符串。
输入样例:
Only the 11 CAPItaL LeTtERS are replaced.
输出样例:
Lnly the 11 XZKRtaO OeGtVIH are replaced.
实现程序
笔者使用的是python3.7版本,不能使用如下情况,会导致l1与l2都变为逆序
s=input()
l1=list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
l2=l1
l2.reverse()
for i in s:
if i>='A' and i<='Z':
print(l2[l1.index(i)],end="")
else:
print(i,end="")
由于reverse函数是改变列表本身的内容,所以不能使用
l2=list("ABCDEFGHIJKLMNOPQRSTUVWXYZ").reverse()
正确代码如下:
s=input()
l1="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
l2=list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
l2.reverse()
for i in s:
if i>='A' and i<='Z':
print(l2[l1.index(i)],end="")
else:
print(i,end="")