python - Python 项目:创建一个程序来跟踪向导可以携带的项目
问题描述
show
不起作用,它不会显示我的任何物品
在我的代码的第一个文件中,我有以下内容:
项目.py:
list(inventory_list):
inventory = ["a wooden staff", "a wizard hat", "a cloak of invisibility",
"some elven bread", "an unknown potion", "a scroll of uncursing",
"a scroll of invisibility", "a crossbow", "a wizard's cloak"]
item = inventory.pop()
item = inventory.pop(1)
item = inventory.pop(2)
item = inventory.pop(3)
item = inventory.pop(4)
item = invnetory.pop(5)
item = inventory.pop(6)
item = inventory.pop(7)
item = inventory.pop(8)
在我的另一个文件中,main.py 文件看起来像这样。
import random
import items as i
inventory_list = 0
def list(inventory_list):
inventory = ["a wooden staff", "a wizard hat", "a cloak of invisibility",
"some elven bread", "an unknown potion", "a scroll of uncursing",
"a scroll of invisibility", "a crossbow", "a wizard's cloak"]
item = inventory.pop()
item = inventory.pop(1)
item = inventory.pop(2)
item = inventory.pop(3)
item = inventory.pop(4)
def display_menu(inventory_list):
random.shuffle(inventory_list)
print("The Wizard Inventory Program")
print()
print("COMMAND MENU")
print("show - Show all items")
print("grab - Grab an item")
print("edit - Edit an item")
print("drop - Drop an item")
print("exit - Exit program")
def show(inventory_list):
i = 1
for item in inventory_list:
print(str(i) + ". " + item)
i += 1
print()
def grab(inventory_list):
item = input("Name: ")
inventory_list.append(item)
print(item + " was added.\n")
def drop(inventory_list):
number = int(input("Number: "))
if number < 1 or number > len(inventory_list):
print("Invalid item number.\n")
else:
number = inventory_list.pop(number-1)
print(item + " was deleted.\n")
def edit(inventory_list):
number = int(input("Number: "))
if number < 1 or number > len(inventory_list):
print ("Invalid item number.\n")
else:
number = inventory_list.pop(input())
print( item + "was edited to.\n")
def main():
inventory_list = ["a wooden staff", "a wizard hat", "a cloak of invisibility",
"some elven bread", "an unknown potion", "a scroll of uncursing",
"a scroll of invisibility", "a crossbow", "a wizard's cloak"]
display_menu(inventory_list)
while True:
command = input("Command: ")
if command.lower() == "show":
list(inventory_list)
elif command.lower() == "grab":
grab(inventory_list)
elif command.lower() == "drop":
drop(inventory_list)
elif command.lower() == "exit":
break
else:
print("Not a valid command. Please try again.\n")
print("Bye!")
if __name__== "__main__":
main()
另一个问题是我需要单独的文件还是可以将它们全部放在一个文件中?
解决方案
我认为这更符合您正在寻找的内容。另外,我会帮助您,因为我可以从您的代码中看到您正在苦苦挣扎的几个地方,但请查看有关向 SO 发布问题的规则,因为如上所述,这不符合个人资料。并且还要检查我正在做的不同的事情,并尝试理解为什么。
import random
inventory_list = []
def display_menu(inventory_list):
random.shuffle(inventory_list)
print("The Wizard Inventory Program")
print()
print("COMMAND MENU")
print("show - Show all items")
print("grab - Grab an item")
print("edit - Edit an item")
print("drop - Drop an item")
print("exit - Exit program")
def invalid_number(num):
try:
x = inventory_list[num]
return False
except IndexError:
return True
def show(inventory_list):
for i, item in enumerate(inventory_list):
print("{}. {}".format(i, item))
print()
def grab(inventory_list):
item = input("Name: ")
inventory_list.append(item)
print(item + " was added.\n")
def drop(inventory_list):
number = int(input("Number: "))
if invalid_number(number):
print("Invalid item number.\n")
else:
orig_inp = inventory_list[number]
del inventory_list[number]
print("'{}' was deleted.\n".format(orig_inp))
def edit(inventory_list):
number = int(input("Number: "))
if invalid_number(number):
print ("Invalid item number.\n")
else:
orig_inp = inventory_list[number]
new_inp = input("What would you like to call '{}' instead? ".format(orig_inp))
inventory_list[number] = new_inp
print("'{}' was edited to '{}'.\n".format(orig_inp, new_inp))
def main():
inventory_list = ["a wooden staff", "a wizard hat", "a cloak of invisibility",
"some elven bread", "an unknown potion", "a scroll of uncursing",
"a scroll of invisibility", "a crossbow", "a wizard's cloak"]
display_menu(inventory_list)
while True:
command = input("Command: ").lower()
if command == "show":
show(inventory_list)
elif command == "grab":
grab(inventory_list)
elif command == "drop":
drop(inventory_list)
elif command == "edit":
edit(inventory_list)
elif command == "exit":
break
else:
print("Not a valid command. Please try again.\n")
print("Bye!")
if __name__== "__main__":
main()
推荐阅读
- reactjs - 如何使用 jest 和酶检查单击后组件是否消失?
- javascript - 底页模态无法在 Expo 中运行
- python - 格式字符串的参数不足,请帮助 Python
- javascript - 为什么尝试更改 react js 中的 className 时 CSS 样式会消失?
- python-venv - Python- Venv - 访问 venv 之外的文件
- reactjs - nginx ssl + react + node,响应超时
- python - 欧洲特殊字符的正确编码是什么?
- mongodb - MongoDB - 在存储的文档之间使用 maxDistance $geoNear 而不在查询中指定坐标
- java - 什么是 java .classdata 文件扩展名
- flutter - 如何转换未来
动态的