Hallo Leute ich muss in Python etwas für die Uni programmieren ich hab bloß ein Problem mit der While Schleife das Problem ist explizit beschrieben falls mir jemand helfen könnte wäre super
Vielen Dank
Hier folgt der Code:
Vielen Dank
Hier folgt der Code:
Java:
>>> import PySimpleGUI as sg
sg.theme('Default1')
preis = 0
hauptsaison = [6,7,8,9]
nebensaison = [1,2,3,4,5,10,11,12]
niedrigesternehotel = [1,2,3]
hohesternehotel = [4,5]
grundpreis_zweisternehotel = 100
grundpreis_dreisternehotel = 150
grundpreis_viersternehotel = 200
grundpreis_fünfsternehotel = 250
aufschlag_flugzeug = 300
aufschlag_zug = 150
aufschlag_bus = 75
rabatt_nebensaison = 0.8
personenanzahl_groß = [2,3,4,5,6]
# Inzidenz Problem! Programm soll prüfen ob Reiseland ein Risikogebiet ist, dass ist der Fall, wenn die Inzidenz aus Zeile 30-33
# über 100 ist,falls dass der Fall ist soll im GUI hinter dem dem Reiseland (können auch mehrere sein, abhängig von der Inzidenz)
# folgende Anzeige erscheinen (Land (Achtung Risikogebiet!))
# Problem ist: wir brächten für alle Möglichkeiten z.B. Italien (Risiko), Schweden (Risiko), Spanien, England oder
# Spanien (Risiko), Schweden (Risiko), England, Italien, sehr viele If-Schleifen quasi 256 Stück. Kann man das leichter machen?
inzidenz_sp = 90
inzidenz_i = 100
inzidenz_e = 100
inzidenz_sw = 100
Spanien = "Spanien"
Italien = "Italien"
Risikogebiet = []
reiseländer =[]
if inzidenz_sp <= 100:
Spanien in Risikogebiet
else:
Spanien in reiseländer
if "Italien" in Risikogebiet:
reiseländer = ["Italien (Achtung Risikogebiet)", "Spanien", "England", "Schweden"]
else:
reiseländer = ["Italien", "Spanien", "England", "Schweden"]
layout1 = [ [sg.Text('Bitte geben Sie Ihren Reisedaten an.')],
[sg.Text('Reisemonat als Zahl:', size=(15, 1)), sg.InputText(key = "reisemonat")],
[sg.Text('Anzahl der Nächte:', size=(15, 1)), sg.InputText(key = "anzahl_naechte")],
[sg.Text('In welches Land möchten Sie reisen?:', size=(15, 5)), sg.Combo(reiseländer, key = "region")],
[sg.Text('Mit wie vielen Personen wollen Sie anreisen?:', size=(15, 1)), sg.InputText(key = "personenzahl")],
[sg.Button('Bestätigen'), sg.Button('Abbrechen')] ]
window1 = sg.Window('Hotelbuchung', layout1, size=(500, 300))
event, values = window1.read()
window1.close()
reisemonat_zahl = int(values["reisemonat"])
anzahl_naechte = int(values["anzahl_naechte"])
region = values["region"]
personenzahl = int(values["personenzahl"])
layout2 = [ [sg.Text('Bitte geben Sie Ihren persönliche Daten ein.')],
[sg.Text('Name:', size=(15, 1)), sg.InputText(key = "Name")],
[sg.Text('Geburtsdatum:', size=(15, 1)), sg.InputText(key = "Geburtsdatum")],
[sg.Text("Geschlecht:", size=(15, 1)), sg.InputText(key = "Geschlecht")],
[sg.Button('Bestätigen'), sg.Button('Abbrechen')] ]
window2 = sg.Window("Persönliche Daten", layout2)
# Hier Problem 2: Daten aus While Schleife werden überschrieben, wie speichern wir diese bei jedem Durchlauf einzelnd in einer
# externen Liste ab? Problem: Daten werden bei jedem While Durchlauf überschrieben. Außerdem funktioniert das Fenster für
# für mehrere Eingaben von Personendate nicht und wir können nicht bestätigen.
i = 0
personenzahl = i
if personenzahl == 1:
event, values = window2.read()
elif personenzahl in personenanzahl_groß:
while i < personenzahl:
event, values = window2.read()
if event == "Bestätigen":
window2.close()
i = i+1
while True:
window2.read()
event, values = window2.read()
if event == sg.WIN_CLOSED or event == 'Abbrechen':
break
window2.close()
name = values["Name"]
geburtsdatum = values["Geburtsdatum"]
geschlecht = values["Geschlecht"]
#Impfstatus
impfstatus = ["Ja","Nein"]
layout3 = [ [sg.Text("Impfstatus:")],
[sg.Text("Sind Sie geimpft", size=(15, 1)), sg.Combo(impfstatus, key = "impfstatus")],
[sg.Button("Bestätigen"), sg.Button("Abbrechen")] ]
window3 = sg.Window("Impfstatus", layout3)
event, values = window3.read()
window3.close()
impfstatus_angabe = values["impfstatus"]
#Hotelbewertung
sterneanzahl = [2,3,4,5]
layout4 = [ [sg.Text("Hotelbewertung:")],
[sg.Text("Wie viele Sterne soll Ihr Hotel haben", size=(15, 1)), sg.Combo(sterneanzahl, key = "sterneanzahl")],
[sg.Button("Bestätigen"), sg.Button("Abbrechen")] ]
window4 = sg.Window("Hotelbewertung", layout4)
event, values = window4.read()
window4.close()
sterneanzahl_angabe = int(values["sterneanzahl"])
#Preisberechnung
if sterneanzahl_angabe == 2:
preis = preis + grundpreis_zweisternehotel * personenzahl * anzahl_naechte
elif sterneanzahl_angabe == 3:
preis = preis + grundpreis_dreisternehotel * personenzahl * anzahl_naechte
elif sterneanzahl_angabe == 4:
preis = preis + grundpreis_viersternehotel * personenzahl * anzahl_naechte
elif sterneanzahl_angabe == 5:
preis = preis + grundpreis_fünfsternehotel * personenzahl * anzahl_naechte
#Anreise
anreiseart = ["Zug","Flugzeug", "Bus", "Selbstanreise"]
layout5 = [ [sg.Text("Anreise:")],
[sg.Text("Wie möchten Sie anreisen?", size=(15, 1)), sg.Combo(anreiseart, key = "anreiseart")],
[sg.Button("Bestätigen"), sg.Button("Abbrechen")] ]
window5 = sg.Window("Anreiseart", layout5)
event, values = window5.read()
window5.close()
anreiseart_angabe = values["anreiseart"]
#Preisberechnung
if anreiseart_angabe == "Zug":
preis = preis + aufschlag_zug
elif anreiseart_angabe == "Flugzeug":
preis = preis + aufschlag_flugzeug
elif anreiseart_angabe == "Bus":
preis = preis + aufschlag_bus
elif anreiseart_angabe == "Selbstanreise":
preis = preis
print(preis) <<<
Zuletzt bearbeitet von einem Moderator: