我有一些功能。我的最终目标是从列表中选择一个随机单词,将单词拆分为新列表,然后打印所选单词的长度。
def choose_word():
for i in range(1):
words = ['christmas', 'europe', 'icecream', 'america', 'apple', 'hamburger', 'refrigerator', 'dinosaur', 'television']
word = list(random.choice(words))
return word
def main():
print(len(choose_word()))
print(choose_word())
存在问题,len()
实际上并未打印正确的值。我相信每次我对随机选择的单词进行操作时,它可能会改变单词。有没有办法阻止这个?如果我要运行main()
,它会打印一个数字,后跟单词,但数字不正确。
答案 0 :(得分:0)
这是因为你正在调用你的函数两次,所以第一次调用会给你一个随机字的长度,第二次你会得到另一个字的输出。您应该只将其称为一次,并将其返回存储在变量中,然后使用 变量:
def main():
word = choose_word()
print(len(word))
print(word)
此外,您似乎在choose_word
函数中进行了不必要的循环。这不是为您的代码服务的任何目的。对random.choice
的调用正在为您选择这个词做所有工作。这里不需要做任何循环。
最终代码:
def choose_word():
words = ['christmas', 'europe', 'icecream', 'america', 'apple', 'hamburger', 'refrigerator', 'dinosaur', 'television']
word = list(random.choice(words))
return word
def main():
word = choose_word()
print(len(word))
print(word)
演示:
8
['i', 'c', 'e', 'c', 'r', 'e', 'a', 'm']