首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本文件代码Puzzle.Replacing字符

文本文件代码Puzzle.Replacing字符
EN

Stack Overflow用户
提问于 2014-03-08 20:57:46
回答 1查看 1.2K关注 0票数 0

我一直在尝试完成一个任务,它给用户一个符号化的单词列表,他们必须解决这些符号才能揭示这个单词。我已经创建了一个带有三个选项的菜单:Add, Delete, Check

我被Add part.The用户看到的A))85卡住了,正确的词是AFFIX

因此,当出现在菜单屏幕上时,我将用F替换)。这会打印AFF85这一行,它应该这样做。

当用户被提示更改另一个符号/字母对时,他们将使用I更改8,但是程序将打印A))IX而不是AFFI5,这是它应该打印的。

我对这部分的代码是:

代码语言:javascript
复制
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()

是我遗漏了什么,还是我的代码出错了?

EN

回答 1

Stack Overflow用户

发布于 2014-03-08 21:12:54

您不会存储用户添加的配对。您可以应用它们,然后打印。同时,您永远不能修改全局words变量的内容。正因为如此,每次调用addpairing都是从头开始。

我建议您维护一个包含所有活动配对的数据结构。为此,您应该使用dict (字典)。然后,当您打印(您可能希望将其放在一个单独的函数中)时,首先获取单词,将其放在一个临时变量中,然后循环字典中的(key,value)对并进行替换,就像您已经做的那样,然后打印。

另外,我建议不要使用全局变量。我认为这就是让你困惑的地方,对于大多数用例来说,它不是一个很好的构造。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22269605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档