ankon Geschrieben 29. November 2021 Teilen Geschrieben 29. November 2021 Hallo, ich beginne folgende Aufgabe zu lösen, nun benötige ich Ihre Hilfe/korrekturen auf dem Weg zur entgültigen Klarheit. Man muss ein Programm (auf Python) zu schreiben, welches das gesammte/summare Tickets-Kosten berechnet. Das Programm muss wie folgt arbeiten: 1. Zuerst soll der Benutzer befragt werden: wie viel (Anzahl) der Tickets will er für die Konferenz kaufen. 2. Weiter, für jedes Ticket wird es nach Alter des Besuchers befragt. Gemäß dem Alter des Besuchers werden Preiskathegorien gewählt: - Falls besucher jünger als 18 Jahre alt ist - dann kommt er zur Konferenz kostenlos - Falls Alter des Besuchers vom 18 bis 25 Jahre Alt: - dann der Preis pro Ticket 99 EU -Falls Beucher älter als 25 J.A.: - dann beträgt der Preis: 139 EU Im Resultat am Ende soll die gesammte Summe (für alle bestellte Tickets) herausgegeben werden. Falls es kommen mehr als 5 Personen zusammen - dann soll die Gruppe 20% Ermäßigung bekommen. Unten ist mein Anfang, Roh- Variante. Ich sammle Tipps, Korrekturen und Ideen für die weitere Code-Entwicklung: Nr_Tickets = int(input("please enter which number of tickets do you need: ")) first = Nr_Tickets[0] # speichern vom ersten Ticket count = 0 # Zähler Setzen result = '' # resultierende Zeile for i in range Nr_Tickets # Idea: to go all Nr_Tickets through and to ask for age for each Ticket age(i) = int(input("please enter your age: ")) i += 1 # Then needed to count Tickets in each age-cathegory. # After it to add Prices in each AgeCathegory and in all Age-Cathegories. How to realise it? # if age < 18: # Preis_a18 = 0 # print('entry free of cost') # elif 18 <= age < 25: # Preis_18a25 = 99 # print('your costs are 99 EU per Ticket') # else: # Preis_a25 = 139 # print('your costs are 139 EU per Ticket') 00111.txt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rienne Geschrieben 29. November 2021 Teilen Geschrieben 29. November 2021 Hallo, ich hätte ein paar Fragen, damit ich einschätzen kann, was für eine Hilfestellung man dir geben kann. Welche Vorkenntnisse hast du? In welchem Zusammenhang sollst du diese Aufgabe lösen? Als kleiner Hinweis: Ich würde mir erst einmal abseits von irgendeiner Programmiersprache überlegen, wie der Ablauf von einer solchen Aufgabenstellung sein soll und darauf aufbauend überlegen, was für Variablen du benötigst und wann welche Kontrollstruktur zum Einsatz kommen sollte. Wenn man das für sich visualisiert hat und entsprechend programmiert, kann man sein Coding anschließend auch debuggen und prüfen, ob an den entsprechenden Stellen auch wirklich das passiert, was man möchte. Und wenn nicht, schaut man sich genauer an, ob man es falsch programmiert hat oder schon in der Planung ein Denkfehler war. Ich kenne mich nicht mit Python aus, aber was mir direkt auffällt: Du lässt eine Zahl eingeben (int), behandelst diese aber dann wie eine Liste? Wofür brauchst du die Variablen first und count? Aus Sicht der Verständlichkeit: Du sollst je Ticket das Alter des Besuchers abfragen (der ja nicht automatisch derjenige ist, der die Tickets kauft), aber hast als Abfrage "Enter your age"? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 29. November 2021 Teilen Geschrieben 29. November 2021 vor 4 Minuten schrieb Rienne: Ich kenne mich nicht mit Python aus, aber was mir direkt auffällt: Du lässt eine Zahl eingeben (int), behandelst diese aber dann wie eine Liste? Wofür brauchst du die Variablen first und count? Aus Sicht der Verständlichkeit: Du sollst je Ticket das Alter des Besuchers abfragen (der ja nicht automatisch derjenige ist, der die Tickets kauft), aber hast als Abfrage "Enter your age"? Ich bin jetzt auch kein Python-Experte aber ich wüsste nicht mal, was ich dazu schreiben sollte, da das Programm nicht mal fertig ist. Das meiste ist auskommentiert die Zeilen, die durchlaufen werden, voller Syntaxfehler sind Ich nehme mal an, dass das Programm nicht mal gestartet wurde. Auf welcher Basis soll man denn nun Tipps geben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rienne Geschrieben 29. November 2021 Teilen Geschrieben 29. November 2021 vor 32 Minuten schrieb Whiz-zarD: Auf welcher Basis soll man denn nun Tipps geben? Genau das! Darum auch die Frage, wie die Ausgangslage beim TO ist und meine allgemeinen Hinweise. Da wurde sich keine konzeptionell Gedanken über einen möglichen Algorithmus gemacht. Da hilft es dann auch nichts, wenn man auf Python-spezifische Syntax eingeht, wenn der grundlegende Ablauf nicht einmal klar ist. @ankon erläutere doch bitte erst einmal, wie du dir gedacht hast, die Aufgabe zu lösen. Befindest du dich in einer Ausbildung oder einer Umschulung? Ist das eine Schulaufgabe? Willst du dir einfach so das Programmieren beibringen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Visar Geschrieben 29. November 2021 Teilen Geschrieben 29. November 2021 (bearbeitet) Eine Sache lässt sich in jedem Fall sagen: Es ist mit ziemlicher Sicherheit schlechter Stil, zwischen Sprachen hin- und herzuwechseln. Deutsch, Englisch, Englisch, Deutsch. Ansonsten kann ich meinen Vorrednern wenig hinzufügen. Wirre Syntax, kein richtiger Ansatz erkennbar und zu allem Überfluss Namen, die PEP8 zum Weinen bringen. Bearbeitet 29. November 2021 von Visar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ankon Geschrieben 29. November 2021 Autor Teilen Geschrieben 29. November 2021 vor 12 Stunden schrieb Rienne: Hallo, ich hätte ein paar Fragen, damit ich einschätzen kann, was für eine Hilfestellung man dir geben kann. Welche Vorkenntnisse hast du? In welchem Zusammenhang sollst du diese Aufgabe lösen? Als kleiner Hinweis: Ich würde mir erst einmal abseits von irgendeiner Programmiersprache überlegen, wie der Ablauf von einer solchen Aufgabenstellung sein soll und darauf aufbauend überlegen, was für Variablen du benötigst und wann welche Kontrollstruktur zum Einsatz kommen sollte. Wenn man das für sich visualisiert hat und entsprechend programmiert, kann man sein Coding anschließend auch debuggen und prüfen, ob an den entsprechenden Stellen auch wirklich das passiert, was man möchte. Und wenn nicht, schaut man sich genauer an, ob man es falsch programmiert hat oder schon in der Planung ein Denkfehler war. Ich kenne mich nicht mit Python aus, aber was mir direkt auffällt: Du lässt eine Zahl eingeben (int), behandelst diese aber dann wie eine Liste? Wofür brauchst du die Variablen first und count? Aus Sicht der Verständlichkeit: Du sollst je Ticket das Alter des Besuchers abfragen (der ja nicht automatisch derjenige ist, der die Tickets kauft), aber hast als Abfrage "Enter your age"? Danke für die ausführliche Antwort. Ich bin ganz Anfänger. Ich habe das Thema Datentypen durchgearbeitet. Jetzt arbeite ich das Thema Schleifen und Bedingungen und habe einige Programmbeispiele durchgeschaut. Jetzt bin ich dran, selbst erste Programme zu schreiben: Lerning by Doing Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ankon Geschrieben 29. November 2021 Autor Teilen Geschrieben 29. November 2021 vor 13 Stunden schrieb Whiz-zarD: Ich bin jetzt auch kein Python-Experte aber ich wüsste nicht mal, was ich dazu schreiben sollte, da das Programm nicht mal fertig ist. Das meiste ist auskommentiert die Zeilen, die durchlaufen werden, voller Syntaxfehler sind Ich nehme mal an, dass das Programm nicht mal gestartet wurde. Auf welcher Basis soll man denn nun Tipps geben? Danke. Ja das Programm ist nicht fertig. Ich habe Teil_Eingabe geschrieben und Logik von Preis(vom Alter) und noch einige Stücke die aus das was ich durchgeschaut habe - nutzlich sein könnte. Und Syntaxfahler - klar gibt es: denn ich bin ganz frische Anfänger, welcher sowas noch nicht geschrieben hat. Ich koche und erarbeite Gedanken, was ich in Richtung der Lösung mache. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ankon Geschrieben 29. November 2021 Autor Teilen Geschrieben 29. November 2021 vor 12 Stunden schrieb Rienne: Genau das! Darum auch die Frage, wie die Ausgangslage beim TO ist und meine allgemeinen Hinweise. Da wurde sich keine konzeptionell Gedanken über einen möglichen Algorithmus gemacht. Da hilft es dann auch nichts, wenn man auf Python-spezifische Syntax eingeht, wenn der grundlegende Ablauf nicht einmal klar ist. @ankon erläutere doch bitte erst einmal, wie du dir gedacht hast, die Aufgabe zu lösen. Befindest du dich in einer Ausbildung oder einer Umschulung? Ist das eine Schulaufgabe? Willst du dir einfach so das Programmieren beibringen? ja, ich wollte gerade mich mit weiteren Ablauf weiter beschäftigen, jetzt ist mir nicht alles klar wie. Ich beginne, dann: Stück für Stück weiter. Fragen "wie" - gehört auch dazu, oder? Ja, ich stelle mir jetzt nur Fragmente klar, die ich weiter entwickeln und korrigieren muss. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ankon Geschrieben 29. November 2021 Autor Teilen Geschrieben 29. November 2021 vor 4 Stunden schrieb Visar: Eine Sache lässt sich in jedem Fall sagen: Es ist mit ziemlicher Sicherheit schlechter Stil, zwischen Sprachen hin- und herzuwechseln. Deutsch, Englisch, Englisch, Deutsch. Ansonsten kann ich meinen Vorrednern wenig hinzufügen. Wirre Syntax, kein richtiger Ansatz erkennbar und zu allem Überfluss Namen, die PEP8 zum Weinen bringen. Ja, ich habe einige Kommentare auf Deutsch übersetzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 29. November 2021 Teilen Geschrieben 29. November 2021 vor 18 Stunden schrieb ankon: first = Nr_Tickets[0] # speichern vom ersten Ticket nein, warum überhaupt? vor 18 Stunden schrieb ankon: age(i) = nein, das geht nicht. age(i) wäre ein funktionsaufruf kein array. man braucht auch kein array. man kann die summe direkt in der schleife nach der eingabe bilden. vor 18 Stunden schrieb ankon: i += 1 das ist zum einen falsch eingerückt und das musst du auch nicht selbst machen, die for schleife springt am ende selbst zum nächsten element. vor 18 Stunden schrieb ankon: for i in range Nr_Tickets das müsste eigentlich range(Nr_Tickets) sein und es fehlt ein doppelpunkt vor 18 Stunden schrieb ankon: # elif 18 <= age < 25: wenn du dort hin kommst, ist das alter nicht unter 18, den ersten teil kannst du also weglassen vor 18 Stunden schrieb ankon: # Preis_a18 = 0 # elif 18 <= age < 25: # Preis_18a25 = 99 # else: # Preis_a25 = 139 damit legst du dir selbst steine in den weg, du hast jetzt 3 variablen in denen ein preis stehen könnte, die aber andernfalls nicht existieren. Das wird schwieriger als nötig damit eine summe zu bilden. wie schon gesagt wurde, schreib mal auf was deiner meinung nach das programm machen muss um die aufgabe zu erfüllen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ankon Geschrieben 30. November 2021 Autor Teilen Geschrieben 30. November 2021 vor 5 Stunden schrieb _n4p_: nein, warum überhaupt? nein, das geht nicht. age(i) wäre ein funktionsaufruf kein array. man braucht auch kein array. man kann die summe direkt in der schleife nach der eingabe bilden. das ist zum einen falsch eingerückt und das musst du auch nicht selbst machen, die for schleife springt am ende selbst zum nächsten element. das müsste eigentlich range(Nr_Tickets) sein und es fehlt ein doppelpunkt wenn du dort hin kommst, ist das alter nicht unter 18, den ersten teil kannst du also weglassen damit legst du dir selbst steine in den weg, du hast jetzt 3 variablen in denen ein preis stehen könnte, die aber andernfalls nicht existieren. Das wird schwieriger als nötig damit eine summe zu bilden. wie schon gesagt wurde, schreib mal auf was deiner meinung nach das programm machen muss um die aufgabe zu erfüllen. Herzlichen Dank, besonders fürs Wegstreichen von i += 1 und fürs : bei der Beingung price_common = 0 Nr_Tickets = int(input("please enter which number of tickets do you need: ")) for i in range (Nr_Tickets): age_for_ticket = int(input("For which age is a needed Ticket №{i}? : ")) while True: if age_for_ticket < 18: print('entry free of cost') break elif 18 <= age_for_ticket < 25: print('your costs are 99 EU per Ticket') price_common += 99 break elif 25 < age_for_ticket: price_common += 139 print('your costs are 139 EU per Ticket') break continue if Nr_Tickets > 5: price_common = price_common - (price_common * (20 / 100)) print('zu zahlen ist die Summe mit Ermäßigung von 20% für Gruppen mit Personenzahl >5: ', price_common) else: print('Summe zu Zahlen, in EU: ', price_common) Man kann hier prüfen ob bei der Eingabe von Personenzahl und vom Alter Datentyp == int ? Aber dazu käme ich schon morgen. Ginge das irgendwie einfach ohne try-except ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orangesEinhorn Geschrieben 30. November 2021 Teilen Geschrieben 30. November 2021 Wieso muss man eigentlich nach den einzelnen Altern fragen? Wäre es nicht besser umgekehrt? Anzahl der Tickets je Alter? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.