TypeError: can't multiply sequence by non-int of type 'float'

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
lxks1337
User
Beiträge: 6
Registriert: Montag 26. November 2018, 14:45

Folgender Code funktioniert bei mir nicht. trotz der Umwandlung von input.
Bei einem anderen User hat der code funktioniert.
Verwendete programme:
-pycharm
-eclipse
-python shell

Code: Alles auswählen

f = 2.54
print(type(f))


s = 1

while s == 1:
    i = input("Eingabe:")
    inch = float(i)
    print(type(inch))
    if inch != 0:
        ausg = i * f
        print(ausg)
    else:
        exit()
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Was heißt funktioniert nicht? Gibt es eine Fehlermeldung? Wenn ja welche? Und was glaubst Du, sagt diese Fehlermeldung aus?Und benutzt der andere User Python2?
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@lxks1337: Du möchtest noch mal genauer hinschauen *was* Du da multiplizierst, und was Du *eigentlich* multiplizieren willst.

Die Namen sind bis auf `inch` schlecht gewählt. Namen sind wichtig, die vermitteln dem Leser was der Wert bedeutet. Vielleicht wäre Dir Dein Fehler auch früher aufgefallen wenn Du vernünftige Namen verwendet hättest.

`s` ist überflüssig, das kann man weg lassen und einfach ``while True:`` schreiben.

`exit()` sollte man nicht verwenden wenn man keinen Rückgabecode an den Aufrufer des Programms übermitteln will. Man würde hier die Schleife einfach mit ``break`` verlassen. Das Programm ist dann ja ganz ”natürlich” am Ende und wird beendet.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
lxks1337
User
Beiträge: 6
Registriert: Montag 26. November 2018, 14:45

Okay, danke für die antwort schonmal, die namen habe ich so gewählt weil in der ausführlicheren version es schon nicht funktioniert hat und ich dann einiges versucht habe und dabei nichtimmer das ganze ausschreiben wollte^^ bzgl deiner ersten zeilen: was genau meinst du? f ist ein float, den input der in p3 ja als string wiedergegeben wird wurde ebenfalls in float umgewandelt. also erstelle ich eine variable ausg die das ergebnis aus "float mal float" sein soll..
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@lxks1337: Wo steht in dem Code `p3`? Und wie gesagt, gute Namen verhindern Fehler und erleichtern das finden von Fehlern *sehr*. Das ist nicht einfach nur Kosmetik die ganz nett ist, und die man hinterher mal auftragen kann wenn's läuft.

Was das ausschreiben von Namen angeht: Jeder vernünftige Editor der zum Programmieren gedacht ist, hat mindestens eine Autovervollständigung die auf dem Inhalt des oder der offenen Datei(en) basiert.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten