Как распечатать результаты из набора данных, используя формулу scientifi c? - PullRequest
0 голосов
/ 09 апреля 2020

У меня проблемы с написанием этого кода; Мне даны два списка (температура и давление), и мне нужно l oop эти значения данных, чтобы рассчитать потенциальную температуру каждого значения. Потенциальная температура = T (1000 / P) ^ (R / Cp), где R и Cp - постоянные (это показатель степени). Эти константы:

R=287
Cp=1004
The data given is:
Temp=[332.,335., 340., 336., 341.] 
Pressure=[970, 981, 984, 972, 992] 

Как настроить код, используя for-l oop, чтобы можно было печатать температуру, давление и потенциальную температуру с одним и тем же индексом строка за строкой?

import math 
Temp=[332.,335.,340.,336.,341.] 
Pressure=[970,981,984,972,992] 
Potential_Temperature=[] 
for i in range(len(Pressure)): 
    PT=math.pow((1000/Pressure[i]),(287/1004)) 
    Potential_Temperature.append(PT) 
    print(Temp) 
    print(Pressure) 
    print(Potential_Temperature)

Ответы [ 3 ]

1 голос
/ 09 апреля 2020

Я бы создал функцию для выполнения математики, которую вы ищете:

R=287
Cp=1004
The data given is:
Temp=[332.,335., 340., 336., 341.] 
Pressure=[970, 981, 984, 972, 992] 

Из вашего вопроса мне не совсем ясно, хотите ли вы (T * (1000 / P)) ^ ( R / Cp) или T * ((1000 / P) ^ (R / Cp)), хотя мои математики немного ржавые, они могут даже быть эквивалентными

def potential_temp(temp, pressure, constants):
    r, cp = constants
    temp * ((1000/pressure) ** (r/cp))
    return temp

for temp, pressure in zip(Temp, Pressure):
    print(temp)
    print(pressure)
    print(potential_temp(temp, pressure, (R, Cp))
0 голосов
/ 09 апреля 2020
Theta = []
for i in range(len(Temp)):
    PT=Temp[i]*math.pow((1000/Pressure[i]),(R/Cp))
    Theta.append(PT)
0 голосов
/ 09 апреля 2020

Вы забыли умножить на температуру. Попробуйте:

PT=Temperature[i]*math.pow((1000/Pressure[i]),(287/1004))
...