2017-10-06 59 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,现在编辑谢谢 –

相关问题