嘿,只是一些背景,我是一个新手爱好者程序员。我在我的问题上寻求帮助,但什么也找不到。 我正在做一个基于文本的娱乐冒险,我想知道我做错了什么。如果用户输入的数字不是1、2或3,则应该重新运行循环,对吗?你知道吗
def print_inv():
print("Your items: %s" % (inventory))
inventory = []
while weapon == "empty":
weapon = input("Enter what weapon you would like to use:\n\nSword(1)\nStaff(2)\nBow(3)\n\n)
if weapon == "1":
inventory.append("Sword")
print_inv()
elif weapon == "2":
inventory.append("Staff")
print_inv()
elif weapon == "3":
inventory.append("Bow")
print_inv()
else:
weapon == "empty"
您的代码应如下所示:
==
用于比较。=
用于赋值。你知道吗您需要在else case中赋值
而不是比较
代码中的逻辑错误
主要的问题是你的循环根本不起作用,因为在第一次武器的值应该设置为
empty
由于条件weapon==empty
如果weapon
的值已经是empty
,那么你的循环会在第一次输入设置为1
之后停止,因为所以你需要用
!=
代替==
和while
或者您可以使用break,因为只需编写代码,就没有什么有用的东西可以代替比较,这样一旦值为
empty
,就可以立即停止循环而不必赋值相关问题 更多 >
编程相关推荐