Wir kriegen wöchentliche Aufgaben, die wir lösen müssen. Die haben bislang auch gut funktioniert und habe bislang auch alles bestanden, jedoch sitze ich derzeit mit einigen Kommilitonen an einem kleinen Problem. Und weil ich nicht weiss in welchem Forum ich mein Problem einordnen soll, habe ich jetzt einfach mal Allgemein ausgwählt.
Zur Aufgabe: Wir haben eine Liste in Form von Namen + Kontostand und müssen eine Kontoführung simulieren. Ich habe nun alle Funktionen schon programmiert und alles läuft einwandfrei, jedoch hadert es nun daran die Liste mit den Änderungen abzuspeichern. Die Aufgabenstellung lautet wie folgt:
.Entwickeln Sie ein Programm, welches eine einfache Kontoführung simuliert. Lesen Sie dazu die Kundedaten (Kontonummer, Name, Guthaben) aus der .txt-Datei aus. In der Konsole sollen Sie eins der Konten auswählen und nun Ein- und Auszahlungen tätigen können, sowie die Möglichkeit haben Ihren Kontostand anzeigen zu lassen. Ihr Programm soll für beliebig viele Konten ausgelegt sein, sprich Anzahl der Kunden in der .txt-Datei und deren Kundeninformationen sind variable. Die beigelegte .txt-Datei dient lediglich als Testdatei für Sie.
Speichern Sie Änderungen am Kontostand in der gleichen .txt-Datei.
Bislang haben wir immer mit with open("dateiname2.txt","w") as datei: datei.write(f"......") gearbeitet. Hat einer eurerseits da eine Lösung und könnte weiterhelfen.
Mein Code sieht wie folgt aus (ich weiss, dass man das vieeel kürzer fassen könnte mit definierten Funktionen und anderen Methoden, wir aber noch nicht so weit im Studium):
Code: Alles auswählen
datei = open("Konto.txt", "r")
print("Willkomen zu Ihrem Banksystem!")
funktion = input("Was möchten Sie tun ?\n [1] Kontostand anzeigen\n [2] Einzahlen\n [3] Auszahlen\n [0] Ende\n Ihre Eingabe: ")
betragliste = []
vollenamen = []
def anzeigen(datei, zeile):
for zeile in datei:
print(zeile)
if int(funktion) > 3:
print("Keine gültige Auswahl. Vielen Dank und auf Wiedersehen!")
elif int(funktion) < 0:
print("Keine gültige Auswahl. Vielen Dank und auf Wiedersehen!")
elif funktion == "0":
print("Das System wird beendet. Vielen Dank!")
elif funktion == "1":
for zeile in datei:
liste = zeile.strip().split()
vornamen = liste[1]
nachnamen = liste[2].replace(",", "")
namen = vornamen + " " + nachnamen
vollenamen.append(namen)
betragliste.append(liste[3])
print("Welches Kontostand möchten Sie anzeigen ?")
for i in range(len(vollenamen)):
print(f" [{i+1}] {vollenamen[i]} ")
auswahl = int(input(" Ihre Eingabe: "))
print(f"\n Ihr Kontostand beträgt: {betragliste[auswahl-1]} €")
elif funktion == "2":
for zeile in datei:
liste = zeile.strip().split()
vornamen = liste[1]
nachnamen = liste[2].replace(",", "")
namen = vornamen + " " + nachnamen
vollenamen.append(namen)
betragliste.append(liste[3])
print("Welches Konto möchten Sie verwenden ?")
for i in range(len(vollenamen)):
print(f" [{i+1}] {vollenamen[i]} ")
auswahl = int(input(" Ihre Eingabe: "))
wert = int(input("\n Wie viel möchten Sie einzahlen ?: "))
betragliste[auswahl-1] = float(betragliste[auswahl-1]) + wert
elif funktion == "3":
for zeile in datei:
liste = zeile.strip().split()
vornamen = liste[1]
nachnamen = liste[2].replace(",", "")
namen = vornamen + " " + nachnamen
vollenamen.append(namen)
betragliste.append(liste[3])
print("Welches Konto möchten Sie verwenden ?")
for i in range(len(vollenamen)):
print(f" [{i+1}] {vollenamen[i]} ")
auswahl = int(input(" Ihre Eingabe: "))
wert = int(input("\n Wie viel möchten Sie auszahlen ?: "))
betragliste[auswahl-1] = float(betragliste[auswahl-1]) - wert
with open("Konto.txt","w") as datei:
datei.write(f".......")
print("Ihren Kontostand finden Sie unter Konto.txt. Vielen Dank und auf Wiedersehen!")