2017-10-06 81 views
2

它說錯誤是當h(高度)在11000到25000之間時,所以我只在最後的東西之外發布了所有if循環和發生問題的具體循環。這裏是我的代碼:錯誤:「不能乘以類型爲'float'的非int的序列」

import math; 
T = 0.0; 
P = 0.0; 
hString = ("What is the altitude in meters?"); 
h = int(hString); 
e = math.exp(0.000157*h); 

elif 11000 < h < 25000: 
    T = -56.46; 
    P = (22.65)*[(1.73)-e]; 
+2

你的代碼給我'ValueError異常:無效基數爲10的int()字面值:'以米爲單位的高度是多少?'。你能修正你的代碼示例,以便在複製粘貼到Python控制檯時運行它嗎? –

+0

請發佈實際產生您所報告錯誤的代碼。編寫[MVCE](https://stackoverflow.com/help/mcve)的這一頁可能會有所幫助。 –

回答

2

的方括號中的最後一行([(1.73)-e])創建列表。在這種情況下,它是一個包含一個元素的列表,即(1.73)-e。我想你打算讓那些人成爲parens。做出改變,它會起作用。

最後一行變爲:

P = (22.65)*((1.73)-e); 
3

當你使用,你需要小心括號內的數學運算。

P = (22.65)*((1.73)-e); #will be right way of using 

[ ] using will create a list which you, do not need in this program.

這裏是一個link,這將幫助您瞭解更多關於類型轉換和正確使用支架的同時就可以做數學。

另外,在你的代碼中沒有使用

 hString =input ("What is the altitude in meters?"); 
     h = int(hString); 

輸入將允許你從用戶需要的值,然後int(your_input)將幫助你轉換成整數

+0

'P =(22.65)*)(1.73)-e)'對我來說看起來不正確。你的意思是:'P =(22.65)*((1.73)-e)'? – SherylHohman

+1

@SherylHohman,現在編輯謝謝 –

相關問題