2013-10-27 46 views
-3

有人可以向我解释这个循环的最后一行是什么吗?这是一个词汇杂乱程序的片段,这是我从中学习的一本书的一个例子。谢谢。此循环中的这行代码如何工作?

import random 
WORDS = ("python", "jumble", "easy", "difficult", "answer", "xylophone") 
word = random.choice(WORDS) 
correct = word 
jumble = " " 

while word: 
    position = random.randrange(len(word)) 
    jumble += word[position] 

    word = word[:position] + word[(position +1):] 
+0

[切片](http://stackoverflow.com/questions/509211/pythons-slice-notation) – Brian

+3

插入''在循环内打印word'',看看是怎么回事。 –

+0

请更具体。我明白[:position],它的下一部分,以及这两个交互是如何让我困惑的... –

回答

2

它切出的字符索引position

>>> word = "python" 
>>> position = 3 
>>> 
>>> word[:position] + word[(position +1):] 
'python' 

我们的字符串这里是"python"

 
p y t h o n 
0 1 2 3 4 5 
     ^

因此它是有道理的,对于position = 3结果为"python",与缺少'h'

未来总是试图用一个简单的例子来测试这些东西,通常他们会让你知道到底发生了什么。

参见:Python's slice notation

+0

非常感谢。我很抱歉打扰你们不必要的。我没有想到要这样做。 : -/ –

+0

@ThomasNotaro很高兴我能帮上忙。不要忘记[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)。 – arshajii