n = input()
a = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z')
b = tuple(reversed(a))
n = list(n)
for i,v in enumerate(n):
if v in a:
n[i] = b[a.index(v)]
n = "".join(n)
print(n)
你的代码不符合老师给题要求,要求要把转换表以元组形式表示。下面代码按要求可以解决问题
import string
s1=list(string.ascii_uppercase)
s2=list(reversed(s1))
print(s2)
con_table=tuple((ss1,ss2) for ss1,ss2 in zip(s1,s2))
print(con_table)
inp=input('please input a string: ').upper()#保证在输出字串时字母大小写均可进行转换。
s3=''
for x in inp:
for y in con_table:
if x==y[0]:
s3+=y[1]
print(s3)
#输出:
#please input a string: BGAD
#YTZW
比如说n="AZA",
i=0:J=0:repalce会把A换成Z->n="ZZA"
但是你j=25的时候,n[0]="Z"=a[25],又替换一次后 n="AZA"
后面我不写了,你觉得这么下去结果会正确吗?
修改的方法就是在每次执行完replace之后,加个break
n=n.replace(n[i],b[j]) break
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632