2013-10-27 47 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