Txt输出不是我所期望的

2024-09-28 20:55:32 发布

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

本作业的目标是绘制不同深度(0、5和10)土壤剖面的热流图,以下代码未导致错误,但输出文本不是所需的文本

import math

kappa = 0.10e-6 # m^2 - thermal diffusivity
C = 0.58e6 # J/m^3/K - heat capacity
delta_z = 0.01 # m - grid spacing
model_depth = 1 # m
delta_t = 60 # s - time step
grid_boundaries = [x * delta_z for x in range(0, int(model_depth/delta_z))]
Flux = [x * 0 for x in range(0, int(model_depth/delta_z))]
grid_centres = []
T = []
Tsfc = []
T5 = []
T10 = []

for i in range(0, len(grid_boundaries) - 1):
    grid_centres.append( (grid_boundaries[i] + grid_boundaries[i+1]) / 2)
    T.append(20)
for i in range(1, int(86400/delta_t) * 7):
    Flux[0] = 5 * math.sin(2*math.pi * i/(86400/delta_t))
    for j in range(1, len(grid_centres)):
        Flux[j] = -kappa * C * (T[j] - T[j-1]) / delta_z
    for j in range(0, len(grid_centres)):
        DeltaT = (Flux[j+1] - Flux[j] * delta_t / C / delta_z)
    Tsfc.append(T[0])
    T5.append(T[5])
    T10.append(T[10])
T[j] = T[j] - DeltaT

with open('model_output.txt', 'w') as f:
    for i in range(1, int(86400/delta_t) * 7):
        print("%f\t%f\t%f\t%f" % (i/86400 * delta_t,
                                    Tsfc[i-1], T5[i-1], T10[i-1]), file=f)
f.close

我的输出应该是4列(时间、Tsfc、T5和T10),但是第二、第三和第四列的输出都是20.00000。我错过了什么吗?或者我可以补充点什么?很抱歉,我对python非常陌生,并且正在遵循实验室大纲,因此没有任何错误,我不确定哪里出了问题


Tags: informodelrangemathgridintdelta