Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 添加/删除列表中的项目_Python - Fatal编程技术网

Python 添加/删除列表中的项目

Python 添加/删除列表中的项目,python,Python,我正试图创建一个玩家谁可以添加和删除他们的库存项目。我的一切正常,我只有一个小问题。每次打印库存时,“无”也会出现。我一直在尝试删除它,但无论我做什么,“无”总是出现在程序中!我知道我只是错过了一些简单的事情,但我一辈子都想不出来 class Player(object): def __init__(self, name, max_items, items): self.name=name self.max_items=max_items self.items=it

我正试图创建一个玩家谁可以添加和删除他们的库存项目。我的一切正常,我只有一个小问题。每次打印库存时,“无”也会出现。我一直在尝试删除它,但无论我做什么,“无”总是出现在程序中!我知道我只是错过了一些简单的事情,但我一辈子都想不出来

class Player(object):

  def __init__(self, name, max_items, items):
    self.name=name
    self.max_items=max_items
    self.items=items

  def inventory(self):
    for item in self.items:
        print item

  def take(self, new_item):
    if len(self.items)<self.max_items:
        self.items.append(new_item)
    else:
        print "You can't carry any more items!"

  def drop(self, old_item):
    if old_item in self.items:
        self.items.remove(old_item)
    else:
        print "You don't have that item."


def main():
  player=Player("Jimmy", 5, ['sword', 'shield', 'ax'])
  print "Max items:", player.max_items
  print "Inventory:", player.inventory()

  choice=None
  while choice!="0":
    print \
    """
    Inventory Man

    0 - Quit
    1 - Add an item to inventory
    2 - Remove an item from inventory
    """

    choice=raw_input("Choice: ")
    print

    if choice=="0":
        print "Good-bye."

    elif choice=="1":
        new_item=raw_input("What item would you like to add to your inventory?")
        player.take(new_item)
        print "Inventory:", player.inventory()

    elif choice=="2":
        old_item=raw_input("What item would you like to remove from your inventory?")
        player.drop(old_item)
        print "Inventory:", player.inventory()


    else:
        print "\nSorry, but", choice, "isn't a valid choice."

main()

raw_input("Press enter to exit.")
class播放器(对象):
定义初始项(自身、名称、最大项、项):
self.name=name
self.max\u items=max\u items
self.items=项目
def库存(自我):
对于self.items中的项目:
打印项目
def接收(自身、新项目):

如果len(self.items)则问题在于以下陈述:

print "Inventory:", player.inventory()
您正在告诉Python打印从player.inventory()返回的值。但是您的inventory()方法只是打印库存,它不返回任何内容,因此返回值隐式为None

您可能希望明确选择以下选项之一:

print "Inventory:"
player.print_inventory()
或者,您可以让它返回一个字符串并执行以下操作:

print "Inventory:", player.inventory_as_str()

您是否介意更换该功能:

def inventory(self):
  for item in self.items:
      print item
def print_inventory(self):
    print "Inventory:"
    for item in self.items:
        print item
为此:

def inventory(self):
    print self.items
然后打电话:

print "Inventory"
player.inventory()
或者您可以使用以下功能:

def inventory(self):
  for item in self.items:
      print item
def print_inventory(self):
    print "Inventory:"
    for item in self.items:
        print item

你能发布你的输入和输出的样本吗?谢谢!我知道这很简单。我所要做的就是去掉那个逗号,哈哈。