我正在用 python 创建一个基于文本的游戏并且遇到了障碍。我有一个函数可以检查用户输入是否包含某些单词,如果包含则返回用户输入,否则它将重新请求输入。如果您编写的内容不包含其中一个单词,它将重新调用该函数。
def contains_words(prompt, words):
user_input = raw_input(prompt).strip().lower()
if user_input == "instructions":
print
instructions()
print
contains_words(prompt, words)
elif user_input == "i" or user_input == "inventory":
if len(inventory) == 0:
print
print "There is nothing in your inventory."
print
contains_words(prompt, words)
else:
print "Your inventory contains: " + inventory
contains_words(prompt, words)
else:
if user_input in words:
return user_input
else:
print
print "I did not understand your answer, consider rephrasing."
contains_words(prompt , words)
这是我的称呼:
pizza = contains_words("Do you like pizza?", ["yes", "no"])
在此功能中,您可以调出说明或库存,然后它会调用该功能。如果您在第一次被问到时将其中一个词放在答案中,那么一切都会正常进行。当您输入不正确的内容、调出库存或调出说明时,就会出现问题。它导致函数不返回任何内容,而不是用户输入。为什么会这样?是因为函数重置所以参数等于none吗?