我一直在尝试完成一个任务,它给用户一个符号化的单词列表,他们必须解决这些符号才能揭示这个单词。我已经创建了一个带有三个选项的菜单:Add, Delete, Check。
我被Add part.The用户看到的A))85卡住了,正确的词是AFFIX。
因此,当出现在菜单屏幕上时,我将用F替换)。这会打印AFF85这一行,它应该这样做。
当用户被提示更改另一个符号/字母对时,他们将使用I更改8,但是程序将打印A))IX而不是AFFI5,这是它应该打印的。
我对这部分的代码是:
def menu():
print ("------------------Menu------------------")
print ("1.Add Pairing")
print ("2.Delete Pairing")
print ("3.Check")
sleep(3)
menuchoice=input("1 or 2 or 3:")
if menuchoice=="1":
addpairing()
elif menuchoice=="2":
deletepairing()
elif menuchoice=="3":
check()
def addpairing():
global words
newcontentsA = (words)
newcontentsA = newcontentsA.replace('#','A')
newcontentsA = newcontentsA.replace('*', 'M')
newcontentsA = newcontentsA.replace('%', 'N')
addpairing1=input("Enter a SYMBOL you would like to replace::")
addpairing2=input("What LETTER will you replace it with::")
newcontentsA=newcontentsA.replace(addpairing1,addpairing2)
print(newcontentsA)
sleep(3)
print("Lets get back to the menu")
menu()是我遗漏了什么,还是我的代码出错了?
发布于 2014-03-08 21:12:54
您不会存储用户添加的配对。您可以应用它们,然后打印。同时,您永远不能修改全局words变量的内容。正因为如此,每次调用addpairing都是从头开始。
我建议您维护一个包含所有活动配对的数据结构。为此,您应该使用dict (字典)。然后,当您打印(您可能希望将其放在一个单独的函数中)时,首先获取单词,将其放在一个临时变量中,然后循环字典中的(key,value)对并进行替换,就像您已经做的那样,然后打印。
另外,我建议不要使用全局变量。我认为这就是让你困惑的地方,对于大多数用例来说,它不是一个很好的构造。
https://stackoverflow.com/questions/22269605
复制相似问题