Python Forum
Need help to make an empty list with possibility to add
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Need help to make an empty list with possibility to add
#1
Question:
Add a trait "emner" to the class Student. This should be a list of topics, and represent topics that the student takes or have taken. The list should start empty, and it should be possible to add new topics to a student.

def les_heltall(sporsmaal):
    svar = 0
    fortsett = True
    while fortsett:
        try:
            svar = int(input(sporsmaal))
            fortsett = False
        except ValueError:
            print("Du må skrve et heltall. prøv på nytt.")
    return svar


class Student:
    neste_studentnummer = 1

    def __init__(self, etternavn, fornavn, studieprogram, aarskurs=1):
        self.__studentnummer = Student.neste_studentnummer
        Student.neste_studentnummer += 1
        self.etternavn = etternavn
        self.fornavn = fornavn
        self.studieprogram = studieprogram
        self.aarskurs = aarskurs


    @property
    def studentnummer(self):
        return self.__studentnummer

    @property
    def aarskurs(self):
        return self.__aarskurs

    @aarskurs.setter
    def aarskurs(self, nytt_aarskurs):
        if nytt_aarskurs < 1:
            raise ValueError("Årskurs kan ikke være under 1!")
        if nytt_aarskurs > 5:
            raise ValueError("Årskurs kan ikke være over 5!")
        self.__aarskurs = nytt_aarskurs

    def __str__(self):
        return f"Student {self.__studentnummer}: {self.fornavn} {self.etternavn}, studerer {self.studieprogram} i" \
            f" {self.aarskurs} årskurs."

    def emner(self):
        self.emner = []





class Foreleser:
    def __init__(self, etternavn, fornavn, fagfelt, kontor, epost):
        self.etternavn = etternavn
        self.fornavn = fornavn
        self.fagfelt = fagfelt
        self.kontor = kontor
        self.epost = epost

    def __str__(self):
        return f"Foreleser {self.fornavn} {self.etternavn} i {self.fagfelt}."


class Emne:
    def __init__(self, emnekode, emnenavn, studiepoeng=10, semester="H", emneansvarlig=None):
        self.emnekode = emnekode
        self.emnenavn = emnenavn
        self.studiepoeng = studiepoeng
        self.semester = semester
        self.emneansvarlig = emneansvarlig

    def __str__(self):
        return f"Emne {self.emnekode} {self.emnenavn} på {self.studiepoeng} studiepoeng i " \
            f"semester {self.semester} og har {self.emneansvarlig}"


