python初学者,“TypeError:'float'对象不可调用”

2024-05-23 13:58:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下问题,我不知道如何正确编码:

给你两个列表,压力和温度,写一个Python代码来计算潜在的温度。逐行打印具有相同索引的温度、压力、电位温度

Temp=[59., 62., 67., 63., 68.]
Pressure=[970, 981, 984, 972, 992]

注:请使用1000或1013作为P0来计算潜在温度(定义一个变量P0)。T需要在开尔文

我将势能温度的公式定义为P0

Temp=[59., 62., 67., 63., 68.]
Pressure=[970., 981., 984., 972., 992.]
P0=[Temp[i](1000/Pressure[i])**(287)/1004]
for i in range (len(Temp)):
    print (Temp[i], Pressure[i], P0[i])

我收到的错误是['float'对象不可调用]


Tags: 代码in编码列表for定义range温度
3条回答

您的代码中有两个方面出错:

这:

P0=[Temp[i](1000/Pressure[i])**(287)/1004]

不是正确的列表理解

应该是:

P0=[t*(1000/p)**(287)/1004 for t, p in zip(Temp,Pressure)]

还有一些小的间距/语法问题

我会重写你的for循环,包括zip()。见下文:

Temp=[59., 62., 67., 63., 68.]
Pressure=[970., 981., 984., 972., 992.]
for temp, pressure in zip(Temp, Pressure):
    p0 = temp * (1000 / pressure) ** 287 / 1004
    print(temp, pressure, p0)

您在这方面已经遇到了很多问题:

P0=[Temp[i](1000/Pressure[i])**(287)/1004]

我是什么

您收到的错误是由于:

 Temp[i](

你想打电话给临时工吗?如果要乘法,则应使用运算符

也许您可以通过一些Python教程来更好地了解语法

Temp[i](1000/Pressure[i])尝试调用Temp[i],好像它是一个函数,试图将1000 / Pressure[i]作为参数传递-这会引发

'float' object is not callable

您看到的错误消息

您可能打算将Temp[i]乘以(1000/Pressure[i])

P0=[Temp[i] * (1000/Pressure[i])**(287)/1004]

注意i在此阶段尚未定义,您可能希望遍历TempPressure

P0 = [t * (1000 / Pressure[i]) ** 287 / 1004 for i, t in enumerate(Temp)]

或者,使用^{}一次遍历两个列表的组合:

P0 = [t * (1000 / p) ** 287 / 1004 for i, p in zip(Temp, Pressure)]

相关问题 更多 >