python - Python中的内存错误或空返回列表
问题描述
第一个函数计算湖的深度,并将体积作为参数。在第二个中,我必须传递一个音量和一个时间增量(我必须增加),它会返回两个列表。第一个列表:时间增量,此列表中的最后一个时间/元素对应于体积 = 0,此时湖为空。第二个列表:每次对应的深度。例如,对于 dt = 1000s 秒,z(depth) = 10m,对于 dt = 150000s,dt = 0m。抱歉,流体力学太多了,我只想说清楚一点。当我调用函数 abfluss 时,它会在 V0 较小时返回空列表,或者在 v0 较大时显示内存错误。我尝试了许多不同的 vo 和 dt,我从来没有一个填充列表,只有当我在没有 while 循环的情况下尝试它时才会发生这种情况(然后我在每个列表中有 1 个元素)。有什么建议么?
from numpy import pi
p = 0.036
def tiefe(V):
a = (3*V*p**2)/pi
z = a**(1/3)
return z
U_unten = 35.56
A = 2
def abfluss(V0, dt):
V_geblieben = V0 - (U_unten*A*dt)/V0
neu_tiefe = tiefe(V_geblieben)
t_list = []
Z_list = []
while V_geblieben >=0:
dt = dt+100
t_list.append(dt)
Z_list.append(neu_tiefe)
return t_list, Z_list
print(abfluss(50000,3600))
解决方案
在循环内重新计算 V_geblieben 并且它可以工作
from math import pi
p = 0.036
def tiefe(V):
a = (3 * V * p ** 2) / pi
z = a ** (1 / 3)
return z
U_unten = 35.56
A = 2
def abfluss(V0, dt):
V_geblieben = V0 - (U_unten * A * dt) / V0
neu_tiefe = tiefe(V_geblieben)
t_list = []
Z_list = []
while V_geblieben >= 0:
dt = dt + 100
t_list.append(dt)
Z_list.append(neu_tiefe)
V_geblieben = V0 - (U_unten * A * dt) / V0
print(V_geblieben)
return t_list, Z_list
print(abfluss(50000, 3600))
推荐阅读
- php - 在json响应中打印多维数组
- java - 编码——正确使用 UTF-8 - java
- r - R 数据导出到带有附加列的 Excel
- dart - AngularDart 5:如何获取父组件
- visual-studio - 在 U-SQL 中从文件名(例如“vga_20171201.txt”)中提取日期时间
- javascript - 从一个对象创建一组对象
- python - django 在另一个选项卡中检测用户登录
- javascript - 带有 React 的 Electron 中的 Monaco 编辑器
- laravel - Laravel 依靠 belongsToMany 关系
- windows - 将 nwjs 应用程序打包成单个 exe