ajouter/supprimer des éléments dans une liste
Je suis en train de créer un joueur qui peut ajouter et supprimer des éléments à partir de leur inventaire. J'ai tout qui fonctionne, j'ai juste 1 petit problème. Chaque fois qu'il imprime l'inventaire, "None" s'affiche également. J'ai été jouer avec elle pour essayer de les enlever, mais peu importe ce que je fais, 'None' apparaît toujours dans le programme! Je sais que je suis en manque juste quelque chose de simple, mais je ne peux pas la comprendre pour la vie de moi.
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.")
Pouvez-vous poster un échantillon de votre entrée et de sortie?
OriginalL'auteur Jam | 2010-03-23
Vous devez vous connecter pour publier un commentaire.
Le problème est cette déclaration:
Vous dites Python pour imprimer la valeur retournée par joueur.d'inventaire(). Mais votre inventaire() méthode se contente d'afficher l'inventaire, il ne retourne rien, - si la valeur de retour est implicitement Aucun.
Vous voudrez probablement choisir explicitement ceci:
Ou, alternativement, il pourrait être de retour d'une chaîne et de le faire:
OriginalL'auteur dmazzoni
Auriez-vous l'esprit en remplacement de la fonction:
:
puis composez le:
Ou vous pourriez avoir de la fonction:
OriginalL'auteur Nope