2016-03-27 12 views
-1

Ich habe einen kleinen bmi Rechner in Python 3.5.1 erstellt, aber komischerweise funktioniert es nicht. In Python 2.7 hat es funktioniert, aber es funktioniert hier nicht. Mein Code ist:Was bedeutet dieser Fehler und wie kann er behoben werden?

print ('Geef uw gewicht in kg: ') 
gewicht_kg = input() 
print ('Geef uw lengte in meters: ') 
lengte_meters = input() 
bmi = gewicht_kg/(lengte_meters * lengte_meters) 

Die Zeichenfolge sind in Niederländisch geschrieben, aber das ist egal. Wenn ich das Programm ausführen, funktioniert die Eingabearbeit (so kann ich geben, was ich will), aber wenn es um die Berechnung zu machen nehme an, es gibt die folgende Fehlermeldung:

can't multiply sequence by non-int of type 'str' 

Was bedeutet das und wie kann ich das beheben es?

+3

ich eine Vermutung nehmen gehen und sagen Sie jetzt diese auf Python laufen 3. Was bedeutet Ihre Eingabe 'int sein sollte (Eingang())'. Auch für Ihren Python 2 Code sollten Sie 'raw_input' statt' input' verwenden, was dann bedeutet, dass Sie für python2 'int (raw_input())' – idjaw

+0

@idjaw oh vergessen haben zu sagen, aber ich programmiere in Python 3.5.1. Die Eingabe funktioniert, aber die Berechnung funktioniert nicht. Dann sagt es, dass ich eine '' nicht multiplizieren kann Sequenz von Nicht-Typ-Typ 'str' '' Fehler. –

+0

Aktualisieren Sie Ihre ursprüngliche Frage mit relevanten Informationen und aktuellem Code. Nicht in Kommentare – idjaw

Antwort

1

Die Fehlermeldung zeigt an, dass Python versucht, eine Liste von Zeichen mit einem String-Wert zu multiplizieren, das macht keinen Sinn. In der Tat: Ihre Eingabe ist eine Zeichenfolge (und sollte nicht in Anführungszeichen eingegeben werden), daher muss sie zuerst in ein numerisches Format übersetzt werden.

Verwenden

gewicht_kg = float(raw_input()) 

und ähnlich für den anderen Eingang, und es wird besser funktionieren.

+0

Ich benutze Python 3.5.1, so dass das nicht funktioniert. Von einer früheren Frage habe ich herausgefunden, dass ich Input() verwenden muss, und das hat funktioniert. –