Problem mit Variablen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
stone97
User
Beiträge: 6
Registriert: Donnerstag 17. September 2015, 17:49

Hey Community
Ich habe vor kurzen angefangen Phyton zu erlernen jedoch bin ich auf ein Problem gestoßen wo ich nicht weiter komme.

jedes mal wenn ich das "programm starten möchte kommt der fehler (Syntax Error: cant assign to operator)

s = 0.18
b * s = g
print ("Bitte geben sie ihr Brutto gehalt ein")
input () = b
print(b)
print(g)



bei b * s = g erscheint dann ein roter Balken.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Bei einer Zuweisung muss das Ziel auf der linken Seite stehen. Das sieht man im Tutorial ziemlich früh (https://docs.python.org/3/tutorial/intr ... ml#numbers).
stone97
User
Beiträge: 6
Registriert: Donnerstag 17. September 2015, 17:49

danke doch jetzt kommt das b nicht defeniert ist.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

stone97 hat geschrieben:danke doch jetzt kommt das b nicht defeniert ist.
Code wird der Reihe nach von oben nach unten abgearbeitet. Woher soll b an der Stelle denn kommen?

Darf ich mal fragen, welches Buch/Tutorial du zum Lernen verwendest?
stone97
User
Beiträge: 6
Registriert: Donnerstag 17. September 2015, 17:49

Ich benutze Einstieg in Phyton Ausgabe 3 und das ist eine Übungsaufgabe die ich machen wollte.
habe jetzt alles so verbessert doch es kommt immer noch eine Fehlermeldung das g = s * b nicht stimmt.

s = 0.18
print ("Bitte geben sie ihr Brutto gehalt ein")
b = input()
g = s * b
print(b)
print(g)

Könntest du mir gegebenenfalls ein anderes Buch empfehlen?
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@stone97: die Fehlermeldung sagt Dir ja nicht, dass "g = s * b" nicht stimmt, sondern was daran falsch ist.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Es ist wichtig Fehlermeldungen genau zu lesen und sie bei Fragen auch exakt wiederzugeben. Ich vermute du bekommst Folgendes:

Code: Alles auswählen

TypeError: can't multiply sequence by non-int of type 'float'
Du möchtest da offensichtlich etwas miteinander multiplizieren was man nicht miteinander multiplizieren kann.

Code: Alles auswählen

>>> '18' * 0.2
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    '18' * 0.2
TypeError: can't multiply sequence by non-int of type 'float'
>>> '18' * 2
'1818'
>>> 18 * 2
36
input() liefert dir einen String zurück (zumindest unter Python 3, das du offensichtlich verwendest). Du musst den String erst in eine Zahl verwandeln um damit rechnen zu können.

Code: Alles auswählen

>>> float('18') * 0.2
3.6
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@stone97
Eine Fehlermeldung ist ja eben auch eine Meldung, will heißen, dass in Deinem Fall "can't multiply sequence by non-int of type 'float'" auf die Lösung hinweist. Schau' Dir doch einfach mal die Datentypen an, die Du miteinander verarbeiten möchtest:

Code: Alles auswählen

>>> s = 0.18
>>> b = input()
3500
>>> type(s)
<class 'float'>
>>> type(b)
<class 'str'>
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
stone97
User
Beiträge: 6
Registriert: Donnerstag 17. September 2015, 17:49

Vielen Dank , Problem ist gelöst ich hatte schon so viel durchprobiert da ich schon halb resigniert hatte.
Wie man immer so schön sagt "Wer lesen kann ist klar im Vorteil" das war jetzt der Fall , also beim 3. Problem was ich hatte.

Danke an /me, Sirius3 und mutella für die schnelle Hilfe und für die Bereitschaft ein solchen blutigen Ahnungslosen Anfänger wie mir unter die Arme zu greifen.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ein wichtiger Hinweis noch: Learning by Doing ist total in Ordnung. Ich habe aber das Gefuehl, dass das dein erster Schritt ist und du eher herumraetst wie etwas zu lauten hat und was es bedeutet.

Der Ansatz wird dich auf kurz oder lang frustrieren, auch wenn wir hier gerne helfen. Darum schlage ich vor du arbeitest dich durch die ersten paar Kapitel (bis 7 sollte fuers erste reichen) des Tutorials und gehst erst dann wieder Uebungsaufgaben durch.
stone97
User
Beiträge: 6
Registriert: Donnerstag 17. September 2015, 17:49

Die tutorials auf der website von Phyton?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Genau das meine ich. Oder, da du Python 3 benutzt, eben die Uebersetzung aus meiner Signatur.
stone97
User
Beiträge: 6
Registriert: Donnerstag 17. September 2015, 17:49

Okay danke dann werde ich diese Kapitel mal durcharbeiten. Mit der frustration hast du komolett recht.
Karl der Große
User
Beiträge: 2
Registriert: Freitag 18. September 2015, 09:44

s = 0.18
b = input("Bitte geben sie ihr Brutto gehalt ein: ")
g = s * b
print(b)
print(g)

Das Ziel muss auf der linken Seite stehen. Und du musst bestätigen, dass du Python 3 verwenden. Es gibt mehrere Unterschiede zwischen Python 2 und 3.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Karl der Große hat geschrieben:s = 0.18
b = input("Bitte geben sie ihr Brutto gehalt ein: ")
g = s * b
Es ist schön, dass du als neuer User direkt etwas beitragen möchtest. Bitte verwende aber in Zukunft die passende Formatierung für Code.

Das was du versuchst zu erklären wurde allerdings bereits erklärt. Zudem ist dein Code falsch für Python3 (und gefährlich in Python 2). Lass ihn selber laufen und du wirst es feststellen.
Karl der Große
User
Beiträge: 2
Registriert: Freitag 18. September 2015, 09:44

/me hat geschrieben:
Karl der Große hat geschrieben:s = 0.18
b = input("Bitte geben sie ihr Brutto gehalt ein: ")
g = s * b
Es ist schön, dass du als neuer User direkt etwas beitragen möchtest. Bitte verwende aber in Zukunft die passende Formatierung für Code.

Das was du versuchst zu erklären wurde allerdings bereits erklärt. Zudem ist dein Code falsch für Python3 (und gefährlich in Python 2). Lass ihn selber laufen und du wirst es feststellen.
OK, mein Fehler. I werde es korrigieren.
Was richtig ist:
b = float(input("Bitte geben sie ihr Brutto gehalt ein: "))
Antworten