我一直收到语法错误,它会突出显示tempvals [day + 1],但我不确定为什么会收到此错误

时间:2012-12-06 01:35:32

标签: python syntax numpy

输入:给出sig和rho_c等值 列出所有日子 使用for循环查找每个日期的时间 保存那个时间 找到温度的变化。每个人的一天 找到每个日子的临时值 弄清楚A需要哪个值 绘制数据图 ouptut:Day vs. Temp的图表。

Aice = 1
Anoice=0.
Tice =273.
Tnoice=293.
dt = 86400.
S = 342.5
rho_c =206000000.
epsilon_tow =.62
sig =5.6710E-8
Tint=288.

import numpy as N
tempvals= N.zeros((3000,))   #creates an array to store temp. values                     
tempvals[0]= Tint            #set the first value of array to Tint
times=N.zeros((3000,))       #creates array to store time values
    for day in range(3000):      #Creates the values of day and goes through
                             #calculates for every day time, A,dT,T 
        time = (dt)*day
        times[day] = time
        if tempvals[day] <= Tice:
            A=Aice
        elif tempvals[day] >=Tnoice:
            A=Anoice
        else :
            A=(((tempvals[day]-Tice)/(Tnoice-Tice)*(Anoice-Aice))+Aice)
        dT =(((S*(1-A))-((epsilon_tow*sig*(tempvals[day]**4))/rho_c )*dt

        if day <2999  
                 tempvals[day+1]= T+dT
                 tempvals[day]= T


        plot(day,T)                    #plots graph of day valueson x axis and
                                       #T values on as y-axis
        plot.title(T)                  #creates title of the graph

1 个答案:

答案 0 :(得分:3)

您在前一行中缺少:

if day < 2999: # <- need a colon here  
    tempvals[day+1]= T+dT

编辑:此行中您还有不匹配的括号/括号:

dT =(((S*(1-A))-((epsilon_tow*sig*(tempvals[day]**4))/rho_c )*dt # missing parens

这条线看起来应该更像:

dT = ((S*(1-A))-((epsilon_tow*sig*(tempvals[day]**4))/rho_c))*dt