我试图制作一个解码编码信息的程序。我为大写和小写字母创建了2个单独的列表。但是每当我输入带空格的消息时,消息的第一个字母就会在每个单词之后保持输出。
n1=1
while n1!=0:
n=input("\nEnter code")
n1=int(n[0])
newcode=n[1:]
list1=['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']
list2=['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']
list3=[]
list4=[]
for x in newcode:
if i in list1:
n=list1.index(i)
n2=n-n1
y=list1[n2]
print(y, end="")
else:
list3.append(i)
for x in list3:
if i in list2:
n=list2.index(i)
n2=n-n1
y=list2[n2]
print(y, end="")
else:
print(i, end="")
if n1==0:
'/n'
break
样本输入:3Wkh fdu lu eoxh
样品输出: TheT carT是T蓝色
示例输入: 9Rc' b j carlthxwn
示例输出: ITI'司' AI' trickyI'一个
答案 0 :(得分:0)
我可以毫无问题地运行你的程序并重现。问题不仅在于每个单词后面的第一个字母重复。实际上,所有小写字母都可以正常工作,但是大写字母空格和其他积累并且不断重复。
所有来自此行:list3.append(x)
累积在list3
所有非小写字母。
我没有花足够的时间来全面分析你的脚本,但这是一个快速而又脏的修复:
list3 = []
替换第10行:list3 = ['']
(即make list3包含1个元素的列表)list3.append(x)
替换为list3[0] = x
(即保留大小为1的list3,并将新元素放在前一个元素的位置)我做了它并且随你做了示例输入,我得到了:
The car ir blue
It's a trickyone
(请注意,空格不再重复)