Cathy James wrote:
I am almost there, but I need a little help:
I would like to
a) print my dogs in the format index. name: breed as follows:
0. Mimi:Poodle
1.Sunny: Beagle
2. Bunny: German Shepard
I am getting
(0, ('Mimi', 'Poodle')) . Mimi : Poodle instead-what have I done wrong?
b) I would like to append to my list, but my line dogs.dogAppend() is
giving a TypeError:
for i in enumerate (self.dogAppend()):
TypeError: 'list' object is not callable
Any help?
#MY CODE BELOW:
import sys
class Dog():
def __init__(self, name, breed):
self.name = name
self.breed = breed
def dogAppend(self):
self.dogAppend = []
self.dogAppend.append((self.name,self.breed))
return self.dogAppend
def display (self):
for i in enumerate (self.dogAppend()):
print (i,".", self.name, ": " + self.breed)
if __name__ == "__main__":
dogs = Dog(name=input (" Enter Dog Name: "), breed=input ("Enter
Dog Breed: "))
while not dogs:
print("Goodbye!!")
sys.exit()
else:
#dogs.dogAppend()
dogs.display()
From the looks of Dog it should only hold one animal, so I would drop
dogAppend and use a normal list; I would also change display to __str__
and remove the enumerate portion (since it's only one animal):
8<----------------------------------------------------------------------
#python 3
class Dog():
def __init__(self, name, breed):
self.name = name
self.breed = breed
def __str__(self):
return self.name + ": " + self.breed
if __name__ == "__main__":
dogs = []
while True:
name=input ("Enter Dog Name: ").rstrip() # stupid newlines
breed=input ("Enter Dog Breed: ").rstrip()
if name and breed:
dogs.append(Dog(name, breed))
for i, dog in enumerate(dogs):
print("%2i. %s" % (i, dog))
else:
print("good-bye")
break
8<----------------------------------------------------------------------
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list