【发布时间】:2017-09-07 15:08:24
【问题描述】:
我这里有一个 python 程序可以解读一个单词,但我不确定特定部分发生了什么。
在下面被块引用并由标题分隔的部分中,我不明白为什么将单词的“加扰”放入 while 循环中 - 如果没有循环,它不能工作吗?另外,有人可以解释一下while循环(while word:)中发生的一切吗?
import random
words = ('coffee', 'phone', 'chair', 'alarm')
word = random.choice(words)
correct = word
scramble = ""
while word: position = random.randrange(len(word)) scramble += word[position] word = word[:position] + word[(position + 1):]
print("The scrambled word is: ", scramble)
answer = input("What's your guess?: ")
def unscramble(answer):
while answer != correct and answer != "":
print("Sorry, incorrect.")
answer = input("Try again: ")
if answer == correct:
print("Good job, that is correct!")
unscramble(answer)
【问题讨论】:
-
我建议在
while word循环中添加print(word)(两次)、print(position)、print(scramble)。弄清楚代码块内部发生了什么的一个好方法是用打印语句乱扔它们,然后运行代码。 -
谢谢,但我应该在哪里将这些打印语句添加到代码中?抱歉,我对此很陌生。
-
对于 while 循环中的每一行,如果您无法确定变量的相关值是什么,请打印出来。
-
如果涉及到一些实验也没关系,或者你添加一个打印语句然后删除它或注释掉它。为了弄清楚代码在做什么,值得练习这个过程。
-
谢谢,这对 while 循环中的前两行有很大帮助。虽然循环中的底线并没有让我清楚地知道打印(word)时发生了什么。
标签: python random while-loop word scramble