sort() bei class, er macht was nur was? ;-)
Verfasst: Mittwoch 14. Februar 2007, 08:37
Hallo ich habe mir auch ein Programm geschrieben, das Filme in eine Textdatei einliest.
Nun möchte ich diese auch sortieren, erstmal nur nach dem Filmtitel
Nun, was soll ich sagen, er sortiert, aber nach keinem Schema, zumindest keines das ich bisher durchschaut habe.
Habe vorher ein ähnliches Programm geschrieben das allerdings nur die Namen in eine Textdatei eingelesen hat, und da hats mit
gl.sort()
funktioniert.
Nun möchte ich diese auch sortieren, erstmal nur nach dem Filmtitel
Code: Alles auswählen
choice = 0
weiter = True
import pickle as p
moviefile = 'simmsave'
class film:
def __init__(self, name, year,lend):
self.name = name
self.year = year
self.lend = lend
print 'Film %s initialisiert' % self.name
def info(self):
print '"%s" "%s" "%s" ' %(self.name, self.year, self.lend)
try:
f = file(moviefile)
gl = p.load(f)
except:
ab = []
f = file(moviefile, 'w')
p.dump(ab, f)
f.close()
def menu ():
print 'Bitte Auswahl treffen'
print ' (1) Um die komplette Liste anzuzeigen'
print ' (2) Um einen Film zu suchen'
print ' (3) Um einen neuen Film hinzuzufuegen'
print ' (4) Um einen Film zu loeschen'
print ' (5) Liste Sortieren'
print ' (6) Um zu speichern'
print ' (0) Beenden'
menu()
while True:
choice = int(raw_input('Was wollen sie machen? '))
if choice == 1:
print 'Titel Jahr Verliehen an'
if len(gl) > 0:
for item in gl:
item.info()
else:
print 'Noch nichts in die Liste eingetragen'
elif choice == 2:
searchitem = raw_input('Nach was suchen?: ')
for titel in gl:
if titel.lend == searchitem:
titel.info()
break
else:
print 'Name nicht gefunden'
elif choice == 3:
new_name = raw_input('Bitte Filmnamen eingeben: ')
new_year = raw_input('Bitte Erscheinungsjahr eingeben: ')
new_lend = raw_input('Verliehen?: ')
new_name = film(new_name, new_year, new_lend)
gl.append(new_name)
elif choice == 4:
deleteitem = raw_input('Welchen Film loeschen? ')
for film in gl:
if film.name == deleteitem:
gl.remove(film)
print 'Film geloescht'
break
else:
print 'Kann Film nicht finden'
elif choice == 6:
f = file(moviefile, 'w')
p.dump(gl, f)
f.close()
print 'Filmliste gespeichert'
elif choice == 0:
save = raw_input('Speichern vor dem Beenden?(j/n) ')
if save == 'j':
f = file(moviefile, 'w')
p.dump(gl, f)
f.close()
print 'Liste gespeichert, Programm Beendet'
break
elif save == 'n':
print 'Beendet ohne zu speichern'
break
elif choice == 5:
gl.sort()
print 'Sortiert'
Habe vorher ein ähnliches Programm geschrieben das allerdings nur die Namen in eine Textdatei eingelesen hat, und da hats mit
gl.sort()
funktioniert.