我想做一个游戏,你猜字母。并添加一个功能,将显示你所有你不正确的猜测,所以我做了列表:
incorrectguesses = []
然后我让它让用户猜字母
while True:
guess = input("what do you think the letter is?? ")
if guess == secret_letter:
print("you guessed it!")
break
else:
incorrectguesses += [guess]
你可以看到我把这个猜测加到了列表中,如果它是错的。
然后,我添加了一个函数来打印给定列表中的每一项:
def print_all_items(list_):
for x in list_:
print(x)
然后在循环结束时运行函数:
print(print_all_items(incorrectguesses))
但结果是这样:
你认为这封信是什么?
一种
无
你认为这封信是什么
一种
最佳
无
如您所见,它将“None”添加到列表的末尾。
如果你能帮我的话谢谢
2条答案
按热度按时间8ehkhllq1#
您正在打印
print_all_items()
函数的 result。但是,该函数没有
return
语句,因此默认情况下返回None
。所以,函数的 result 是
None
,它会被输出。由于函数本身打印结果,我认为您实际上只是想 * 调用 * 函数,而不是 * 打印 * 其结果。
ruyhziif2#
正如其他人早些时候指出的那样(比我更早),这是因为您打印的函数没有
return
。(在最后的深入解释中)。您要调用函数,而不是打印它。
这样,函数就会运行,并打印
incorrectguesses
的元素。说明
执行
print(<something>)
时,print()
函数正在等待返回值。在这个例子中,因为
<something>
是一个函数,Python在print()
“内部”运行这个函数。当你的函数print_all_items()
运行时,它会打印列表中的所有元素。一旦print_all_items()
完成运行,并打印了所有元素,函数就不会返回值,所以它默认为None
。因此,X1 M10 N1 X所等待的X1 M9 N1 X的值被赋予X1 M11 N1 X值。希望我能帮上忙!