HJÄLP!!!! med python...
HJÄLP!!!! med python...
min kod kommer nedan oxh frågor brevid!!! behöver hjälp!!!
den är en Bokningssystem där användaren ska boka,avboka ock skriva ut sin biljet.
# coding: latin-1
#import string
#import datetime
print '\n'
print '"Välkommen till SJ-Bokning!" '
print '\n'
print ' Här nedan ser du Vagnen!!'
print '\n'
class Biljet: # Biljetn med dess atribut och metoder
def __init__(self,indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats):
self.indistans = indistans
self.datum = datum
self.utdistans = utdistans
self.passagerare = passagerare
self.rok_och_ejrokplatsen = rok_och_ejrokplatsen
self.sittplats =int(sittplats)
def __str__(self):
return 'från: '+ self.indistans +'\n'+'till: '+ self.utdistans +'\n'+'Datum: '+str(self.datum)+'\n' +'passagerare: '+ self.passagerare +'\n'+ 'plats: '+ self.rok_och_ejrokplatsen +'\n'+'sittplats: '+ str(self.sittplats) +'\n'
#Lagra den senaste bokningen i en textfil för att kunna skriva ut den.
def SkrivaUt(self):
utfil= open('platsbiljet.txt','w')
print>>utfil, 'PLATSBLIJET'
print>>utfil,'Från:',self.indistans,'Till:',self.utdistans
print>>utfil,'Datum',self.datum
print>>utfil,'Passagerare:',self.passagerare
print>>utfil,'Plats Smoking eller None-smoking:',self.rok_och_ejrokplatsen
print>>utfil,'Sittplats:',self.sittplats
utfil.close()
# Vagn klassen där platserna finns, och metoder om hur platserna ska hanteras
class Vagn:
def __init__(self):
self.bokade = []
#Skriver ut Platserna på skärmen
def Platserna(self):
print '\tSmoking\t'
print '...............................'
for lista1_2 in [0,1]:
for element_i_lista1_2 in range(8):
if self.BokadPlats(platserna1_2[lista1_2][element_i_lista1_2]) :
print ' * ',
else:
print str (platserna1_2[lista1_2][element_i_lista1_2])+' ',
print
print '...............................'
print '\tNone-Smoking\t'
print '...............................'
for lista3_4 in [0,1]:
for element_i_lista3_4 in range(8):
if self.BokadPlats(platserna3_4[lista3_4][element_i_lista3_4]):
print ' * ',
else:
print str (platserna3_4[lista3_4][element_i_lista3_4])+' ',
print
return ''
# Hur platserna bokas
def BokadPlats (self,nr):
for B in self.bokade:
if B.sittplats == nr:
return True
return False
#Hur en platse avbokas och dess felinmatningar
def Avboka(self,nr):
for A in self.bokade:
if str(A.sittplats)==nr:
self.bokade.remove(A)
print 'Din plats har blivit avbokad välj någon av följande: '
print '\n'
print self.Platserna()
break
else:
print 'Den platsen finns ej att avboka, Försök igen!! '
print '\n'
def Meny(self):
val =''
while val != 'B'+'A'+'S'+'Q' :
print '\n'
print 'VÄLJ NÅGOT AV FÖLJANDE!!'
print '1 - vill du boka?: tryck på B'
print '2 - vill du avboka : tryck på A?'
print '3 - vill du skriva ut din bokning ?: tryck S'
print '0 - Avsluta tryck Q'
print '\n'
val = raw_input('Ditt val: ');
print '\n'
if val == 'B':
self.BokaBiljet()
if val == 'A':
nr = raw_input( 'vilket plats vill du avboka: '+ '\n')
self.Avboka(nr)
if val == 'S':
self.SkrivaUt()
if val == 'Q':
print
print '"Tack och välkommen åter"'+ '\n'
#break
#return True
# När användaren väjler BOKA då kommer till denna meny alltså Boka Biljeten meny
def BokaBiljet(self):
indistans=''
while True:
svar = raw_input('Vart vill du åka? (skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB'+'\n'+'Lund'+'\n'+'Kiruna'+'\n''\n')
indistans svar)
print '\n'
if indistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en av ovanstående destinationerna!!!'
print '\n'
else:
break
utdistans=''
while True:
svar = raw_input('Varifrån vill du åka?(skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB '+'\n'+'Lund '+'\n'+'Kiruna '+'\n''\n')
utdistans svar)
if utdistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en annan avreseort!! '
print '\n'
elif utdistans ==indistans:
print 'Skriv en annan avreseort!! '
print '\n'
else:
break
print '\n'
svar = raw_input('när vill du åka ååmmdd: ')
datum = (svar)
print '\n'
passagerare=''
while True:
svar = raw_input('Vuxen : V '+ '\n' +'Barn : B '+'\n' )
passagerare svar)
print '\n'
if passagerare not in ['V','v','B','b']:
print'Felaktig val'
print '\n'
else:
break
#print '\n'
#############Hur kan jag göra så att när användaren har valt sitt tex. rökare får inte välja nån icke rökare platsnummer?????
rok_och_ejrokplatsen=''
while True:
svar=raw_input('Smoking: S'+'\n'+'None-Smoking? : N '+ '\n')
rok_och_ejrokplatsen = (svar)
if rok_och_ejrokplatsen not in ['S','s','N','n']:
print 'Felaktig val'
print '\n'
else:
break
print '\n'
self.Platserna()
print '\n'
#sittplats = ''
sittplats = True ###########hur ska jag göra så att användaren inte får skriva bokstäver eller trycka på enter så att programmet inte kraschar?????
while sittplats:
svar=raw_input('välj en sittplats från skärmen : ' + '\n')
sittplats = int(svar)
if sittplats > 32:
print ' Denna plats finns ej!! '
print '\n'
elif self.BokadPlats(sittplats):
print 'Platsen är Bokad!! välj en annan Sittplats!!'
print '\n'
elif sittplats =='':
print 'Fel'
else:
sittplats = False
B = Biljet(indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats)
self.bokade.append(B)
B.SkrivaUt()
print B
print '\n'
self.Platserna()
print
#Skriver ut på skärmen den senaste bokningen #######det kommer alltid den första bokningen och inte den senaste. Jag vill ha den senaste/ eller alla bokningar som har gjorts. Alltså de ska visas på skärmen.
def SkrivaUt (self):
for B in self.bokade:
print B
break
else:
print'"Det finns ingenting av skriva ut!"'
print '\n'
#platsernas listor
platserna1 = ([1,8,9 ,16,17,24,25,32])
platserna2 = ([2,7,10,15,18,23,26,31])
platserna3 = ([3,6,11,14,19,22,27,30])
platserna4 = ([4,5,12,13,20,21,28,29])
platserna1_2 = ([platserna1,platserna2])
platserna3_4= ([platserna3,platserna4])
V1=Vagn()
V1.Platserna()
print'\n'
V1.Meny()
V1.SkrivaUt()
#V1.Platserna()
den är en Bokningssystem där användaren ska boka,avboka ock skriva ut sin biljet.
# coding: latin-1
#import string
#import datetime
print '\n'
print '"Välkommen till SJ-Bokning!" '
print '\n'
print ' Här nedan ser du Vagnen!!'
print '\n'
class Biljet: # Biljetn med dess atribut och metoder
def __init__(self,indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats):
self.indistans = indistans
self.datum = datum
self.utdistans = utdistans
self.passagerare = passagerare
self.rok_och_ejrokplatsen = rok_och_ejrokplatsen
self.sittplats =int(sittplats)
def __str__(self):
return 'från: '+ self.indistans +'\n'+'till: '+ self.utdistans +'\n'+'Datum: '+str(self.datum)+'\n' +'passagerare: '+ self.passagerare +'\n'+ 'plats: '+ self.rok_och_ejrokplatsen +'\n'+'sittplats: '+ str(self.sittplats) +'\n'
#Lagra den senaste bokningen i en textfil för att kunna skriva ut den.
def SkrivaUt(self):
utfil= open('platsbiljet.txt','w')
print>>utfil, 'PLATSBLIJET'
print>>utfil,'Från:',self.indistans,'Till:',self.utdistans
print>>utfil,'Datum',self.datum
print>>utfil,'Passagerare:',self.passagerare
print>>utfil,'Plats Smoking eller None-smoking:',self.rok_och_ejrokplatsen
print>>utfil,'Sittplats:',self.sittplats
utfil.close()
# Vagn klassen där platserna finns, och metoder om hur platserna ska hanteras
class Vagn:
def __init__(self):
self.bokade = []
#Skriver ut Platserna på skärmen
def Platserna(self):
print '\tSmoking\t'
print '...............................'
for lista1_2 in [0,1]:
for element_i_lista1_2 in range(8):
if self.BokadPlats(platserna1_2[lista1_2][element_i_lista1_2]) :
print ' * ',
else:
print str (platserna1_2[lista1_2][element_i_lista1_2])+' ',
print '...............................'
print '\tNone-Smoking\t'
print '...............................'
for lista3_4 in [0,1]:
for element_i_lista3_4 in range(8):
if self.BokadPlats(platserna3_4[lista3_4][element_i_lista3_4]):
print ' * ',
else:
print str (platserna3_4[lista3_4][element_i_lista3_4])+' ',
return ''
# Hur platserna bokas
def BokadPlats (self,nr):
for B in self.bokade:
if B.sittplats == nr:
return True
return False
#Hur en platse avbokas och dess felinmatningar
def Avboka(self,nr):
for A in self.bokade:
if str(A.sittplats)==nr:
self.bokade.remove(A)
print 'Din plats har blivit avbokad välj någon av följande: '
print '\n'
print self.Platserna()
break
else:
print 'Den platsen finns ej att avboka, Försök igen!! '
print '\n'
def Meny(self):
val =''
while val != 'B'+'A'+'S'+'Q' :
print '\n'
print 'VÄLJ NÅGOT AV FÖLJANDE!!'
print '1 - vill du boka?: tryck på B'
print '2 - vill du avboka : tryck på A?'
print '3 - vill du skriva ut din bokning ?: tryck S'
print '0 - Avsluta tryck Q'
print '\n'
val = raw_input('Ditt val: ');
print '\n'
if val == 'B':
self.BokaBiljet()
if val == 'A':
nr = raw_input( 'vilket plats vill du avboka: '+ '\n')
self.Avboka(nr)
if val == 'S':
self.SkrivaUt()
if val == 'Q':
print '"Tack och välkommen åter"'+ '\n'
#break
#return True
# När användaren väjler BOKA då kommer till denna meny alltså Boka Biljeten meny
def BokaBiljet(self):
indistans=''
while True:
svar = raw_input('Vart vill du åka? (skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB'+'\n'+'Lund'+'\n'+'Kiruna'+'\n''\n')
indistans svar)
print '\n'
if indistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en av ovanstående destinationerna!!!'
print '\n'
else:
break
utdistans=''
while True:
svar = raw_input('Varifrån vill du åka?(skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB '+'\n'+'Lund '+'\n'+'Kiruna '+'\n''\n')
utdistans svar)
if utdistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en annan avreseort!! '
print '\n'
elif utdistans ==indistans:
print 'Skriv en annan avreseort!! '
print '\n'
else:
break
print '\n'
svar = raw_input('när vill du åka ååmmdd: ')
datum = (svar)
print '\n'
passagerare=''
while True:
svar = raw_input('Vuxen : V '+ '\n' +'Barn : B '+'\n' )
passagerare svar)
print '\n'
if passagerare not in ['V','v','B','b']:
print'Felaktig val'
print '\n'
else:
break
#print '\n'
#############Hur kan jag göra så att när användaren har valt sitt tex. rökare får inte välja nån icke rökare platsnummer?????
rok_och_ejrokplatsen=''
while True:
svar=raw_input('Smoking: S'+'\n'+'None-Smoking? : N '+ '\n')
rok_och_ejrokplatsen = (svar)
if rok_och_ejrokplatsen not in ['S','s','N','n']:
print 'Felaktig val'
print '\n'
else:
break
print '\n'
self.Platserna()
print '\n'
#sittplats = ''
sittplats = True ###########hur ska jag göra så att användaren inte får skriva bokstäver eller trycka på enter så att programmet inte kraschar?????
while sittplats:
svar=raw_input('välj en sittplats från skärmen : ' + '\n')
sittplats = int(svar)
if sittplats > 32:
print ' Denna plats finns ej!! '
print '\n'
elif self.BokadPlats(sittplats):
print 'Platsen är Bokad!! välj en annan Sittplats!!'
print '\n'
elif sittplats =='':
print 'Fel'
else:
sittplats = False
B = Biljet(indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats)
self.bokade.append(B)
B.SkrivaUt()
print B
print '\n'
self.Platserna()
#Skriver ut på skärmen den senaste bokningen #######det kommer alltid den första bokningen och inte den senaste. Jag vill ha den senaste/ eller alla bokningar som har gjorts. Alltså de ska visas på skärmen.
def SkrivaUt (self):
for B in self.bokade:
print B
break
else:
print'"Det finns ingenting av skriva ut!"'
print '\n'
#platsernas listor
platserna1 = ([1,8,9 ,16,17,24,25,32])
platserna2 = ([2,7,10,15,18,23,26,31])
platserna3 = ([3,6,11,14,19,22,27,30])
platserna4 = ([4,5,12,13,20,21,28,29])
platserna1_2 = ([platserna1,platserna2])
platserna3_4= ([platserna3,platserna4])
V1=Vagn()
V1.Platserna()
print'\n'
V1.Meny()
V1.SkrivaUt()
#V1.Platserna()
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
Re: HJÄLP!!!! med python...
formattera texten med code taggen. Som det ser ut nu ör det ingen fungerande python kod.
Re: HJÄLP!!!! med python...
Kod: Markera allt
#min kod kommer nedan oxh frågor brevid!!! behöver hjälp!!!
#den är en Bokningssystem där användaren ska boka,avboka ock skriva ut sin biljet.
# hjälp med när användaren ska välja plats om den trycker bokstäver eller bara enter då kraschar programet.
#det skriver inte ut den senaste bokningen utan den första bokningen. om det går att den ska skrivas ut alla bokningarna(på skärmen)
#om användaren väljer rökare, den ska kunna välja icker rökare plats.
# coding: latin-1
#import string
#import datetime
print '\n'
print '"Välkommen till SJ-Bokning!" '
print '\n'
print ' Här nedan ser du Vagnen!!'
print '\n'
class Biljet: # Biljetn med dess atribut och metoder
def __init__(self,indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats):
self.indistans = indistans
self.datum = datum
self.utdistans = utdistans
self.passagerare = passagerare
self.rok_och_ejrokplatsen = rok_och_ejrokplatsen
self.sittplats =int(sittplats)
def __str__(self):
return 'från: '+ self.indistans +'\n'+'till: '+ self.utdistans +'\n'+'Datum: '+str(self.datum)+'\n' +'passagerare: '+ self.passagerare +'\n'+ 'plats: '+ self.rok_och_ejrokplatsen +'\n'+'sittplats: '+ str(self.sittplats) +'\n'
#Lagra den senaste bokningen i en textfil för att kunna skriva ut den.
def SkrivaUt(self):
utfil= open('platsbiljet.txt','w')
print>>utfil, 'PLATSBLIJET'
print>>utfil,'Från:',self.indistans,'Till:',self.utdistans
print>>utfil,'Datum',self.datum
print>>utfil,'Passagerare:',self.passagerare
print>>utfil,'Plats Smoking eller None-smoking:',self.rok_och_ejrokplatsen
print>>utfil,'Sittplats:',self.sittplats
utfil.close()
# Vagn klassen där platserna finns, och metoder om hur platserna ska hanteras
class Vagn:
def __init__(self):
self.bokade = []
#Skriver ut Platserna på skärmen
def Platserna(self):
print '\tSmoking\t'
print '...............................'
for lista1_2 in [0,1]:
for element_i_lista1_2 in range(8):
if self.BokadPlats(platserna1_2[lista1_2][element_i_lista1_2]) :
print ' * ',
else:
print str (platserna1_2[lista1_2][element_i_lista1_2])+' ',
print
print '...............................'
print '\tNone-Smoking\t'
print '...............................'
for lista3_4 in [0,1]:
for element_i_lista3_4 in range(8):
if self.BokadPlats(platserna3_4[lista3_4][element_i_lista3_4]):
print ' * ',
else:
print str (platserna3_4[lista3_4][element_i_lista3_4])+' ',
print
return ''
# Hur platserna bokas
def BokadPlats (self,nr):
for B in self.bokade:
if B.sittplats == nr:
return True
return False
#Hur en platse avbokas och dess felinmatningar
def Avboka(self,nr):
for A in self.bokade:
if str(A.sittplats)==nr:
self.bokade.remove(A)
print 'Din plats har blivit avbokad välj någon av följande: '
print '\n'
print self.Platserna()
break
else:
print 'Den platsen finns ej att avboka, Försök igen!! '
print '\n'
def Meny(self):
val =''
while val != 'B'+'A'+'S'+'Q' :
print '\n'
print 'VÄLJ NÅGOT AV FÖLJANDE!!'
print '1 - vill du boka?: tryck på B'
print '2 - vill du avboka : tryck på A?'
print '3 - vill du skriva ut din bokning ?: tryck S'
print '0 - Avsluta tryck Q'
print '\n'
val = raw_input('Ditt val: ');
print '\n'
if val == 'B':
self.BokaBiljet()
if val == 'A':
nr = raw_input( 'vilket plats vill du avboka: '+ '\n')
self.Avboka(nr)
if val == 'S':
self.SkrivaUt()
if val == 'Q':
print
print '"Tack och välkommen åter"'+ '\n'
#break
#return True
# När användaren väjler BOKA då kommer till denna meny alltså Boka Biljeten meny
def BokaBiljet(self):
indistans=''
while True:
svar = raw_input('Vart vill du åka? (skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB'+'\n'+'Lund'+'\n'+'Kiruna'+'\n''\n')
indistans =(svar)
print '\n'
if indistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en av ovanstående destinationerna!!!'
print '\n'
else:
break
utdistans=''
while True:
svar = raw_input('Varifrån vill du åka?(skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB '+'\n'+'Lund '+'\n'+'Kiruna '+'\n''\n')
utdistans =(svar)
if utdistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en annan avreseort!! '
print '\n'
elif utdistans ==indistans:
print 'Skriv en annan avreseort!! '
print '\n'
else:
break
print '\n'
svar = raw_input('när vill du åka ååmmdd: ')
datum = (svar)
print '\n'
passagerare=''
while True:
svar = raw_input('Vuxen : V '+ '\n' +'Barn : B '+'\n' )
passagerare =(svar)
print '\n'
if passagerare not in ['V','v','B','b']:
print'Felaktig val'
print '\n'
else:
break
#print '\n'
rok_och_ejrokplatsen=''
while True:
svar=raw_input('Smoking: S'+'\n'+'None-Smoking? : N '+ '\n')
rok_och_ejrokplatsen = (svar)
if rok_och_ejrokplatsen not in ['S','s','N','n']:
print 'Felaktig val'
print '\n'
else:
break
print '\n'
self.Platserna()
print '\n'
#sittplats = ''
sittplats = True
while sittplats:
svar=raw_input('välj en sittplats från skärmen : ' + '\n')
sittplats = int(svar)
if sittplats > 32:
print ' Denna plats finns ej!! '
print '\n'
elif self.BokadPlats(sittplats):
print 'Platsen är Bokad!! välj en annan Sittplats!!'
print '\n'
elif sittplats =='':
print 'Fel'
else:
sittplats = False
B = Biljet(indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats)
self.bokade.append(B)
B.SkrivaUt()
print B
print '\n'
self.Platserna()
print
#Skriver ut på skärmen den senaste bokningen
def SkrivaUt (self):
for B in self.bokade:
print B
break
else:
print'"Det finns ingenting av skriva ut!"'
print '\n'
#platsernas listor
platserna1 = ([1,8,9 ,16,17,24,25,32])
platserna2 = ([2,7,10,15,18,23,26,31])
platserna3 = ([3,6,11,14,19,22,27,30])
platserna4 = ([4,5,12,13,20,21,28,29])
platserna1_2 =([platserna1,platserna2])
platserna3_4= ([platserna3,platserna4])
V1=Vagn()
V1.Platserna()
print'\n'
V1.Meny()
V1.SkrivaUt()
#V1.Platserna()
Senast redigerad av 2 conini, redigerad totalt 14 gång.
- Urban Anjar
- Inlägg: 7306
- Blev medlem: 05 nov 2006, 22:59
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Vickleby
- Kontakt:
Re: HJÄLP!!!! med python...
Fortfarande nåt knas. I python är indenteringarna betydelsebärande.
Ubuntu från början: http://ubuntufranborjan.wordpress.com/
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
- Louie
- Inlägg: 2361
- Blev medlem: 15 nov 2006, 10:15
- OS: Ubuntu
- Utgåva: 18.04 Bionic Beaver LTS
- Ort: Göteborg
- Kontakt:
Re: HJÄLP!!!! med python...
Vad är det som inte fungerar med koden?
Mycket lättare att felsöka om du kan ge ett felmeddelande samt referera till raden/raderna som krånglar för allt är väl inte kaput?
/L
Mycket lättare att felsöka om du kan ge ett felmeddelande samt referera till raden/raderna som krånglar för allt är väl inte kaput?
/L
Ett väl utfört arbete ger en inre tillfredsställelse och är den grund var på samhället vilar.
Linuxuser - Fri webhosting åt folket!
IRC: Louie` @ #kurbitz freenode - Jabber: PM för jabber
Linuxuser - Fri webhosting åt folket!
IRC: Louie` @ #kurbitz freenode - Jabber: PM för jabber
- Urban Anjar
- Inlägg: 7306
- Blev medlem: 05 nov 2006, 22:59
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Vickleby
- Kontakt:
Re: HJÄLP!!!! med python...
Ja, felmeddelanden är hjälpsamma, även om de kanske inte verkar så i början. Råkar man ut för ett helt gäng är det ofta det första man ska bry sig om. Resten är inte sällan följdefel.
Ubuntu från början: http://ubuntufranborjan.wordpress.com/
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
-
- Inlägg: 378
- Blev medlem: 24 maj 2007, 01:53
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Kalmar/Luleå
- Kontakt:
Re: HJÄLP!!!! med python...
Tittat lite och försökt hitta var någonstans det blir fel med inmatningen och kommit fram till att din while-loop för att kolla om man är skrivit in ett gitligt alternativ inte fungerar, detta för att python tolkar 'B'+'A'+'S'+'Q' som 'BASQ' och man fastnar i loopen.
Jag föreslår att du använder en dict för att hålla reda på vilka menyalternativ som finns och en rekursiv funktion för inmatningen. ungefär som nedan.
Angående att programmet krashar när användaren frågas om en sittplats och inte matar in ett nummer så rekommenderar jag samma metodik där, rekursiv funktion som frågar om en siffra, testar den och antingen skickar den vidare till bokning/avbokning eller säger att det inte är en siffra och ber användaren försöka igen.
För utskriften av biljetten på skärmen så misstänker jag att det är ett följdfel på något annat. Är dock lite för trött för att sätta mig in i det fullt ut.
Jag föreslår att du använder en dict för att hålla reda på vilka menyalternativ som finns och en rekursiv funktion för inmatningen. ungefär som nedan.
Kod: Markera allt
class Vagn:
# ... Dina metoder
self.alternativ = { 'b': self.bokaBiljett, 'a' : self.avbokaBiljett, 'q' : self.exit, 'e': self.exit , 's' : self.SkrivaUt, 'h' : self.help}
def promt(self, line):
try:
val = raw_input(line).lower() # .lower() gör att upper eller lower-case blir egalt.
except:
print "Error in getting input, exiting" #För att veta om det blir fel. :)
val = 'e'
if alternativ.has_key(val): #testar så att det var ett giltligt val
self.alternativ[val]() #Kallar den funktion som matchas mot input
else:
self.promt('Inget giltligt val (h för hjälp)\nDitt val: ')
def help(self):
print 'VÄLJ NÅGOT AV FÖLJANDE:\n\
1 - vill du boka?: tryck på B\n\
2 - vill du avboka : tryck på A?\n\
3 - vill du skriva ut din bokning ?: tryck S\n\
0 - Avsluta tryck Q\n\n'
Kod: Markera allt
#exempelvis
def getNumber(line):
nr_raw = raw_input(line)
try:
nr = int(nr_raw)
except:
print "\b\r'
getNumber('inget tal! Försök igen:')
return nr
Hur jag än gör så slutar det alltid med E17 på netbooken....