我有一个非常简单的(我猜?)这里有个问题。你知道吗
我正在编写一个代码,它允许我从一个txt文件中提取数据并对其进行一些计算,然后绘制结果。你知道吗
我已经成功地构建了代码的主要部分,这里唯一的问题是我在if循环之后得到的结果不是列表形式的,错误消息是:
TypeError:zip参数#2必须支持迭代
那我做错什么了?谢谢你的帮助。你知道吗
这是密码
import math
import matplotlib.pyplot as plt # To import the matplotlib library
def Calcul_Lux(Aperture,Shutter,Speed):
x=math.pow(Aperture,2)/(Shutter/Speed)
IL=math.log(x,2)
lux = math.pow(2,IL) * 2.5
return lux
data='/home/stagiaire/Bureau/data0030.txt'
with open(data) as f:
lines = f.readlines()
for z in lines:
if z.find("Aperture") >= 0:
Aperture=z.split()[-1]
elif z.find("Shutter Speed") >=0:
t2=z.split()[-1]
t3=t2.split("/")
Shu=t3[0]
Shutter=float(Shu)
Spe=t3[1]
Speed=float(Spe)
tuples = zip(Aperture, Shutter, Speed)
output = map(lambda tup: Calcul_Lux(tup[0], tup[1], tup[2]), tuples)
print(output)
#plt.plot(output, 'ro')# To draw the points from the output
plt.plot(range(len(output)), output, 'ro')
plt.axhline(y=48000) # la ligne de comparaison 48.000 lux
plt.show()
目标是:我必须从循环接收光圈,快门,和速度valeus,因为它现在是但所有的txt行,而不是只有一行。再次感谢你的帮助。你知道吗
这里可以看到txt文件。你知道吗
编辑:
所以问题是,我没有定义空列表,而是将结果附加到其中,我编辑了我的初始问题,这样就可以帮助新手。你知道吗
好的,正如注释已经提到的,您的循环没有存储任何值。这意味着每次运行循环时,在循环中定义的所有变量都只会将其关联值保留在该特定循环中。你知道吗
诀窍是将数据存储在列表、字典或其他Python Data Structures中。你知道吗
既然你提到你希望结果存储在一个列表中,我猜你是在寻找这样的东西:
相关问题 更多 >
编程相关推荐