Wer kennt sich aus mit Programmiersprache Python?
Hallo zusammen
Ich muss einen Code in Python schreiben, finde meinen Fehler aber nicht.
Ich möchte den Code schreiben, der der Eingabe entspricht.
Schreibe ich nur eine Zeile, ist der Code richtig. Schreibe ich die beiden anderen dazu, ist auf einmal alles falsch.
Könnt Ihr mir anhand des Codes sagen, wo ich einen Fehler eingebaut habe? S. Bilder
Vielen Dank im Voraus.
4 Antworten
Dein Code wird immer
["python", "ist", "eine", "supergute", "programmiersprache"]
["wir", "programmieren", "jede", "woche"]
["die", "zwei", "möglichen", "werte", "für", "booleans", "sind", "true", "und", "false"]
ausgeben, egal was die Eingabe ist.
Du sollst jedoch
["python", "ist", "eine", "supergute", "programmiersprache"]
nur dann ausgeben, falls die Eingabe lautet:
"Python ist eine supergute Programmiersprache."
Bei den anderen Beispielen ebenso.
if eingabe == "Python ist eine supergute Programmiersprache.":
print(["python", "ist", "eine", "supergute", "programmiersprache"])
if eingabe == "Wir programmieren jede Woche.":
print(["wir", "programmieren", "jede", "woche"])
if eingabe == "Die zwei möglichen Werte für Booleans sind True und False...":
print(["die", "zwei", "möglichen", "werte", "für", "booleans", "sind", "true", "und", "false"])
Andernfalls könntest du dir noch die .split() Funktion anschauen, das Problem hierbei ist bloß, dass du nicht nur den String an allen Leerzeichen splitten, sondern auch alles klein schreiben und die Satzzeichen am Ende jeweils entfernen musst. Es geht zwar auch, dürfte aber länger dauern. Es lohnt sich bestimmt trotzdem, wenn man mal mit dieser Funktion "herumspielt". :)
LG Moon^^
Man könnte die letzten beiden Blöcke mit elif starten, das stimmt. Allerdings dürft es auch nicht problematisch sein, nur mit den if Anweisungen zu arbeiten.
Die if-elif-else Struktur bricht ja quasi dann den Prozess ab, wenn eine Bedingung erfüllt wurde (weil alle anderen Abfragen schließlich mit "sonst..." anfangen). So wird nur jedesmal neu gefragt, ob die Eingabe gleich dem dahinter ist.
Sogesehen ist die Laufzeit etwas länger (wenn auch minimal).
Also, ja, die Variante wäre eleganter :), so geht´s aber auch.
Wenn, dann müsstest du mit if prüfen, welcher der drei Eingabesätze wieder ausgegeben werden soll.
Allerdings solltest du die Funktion natürlich so bauen, dass sie auch für alle anderen Sätze funktioniert. Du sollst halt den Satz in Kleinbuchstaben umwandeln und alle Wörter in eine Liste packen.
Also z.B.
print(eingabe.lower().replace(".", "").split())
Also grundsätzlich wichtig: zuerst einmal die Aufgabe gründlich durchlesen und verstehen - dann erst programmieren.
In diesem kleinen programmierfenster hast du die variable "eingabe" bereits zur Verfügung. Es ist nicht Sinn der sache, dass du eine liste schreibst, in dem die Elemente die einzelnen Wörter des satzes sind, sondern du sollst den string (namens "eingabe") so verarbeiten, dass die liste als Ergebnis dabei herauskommt.
Wie machst du das jetzt? Naja - die Wörter in einem Satz sind ja immer durch ein leerzeichen getrennt. Das heißt, du kannst den satz an den leerzeichen auftrennen und somit die entsprechende liste als Ergebnis erhalten.
Das Ergebnis ist also:
print(eingabe.split(' '))
Nachtrag: ein anderer nutzer hat ja schon erwähnt, dass im Ergebnis alles klein geschrieben sein soll.
Das hab ich gekonnt übersehen :D
Dann nutzt man davor natürlich eine Funktion, die alle Großbuchstaben in Kleinbuchstaben umwandelt:
print(eingabe.lower().split(' '))
Da predige ich was von Aufgabe gründlich durchlesen und dann les ich sie selbst nicht durch😂😂
Die punkte kann man einfach durch leere strings ersetzen. Auch dafür hält Python praktischerweise eine Funktion bereit:
print(eingabe.lower().replace(".","").split(" "))
Ich hätte das definitiv auch 3 mal ausgeführt und jedes mal bemerkt, dass ich noch etwas vergessen habe😂 immer so, wenn eine Aufgabe sehr einfach aussieht und man die eben schnell mal löst😂
Du musst als Variablen Buchstaben nehmen glaube ich. Mit Zahlen geht das net
Variablennamen dürfen Ziffern 0-9 enthalten. Sie dürfen aber nicht mit Ziffern beginnen, da der Interpreter diese als Zahlen erkennt und versucht diese entsprechend zu interpretieren.
Das ist also nicht das Problem.
LG
Auf dem Bild sind doch nur Zahlen enthalten als Variablen, also 11, 12 und 13
Dann würde doch aber die "11" aus zwei gleichen 1ern bestehen. Für mich sieht das erste Zeichen aus wie ein kleines L (l). Somit l1.
Ah stimmt, habe ich nicht gemerkt. Danke für die Ergänzung
Normalerweise findet nur eine if-abfrage statt. Die anderen beiden sollten doch elif heißen?