我正在研究Invent with Python中的刽子手课程。几个小时我试图理解下面的for循环中的第2行和第3行。
for i in range(len(secretWord)):
if secretWord[i] in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
我知道它是列表切片,但是虽然我知道列表切片是什么,但我不明白为什么使用+运算符。
感谢任何解释此事的人。
答案 0 :(得分:5)
连接字符串。
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
它会将blank
字符串连接到i,secretWord
的i处的字符和i + 1的blank
字符串直到结尾。
示例:强>
blanks = "Welcome"
secretWord = "WELCOME"
i = 3
print blanks[:i] + secretWord[i] + blanks[i+1:]
将打印
WelCome
所以基本上上面看到的行替换了i
blank
处的字符和i
secretWord
处的字符。
答案 1 :(得分: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
答案 2 :(得分:1)
当与字符串一起使用时,Python中的+
运算符会连接字符串。