Wer kennt sich aus mit Programmiersprache Python?

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^^

emrethezodiac  24.10.2023, 00:06

Normalerweise findet nur eine if-abfrage statt. Die anderen beiden sollten doch elif heißen?

0
MoonGirl915  24.10.2023, 06:34
@emrethezodiac

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.

0

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())
PoppyPonyhof 
Fragesteller
 24.10.2023, 12:10

Vielen Dank

0

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(' '))

DJFlashD  23.10.2023, 23:58

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(' '))

2
DJFlashD  24.10.2023, 00:02
@MoonGirl915

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(" "))

2
DJFlashD  24.10.2023, 00:08
@MoonGirl915

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😂

2
PoppyPonyhof 
Fragesteller
 24.10.2023, 00:01

Dankeschön, ich werde das direkt mal probieren! :)

1

Du musst als Variablen Buchstaben nehmen glaube ich. Mit Zahlen geht das net

PoppyPonyhof 
Fragesteller
 23.10.2023, 23:43

Probiere ich aus, Danke Dir

0
MoonGirl915  23.10.2023, 23:56
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

2
MoonGirl915  24.10.2023, 00:02
@emrethezodiac

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.

1