Hjälp med kod - Python
Hej.
Jag sitter med min sista uppgift i programmering 1-kursen där man ska simulera en buss som kan ta emot 25 stycken passagerare och även räkna ut ålder på alla samt total ålder. Jag har kommit så långt att min meny och alla metoder funkar och jag trodde såklart att jag var färdig. Tills jag insåg att jag inte har fixat så att det säger stopp när det faktiskt är fullt. Jag är helt nybörjare och har verkligen kämpat med hela kursen men det verkar aldrig som att polletten vill trilla ner.
Mitt problem nu är att jag inte kan få det att funka när programmet ska meddela när "bussen" är full. Det är alltså under min metod där jag ska lägga till passagerare det inte funkar för mig. Programmet talar om för mig att number_of_passengers inte är definierat medan det i min hjärna är det eftersom jag har det högst upp, alltså number_of_passengers = 0. Om någon kan ta sig tid och förklara för mig så skulle jag vara evigt tacksam för just nu är jag bara frustrerad på mig själv.
Ignorera kommentarerna på slutet, det är från kodskalet vi ska använda oss av.
import replit
class Buss:
passengers = []
number_of_passengers = 0
def run(self):
while True:
replit.clear()
print("Välkommen till Buss-simulatorn")
print("================================")
print("1: Lägg till en ny passagerare")
print("2: Visa ålder på samtliga passagerare")
print("3: Beräkna totala åldern på alla passagerare")
print("4: Avsluta programmet\n")
x = int(input("Var god och välj ett nummer från menyn: "))
if x == 1:
add_passenger(self.passengers)
elif x == 2:
print_bus(self.passengers)
elif x == 3:
calc_total_age(self.passengers)
elif x == 4:
replit.clear()
print("Du har valt att avsluta programmet")
input("Tryck Enter för att avsluta.")
replit.clear()
break
else:
replit.clear()
print("Du gjorde inte ett giltigt val.\nGå tillbaka till menyn för att göra ett nytt val.")
input("Tryck Enter för att gå tillbaka till menyn")
print("Programmet har avslutats.")
# Här ska menyn ligga för att göra saker
# Vi rekommenderar switch och case här
# Dessutom visar jag hur man anropar metoderna nedan via menyn
# Börja nu med att köra koden för att se att det fungerar innan ni sätter igång med menyn.
# Bygg sedan steg-för-steg och testkör koden.
# Metoder för betyget E
def add_passenger(passengers):
while True:
replit.clear()
if len.number_of_passengers >=25:
print("Bussen är tyvärr full.")
input("Tryck Enter för att gå tillbaka till menyn.")
break
else:
passenger_age = int(input("Hur gammal är passageraren du vill lägga till?: "))
print(passenger_age)
passengers.append(passenger_age)
# Lägg till passagerare. Här skriver man då in ålder men eventuell annan information.
# Om bussen är full kan inte någon passagerare stiga på
def print_bus(passengers):
replit.clear()
print("Samtliga passagerares ålder är:")
print(*passengers, sep = ", ")
input("Tryck Enter för att gå tillbaka till menyn")
def calc_total_age(passengers):
replit.clear()
total_age = sum(passengers)
print("Den totala åldern på alla passagerare är " + str(total_age) + " år")
input("Tryck Enter för att gå tillbaka till menyn")
class Program:
def __init__(self, *args):
# Skapar ett objekt av klassen Buss som heter minbuss
# Denna del av koden kan upplevas väldigt förvirrande.
# Men i sådana fall är det bara att "skriva av".
minbuss = Buss()
minbuss.run()
input("Press Enter to continue . . . ")
# Nedanstående kod är kryptisk. Om ni vill kan ni behålla de raderna.
# Följande kod aktiveras när denna python fil körs
if __name__ == "__main__":
# skapa en instans (kopia) av klassen Program
my_program = Program()