Wieso klappt es nicht?

3 Antworten

Im Englischen, und somit beim Programmieren, musst du 0.25 statt 0,25 schreiben.

Ich hoffe ich sehe das mit dem Komma richtig

RadonDerEchte  03.05.2021, 11:30

Snipping Tool zu benutzen könntest du dir als angehender Programmierer auch beibringen

0

Erst einmal ist das nicht einfach Python, sondern es ist TigerJython. Denn sonst hättest du noch andere Probleme (beispielsweise, dass der Input bei anzahl_Pizza = input([...]) erst einmal einen String liefert, den du erst in eine Zahl umwandeln müsstest, um damit weiterrechnen zu können).

============

Zunächst einmal solltest du die folgende Fehlermeldung erhalten:

[line: 9] unsupported operand type(s) for Div: 'int' and 'tuple' 

Das liegt daran, dass du bei pfandflaschenwert = 0,25 ein Komma statt einem Punkt verwendet hast. Demnach wird in der Variable pfandflaschenwert das Wertepaar (0, 25) gespeichert, statt der Zahl 0,25. Wenn du beim Programmieren mit Kommazahlen arbeiten möchtest, musst du 0.25 statt 0,25 schreiben.

Wenn du das ausgebessert hast, solltest du keine Fehlermeldung mehr erhalten. Allerdings wird dir bei der Ausgabe in der letzten Zeile des Codes nirgends die berechnete Anzahl ausgegeben. Du verwendest da in der letzten Zeile ja auch nirgends die Variable pfandflaschen, in der du den berechneten Wert abgespeichert hast.

Der entsprechend korrigiert Code könnte beispielsweise so aussehen:

msgDlg("Hi,Hi wie schaut es denn aus ?")
msgDlg("Ja bruder bin am husseln später am abend komm ich vorbei")
msgDlg("Ok dann kann ich uns nomma Pizza bestellen !!!")
msgDlg("Bruder rich rich oder was ?")
msgDlg("Ja seit dem ich Pfandflaschen sammel läuft mies yau !!!")
anzahl_Pizza = input ("Wieviele Pizzen hat der Steinofen Mann diesmal bestellt?")
msgDlg("Wieviele Pfandflaschen hat er diesmal gebraucht ?")
pfandflaschenwert = 0.25
pfandflaschen = anzahl_Pizza / pfandflaschenwert
print ("Der Steinofen Mann hat "+str(pfandflaschen)+" Pfandflaschen für die Pizzen gebraucht !!!")

Da gefällt mir ja beispielsweise noch die falsche Rechtschreibung nicht (es geht noch nicht einmal um die Ausdrucksweise, sondern um die Rechtschreibung), aber zumindest sollte der Code dann so funktionieren, wie du das wahrscheinlich haben möchtest.

Naja, du kannst nicht +"pfandflaschen"+ machen, da dann pfandflaschen als String interpretiert wird.

#Option 1
print("Anzahl "+str(pfandflaschen)+".")
#Option 2 ab Python 3
print(f'Anzahl {pfandflaschen}.')
Woher ich das weiß:Studium / Ausbildung – Informatikstudent
Buro69 
Fragesteller
 03.05.2021, 11:14

Hi l,was du sagst habe ich auch umgeändert aber das davor soll falsch sein obwohl / für division steht.

1
whgoffline  03.05.2021, 11:19
@Buro69

Ah, ok ich sehe den Fehler. Du kannst natürlich nicht einen string also z.B. "5" durch einen float teilen. Du musst also int(input("Eingabe: ")) benutzen, um die Eingabe direkt in eine Zahl umzuwandeln. Das hat aber natürlich einen Haken, denn bei einer Eingabe von etwas, was nicht in eine Zahl konvertiert werden kann, stürzt das Programm einfach ab. Das kann man aber auch lösen:

while True:
  try:  
    anzahl_Pizza = int(input('Anzhahl Pizzen: '))
    break
  except ValueError:
    print('Bist du blind?!? Nur Ganzzahlen eingeben.')     

hier fragt das Programm einfach so lange bis eine Zahl kommt.

1