class System:
    def __init__(self):
        self.studenter = []
        self.forelesere = []
        self.emner = []

    def skriv_inn_student(self):
        print("Skriv inn student: ")
        fornavn = input("Fornavn: ")
        etternavn = input("Etternavn: ")
        studieprogram = input("Studieprogram: ")
        aarskurs = int(input("Årskurs: "))
        studenten = Student(etternavn, fornavn, studieprogram, aarskurs)
        self.studenter.append(studenten)

    def skriv_inn_foreleser(self):
        print("Skriv inn foreleser: ")
        fornavn = input("Fornavn: ")
        etternavn = input("Etternavn: ")
        fagfelt = input("Fagfelt: ")
        kontor = input("Kontor: ")
        epost = input("Epost: ")
        foreleseren = Foreleser(etternavn, fornavn, fagfelt, kontor, epost)
        self.forelesere.append(foreleseren)

    def skriv_inn_emne(self):
        print("Skriv inn emne: ")
        emnekode = input("Emnekode: ")
        navn = input("Navn: ")
        studiepoeng = int(input("Studiepoeng: "))
        semester = input("Semester (H for høst, V for vår): ")
        emnet = Emne(emnekode, navn, studiepoeng, semester)
        self.emner.append(emnet)

    def skriv_studenter(self):
        print("Studentene: ")
        for index, student in enumerate(self.studenter):
            print(f"{index}: {student}")

    def skriv_foreleserne(self):
        print("Foreleserne: ")
        for index, foreleser in enumerate(self.forelesere):
            print(f"{index}: {foreleser}")

    def skriv_emner(self):
        print("Emnene: ")
        for index, emne in enumerate(self.emner):
            print(f"{index}: {emne}")

    def sett_foreleser_for_emne(self):
        self.skriv_foreleserne()
        self.skriv_emner()
        emneindex = les_heltall("Velg emne: ")
        foreleserindex = les_heltall("Velg foreleser: ")
        self.emner[emneindex].emneansvarlig = self.forelesere[foreleserindex]

    def sett_inn_standard_data(self):
        self.forelesere.append(Foreleser("Tøssebro", "Erlend", "Data", "E-442", "[email protected]"))
        self.forelesere.append(Foreleser("Eielsen", "Arnfinn", "Elektro", "E-454", "[email protected]"))
        self.forelesere.append(Foreleser("Hervik", "Sigbjørn", "Matematikk", "E-543", "[email protected]"))
        self.emner.append(Emne("DAT110", "Grunnleggende programmering", 10, "V", self.forelesere[0]))
        self.emner.append(Emne("ING100", "Ingeniørfaglig Innføringsemne"))
        self.emner.append(Emne("MAT100", "Matematiske metoder 1"))
        self.emner.append(Emne("RED101", "Kjemi for data og elektro", 5))
        self.emner.append(Emne("RED102", "Fysikk for data og elektro", 5))
        self.studenter.append(Student("Nilsen", "Arne", "Data"))
        self.studenter.append(Student("Torgersen", "Ida", "Data"))
        self.studenter.append(Student("Ås", "Erling", "Elektro"))
        self.studenter.append(Student("Fredriksen", "Anne", "Elektro"))

    def meny(self):
        fortsetter = True
        while fortsetter:
            print("\n meny: ")
            print("0: Skriv inn student")
            print("1: Skriv inn foreleser")
            print("2: skriv inn emne")
            print("3: skriv ut studentene")
            print("4: skriv ut foreleserne")
            print("5: skriv ut emnene")
            print("6: Angi foreleser for et emne")
            print("s: Sett inn standard data (for testing)")
            print("a: avslutt")
            valg = input("Valg: ")
            if valg == "0":
                self.skriv_inn_student()
            elif valg == "1":
                self.skriv_inn_foreleser()
            elif valg == "2":
                self.skriv_inn_emne()
            elif valg == "3":
                self.skriv_studenter()
            elif valg == "4":
                self.skriv_foreleserne()
            elif valg == "5":
                self.skriv_emner()
            elif valg == "6":
                self.sett_foreleser_for_emne()
            elif valg == "s":
                self.sett_inn_standard_data()
            elif valg == "a":
                fortsetter = False


if __name__ == "__main__":
    system = System()
    system.meny()
Reply
#2
To make an empty list you just define and empty list and then append to it when needed:
empty_list = []

empty_list.append("something you like to add")
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Code with empty list not executing adeana 9 3,637 Dec-11-2023, 08:27 AM
Last Post: buran
  Why do I have to repeat items in list slices in order to make this work? Pythonica 7 1,259 May-22-2023, 10:39 PM
Last Post: ICanIBB
  help me to make my password list in python >>> Oktay34riza 0 552 Dec-23-2022, 12:38 PM
Last Post: Oktay34riza
  set.difference of two list gives empty result wardancer84 4 1,434 Jun-14-2022, 01:36 PM
Last Post: wardancer84
  displaying empty list vlearner 5 1,608 Jan-19-2022, 09:12 AM
Last Post: perfringo
  Remove empty keys in a python list python_student 7 2,903 Jan-12-2022, 10:23 PM
Last Post: python_student
  Possibility to create Checkpoints in Loops? coder_sw99 2 1,990 Jul-22-2021, 12:42 PM
Last Post: coder_sw99
  Make Groups with the List Elements quest 2 1,936 Jul-11-2021, 09:58 AM
Last Post: perfringo
Question How to make a 3D List of Excel Spreadsheets? chatguy 4 2,680 Jan-24-2021, 05:24 AM
Last Post: buran
  What is the value after JOINING an empty list? JaneTan 2 5,065 Jan-04-2021, 06:25 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020