1

我正在学习 Invent with Python 中的刽子手课程。几个小时以来,我试图理解下面 for 循环中的第二行和第三行。

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

我知道这是列表切片,但是虽然我知道列表切片是什么,但我不明白为什么要使用 + 运算符。

感谢任何解释这一点的人。

4

3 回答 3

5

它是连接字符串。

  blanks = blanks[:i] + secretWord[i] + blanks[i+1:]

它将连接blank字符串直到 i,字符在 i ofsecretWordblank字符串从 i + 1 直到结束。

例子:

blanks = "Welcome"
secretWord = "WELCOME"
i = 3
print blanks[:i] + secretWord[i] + blanks[i+1:]

将打印

WelCome

所以基本上上面看到的行将字符 at iof替换为 at ofblank字符。isecretWord

于 2013-10-12T05:26:22.997 回答
2

使用+它通常用于 - 加法。

for i in range(len(secretWord)):循环[0, 1, ... len(secretWord)]分配i给每个循环的每个项目。

所以在第一个循环中,blanks = blanks[:i] + secretWord[i] + blanks[i+1:]是:

blanks = blanks[:0] + secretWord[0] + blanks[0+1:]

又名:

blanks = blanks[:0] + secretWord[0] + blanks[1:]
#                                            ^ 0 + 1 == 1

如果您的意思是+每个切片之间的中间,则用于字符串连接

>>> print 'hello ' + 'world'
hello world
于 2013-10-12T05:25:53.913 回答
1

当与字符串一起使用时,+Python 中的运算符连接字符串。

于 2013-10-12T05:25:51.467 回答