我引用的刽子手代码来自Invent Your Own Games with Python一书:
在显示游戏板的函数中,有一个for循环,它将由下划线组成的字符串替换为与secretword对应的正确猜测字母:

    for i in range(len(secretWord)):
        if secretWord[i] in correctLetters:
            blanks = blanks[:i] + secretWord[i] + blanks[i+1]

我很难理解和想象这条线blanks = blanks[:i] + secretWord[i] + blanks[i+1]
假设secretWord = "otter"blanks = "_____"(五个下划线)。for循环究竟如何工作?

最佳答案

假设你的信是错的。
所以正确的字母=['t']然后我们检查我们的秘密单词,看看t出现在哪里。
因为i=0,什么也不会发生,“o”不在我们的更正字母中。
对于i=1,我们得到了‘t’,它是修正字母的一部分,所以我们可以用空格来做魔术:
| blanks[:i]获取字符串,直到位置i=1,所以这里:''
secretword[i]给你“t”,因为i=1
空格[i+1]给出了字符串的所有剩余部分,从位置i+1=2开始__
总的来说,在这个迭代之后你已经有了。
我们再对另一个t(i=2)执行同样的操作,您将得到:
空白=TT__
很容易猜到水獭,对吧;)

08-06 05:29