python - while 循环没有使用正确的变量进行输出
问题描述
我创建了这个循环,以便在 100 次代码迭代后找到温度、反照率和冰层纬度的变化。
import numpy as np
import matplotlib.pyplot as plt
#define constants
L = 1280
albedo = 0.15
nIters = 100
LRange = [1200, 1600] #W/m2
Episilon = 1 #no units
Sigma = 5.67E-08 #Wm-2K-4
Ice_Lat_m = 1.5
Ice_lat_c = -322.5
Alb_m = -0.01
Alb_c = 2.8
plotType = "iterDown" #"L", "iterUp", "iterDown"
x = []
y = []
while (L > LRange[0] - 1):
for iter in range(nIters):
T = ((L * ( 1- albedo)) / 4) / Sigma
T = T ** (1/4)
albedo = Alb_m * T + Alb_c
albedo = min(albedo, 0.65)
albedo = max(albedo, 0.15)
lat_ice = Ice_Lat_m * T + Ice_lat_c
lat_ice = min(lat_ice, 90)
lat_ice = max(lat_ice, 0)
if plotType is "iter" or plotType is "iterDown":
x.append(iter)
y.append(T)
if plotType is "iter" or plotType is "iterDown":
x.append(np.nan)
y.append(np.nan)
if plotType is "L":
x.append(L)
y.append(T)
L = L - 10
while (L < LRange[1] + 1):
for iter in range(nIters):
T = ((L * ( 1- albedo)) / 4) / Sigma
T = T ** (1/4)
albedo = Alb_m * T + Alb_c
albedo = min(albedo, 0.65)
albedo = max(albedo, 0.15)
lat_ice = Ice_Lat_m * T + Ice_lat_c
lat_ice = min(lat_ice, 90)
lat_ice = max(lat_ice, 0)
if plotType is "iter" or plotType is "iterDown":
x.append(iter)
y.append(T)
if plotType is "iter" or plotType is "iterDown":
x.append(np.nan)
y.append(np.nan)
if plotType is "L":
x.append(L)
y.append(T)
L = L + 10
plt.plot(x, y)
plt.show()
print(T, albedo, lat_ice)
这段代码的输出是:
278.2748546226214 0.15 90
这告诉我,当代码在定义的“LRange”范围内时,代码使用变量“LRange[1]”作为循环的输入,而不是使用变量“L”。
期望的输出应该是:
255.45242794389384 0.24547572056106137
谁能向我解释为什么会这样?这将不胜感激!
解决方案
你有两个循环:第一个循环将从 1280 倒数到 1200,第二个循环将从 1200 开始。
您可能想在第二个循环之前重置 L 。
推荐阅读
- javascript - Javascript 中的对象格式
- image - ImageMagick convert -set 注释不起作用
- javafx - 如何禁用 TextArea (JavaFX) 中的文本选择?
- javascript - 饼图中的冗余数据 - Google Scripts
- asp.net-core - Chrome 中的 adpboilerplate ASP.NET Core MVC 登录循环
- java - 为什么在使用 TinkerPop 时会出现 OutOfMemoryException?
- azure - 如何通过 ARM 模板输出返回 Redis 主键?
- c++ - 无法访问类的私有成员(C++)
- python - 从 MySQL 到 SQLite
- github - 有没有办法将包含 100 多个文件的文件夹上传到 GitHub?