这个新的字符串变量究竟是从python的while循环算法创建的?

问题描述:

伙计。感谢您抽出时间仔细阅读本文。我一直在试图弄清Python究竟是如何创建这个新的字符串变量时遇到了一些麻烦。最初的代码是一个包含随机单词的元组。有一个随机模块被导入并使用选择方法来拉出一个随机单词。然后,从给定的变量创建一个while循环,该变量容纳了刚刚被拖动的随机词。目标是完全随机化字的字体。之后它会打印保存随机索引单词的变量。这里是我正在谈论的代码这个新的字符串变量究竟是从python的while循环算法创建的?

import random 

# create a sequence of words to choose from 
WORDS = ("python", "jumble", "easy", "difficult", "answer", "xylophone") 
# pick one word randomly from the sequence 
word = random.choice(WORDS) 
# create a variable to use later to see if the guess is correct 
correct = word 

# create a jumbled version of the word 
jumble ="" 
while word: 
    position = random.randrange(len(word)) 
    jumble += word[position] 
    word = word[:position] + word[(position + 1):] 

print(jumble) 

我的问题是,python究竟是如何创建一个全新的混乱的单词?我理解代码和发生的事情,直到达到这个给定的部分,让我对发生的事情感到困惑。

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

不知道Python代码,但拆分问题:1.选择一个随机的单词。 2.将这个词本身排除在数学中,称为排列,你可能需要一个随机排列。 – Elmex80s

在每次迭代期间,您将“移动”一个字符从原始单词到混乱的单词。这是actualy很简单,当你理解了语法:

jumble += word[position] - 添加到冗杂字的字符在随机位置

word = word[:position] + word[(position + 1):] - 在position位置从原来的字删除字符word

如果你添加print word, jumble作为你的while循环中的第一行,你可以看到这些词来生活:)

+0

ahhhh我有点得到它。因此,在这个while循环的情况下...可以安全地说它的行为像一个for循环,因为指定的while循环条件正在经历单词变量本身的整个长度? –

+1

@KennethStevenMcAuslandJr。你可以那样说。 '在xrange中的x(len(word)):''在这里也能工作 –

+0

非常感谢,丹尼尔!如果你不介意,我是否可以在本周晚些时候在下午为你做一些即将进行的循环练习,这些循环练习是我为自己制作的? –