Seite 1 von 1

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

Verfasst: Montag 26. November 2018, 15:31
von lxks1337
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()

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

Verfasst: Montag 26. November 2018, 16:06
von Sirius3
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?

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

Verfasst: Montag 26. November 2018, 16:11
von __blackjack__
@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.

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

Verfasst: Montag 26. November 2018, 16:19
von lxks1337
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..

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

Verfasst: Montag 26. November 2018, 16:22
von __blackjack__
@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.