繁体   English   中英

替换字符串中的字符

[英]Replacing character within a string

我正在尝试创建一个刽子手游戏,但是我不确定每次用户选择正确答案时如何更新显示的单词。 我正在将 tkinter 用于按钮和框。

一个例子:

这个词是代码

用户会看到_ _ _ _

用户猜测D

我希望程序将_ _ _ _更新为_ _ D _

#replacing word

word_spaces = (" ".join(word))
word_miss = word_spaces.replace(word_spaces, " _ " * word_length)
word_list = ([word_spaces])

#Word Box

box = Label(window, text= word_miss, font= ("none", 50), bg= "black", fg= "white")
box.grid(row= 0, column = 1, columnspan= 9)

#Not sure about this part here:
def button_click(letter):
    if letter not in word:
        print("Not in word")
        #Add to letters guess
        #Tries -1
    elif letter in word:
        print("Letter in word")
            
        box.config(text= )
        #Add to letters guess
    else:
        print("Why is this here")

有很多方法可以解决这个问题,但这里是我马上想到的。

做一组猜出的字母:

guessed_letters = set()

当用户猜出一个字母时,将其添加到该集合中:

guessed_letters.add(user_input_letter)

然后,让它使用该集合生成您想要显示的字符串:

work = ""
for i in word:
    work += " "
    if i in guessed_letters:
        work += i
    else:
        work += "_"
    work += " "
box.config(text = work)

集合很好,因为它们可以保持事物并且可以在很少的计算时间内添加、删除和访问它们,但是它们不跟踪它们添加的顺序并且项目只能添加一次(也就是说,它确实不跟踪重复。)如果您想要这些东西,请改用列表:

guessed_letters = []

guessed_letters.append(user_input_letter)

或者,你知道,因为它总是字母,你可以只使用一个字符串:

guessed_letters = ""
...
guessed_letters += user_input_letter

还有其他方法可以处理这一切,就像我说的那样,所以如果这不适合您,请告诉我们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM