[PIPython] Sorgenti personali

Giovanni Porcari giovanni.porcari
Mer 19 Gen 2005 15:00:40 CET


Il giorno 19/gen/05, alle 12:36, Simone Cansella ha scritto:

> Vi dò dei miei sorgenti che ho fatto per esercizio penso che ai vostri 
> occhi siano scarsi per ciò datemi un voto.
> Li ho convertiti  in txt per windows e quindi se avete Linux ci 
> mettete l'estensione per python (anche se questo penso che lo sapevate 
> già).
>

Caro Simone
un suggerimento è quello di usare da subito python per come è pensato.
Quindi, nonostante io stesso sia un novellino,
mi permetto di modificare il tuo codice per farne una versione object 
oriented.
Se non capisci qualcosa....chiedi pure.
Ciao

G.

------------------------------- Phonebook --------------------

class Phonebook(object):
     def __init__(self):
         self.menu=['Print Phone Numbers',
                    'Add Phone Number',
                    'Remove a Phone Number',
                    'Lookup a Phone Number',
                    'Quit'
                    ]
	
	self.implementors=[self.printPhoneNumbers,
			   self.addPhoneNumber,
			   self.removePhoneNumber,
			   self.lookupPhoneNumber,
			   self.stop
			   ]
	self.numbers={}
	
	self.running=True
	
     def run(self):
	while self.running:
	    s=a.menuSelection('Type in a number')-1
	    self.implementors[s]()
	
     def stop(self):
	print "Bye Bye"
	self.running=False
	
     def printMenu(self):
         for idx,value in enumerate (self.menu):
             print idx+1,'-',value

     def menuSelection(self,message='Select'):
         a.printMenu()
	m=len(self.menu)
	selection=m+1
	while selection >m:
	    selection=input (message+' (1-%i):' % m)
	return selection

     def printPhoneNumbers(self):
	print "Telephone Numbers:"
	for x in self.numbers.keys():
	    print "Name: ",x," \tNumber: ",self.numbers[x]
	print
	
     def addPhoneNumber(self):
	print "Add Name and Number"
	name = raw_input("Name:")
	phone = raw_input("Number:")
	self.numbers[name] = phone
	
     def removePhoneNumber(self):
         print "Remove Name and Number"
	name = raw_input("Name:")
	if name in self.numbers:
	    del numbers[name]
	else:
	    print name," was not found"
	
     def lookupPhoneNumber(self):
	print "Lookup a Number"
         name = raw_input ("Name:")
	if name in self.numbers:
	    print "The Number is", numbers[name]
	else:
	    print name," was not found"
	
if __name__ == '__main__':
     a=Phonebook()
     a.run()


More information about the Python mailing list