2016-08-15 74 views
-1

嘿傢伙即時新的和我即將開始。 我試圖通過簡單地獲得輸入和計算來製造BMI計算器,但由於某種原因它不起作用。 這是程序:通過類型爲'str'的非int的乘法序列

print "how old are you?", 
age = raw_input() 
print "how tall are you?", 
height = raw_input() 
print "how much do you weigh?", 
weight = raw_input() 

print "So, you're %r years old, %r meters tall and %r Kilograms heavy.\n Ain't too bad but could be better to be honest!" %(age, height, weight) 

print "Your BMI is %d" % (weight (height * height)) 

,這是輸出:

how old are you? 1 
how tall are you? 2 
how much do you weigh? 4 
So, you're '1' years old, '2' meters tall and '4' Kilograms heavy. 
Ain't too bad but could be better to be honest! 
Traceback (most recent call last): 
    File "ex10.py", line 11, in <module> 
    print "Your BMI is %d" % (weight (height * height)) 
TypeError: can't multiply sequence by non-int of type 'str' 

謝謝你們!

+0

我不知道爲什麼它不會像我的代碼中分隔線... –

+2

[如何將字符串轉換爲Python中的整數?](http://stackoverflow.com/questions/ 642154/how-to-convert-strings-into-in-in-python) –

回答

0

您的用戶輸入值是字符串。你正試圖對它們進行數學運算。您需要先將它們轉換爲數字。

這裏是將設置你的路徑上轉換字符串整數一個問題:How to convert strings into integers in Python?

更仔細地觀察,我相信你的問題是,這條線是不正確的:

print "Your BMI is %d" % (weight (height * height)) 

你試圖調用一個方法weight傳入2個字符串相乘。這不會有幾個原因。我相信你想要:

print "Your BMI is %d" % (weight/(height * height)) 

注意那裏的分工操作員。我擡起頭看BMI,發現方程是身高平方的重量。

+0

我嘗試了很多這些,但都失敗了。如果我理解正確,我應該將字符串轉換爲int形式:height = int(height)。 –

+0

你試過了:'print「你的BMI是%d」%(int(weight)(int(height)* int(height)))'? – jaydel

+0

是的,它說:TypeError:'int'對象不可調用 –

0

有了您的幫助,這是工作代碼:

打印 「?你多大了」,

年齡= INT(的raw_input())

打印「你有多高? 」

高度=浮動(的raw_input())

打印 「怎麼你有多重?」,

重量=浮動(的raw_input())

打印「所以,你是%R歲,%R米高%R公斤重。\ n

是不是太糟糕,但可能會更好老實說!」 %(

年齡,身高,體重)

重量=浮子(重量) 高度=浮子(高度)

打印 「您的BMI是%d」 %(浮動(重量)/(浮(身高)*浮動(身高)))

非常感謝!

相關問題