我需要在while循环中定义多个变量,以便在Python中的while循环中调用。
代码:
tau = 0
while tau < 10:
(tau)
d_abrv = "d" % tau
day = "day" % tau
d_abrv = datetime.now() + timedelta(days=tau)
day = d_abrv.strftime('%a %d-%b-%y')
image_date = d_abrv.strftime('%Y%m%d')
plt.savefig(homedir + "/out/_tmax_" + d_abrv + "_ne.png", dpi = 300)
tau = tau + 1
sys.exit()
我做错了什么?
理想情况下,我需要定义一个循环遍历数字0到10的变量。之后,我需要能够在整个脚本中使用此定义的变量,包括使用变量定义新变量,例如tau=0
,将day0
更改为day=day+tau
答案 0 :(得分:3)
不完全确定你的意思,但这还够吗?
from datetime import datetime
from datetime import timedelta
for tau in range(0,10):
d_abrv = "d" + str(tau)
day = "day" +str(tau)
d_abrv = (datetime.now() + timedelta(days=tau))
day = d_abrv.strftime('%a %d-%b-%y')
image_date = d_abrv.strftime('%Y%m%d')
plt.savefig(homedir + "/out/_tmax_" + d_abrv + "_ne.png", dpi = 300)
sys.exit()
虽然我必须说我不确定这意味着什么:
plt.savefig(homedir + "/out/_tmax_" + d_abrv + "_ne.png", dpi = 300)
答案 1 :(得分:-1)
如果我正确理解了您的问题,您希望在循环的每次迭代中创建一个新变量。我过去使用exec()成功完成了这项工作。我仍然不确定这是否是一个pythonic的事情,但它的确有效。根据您之前的评论,我建议使用以下代码:
tau = 0
timeformat = "'%a %d-%b-%y'"
timeformat2 = "'%Y%m%d'"
while tau < 10:
exec("d%d = datetime.now() + timedelta(days=tau)" % tau)
exec("day%d = d%d.strftime(%s)" % (tau,tau,timeformat))
exec("image_date = d%d.strftime(%s)" % (tau,timeformat2))
exec("plt.savefig(homedir + '/out/_tmax_' + day%d + '_ne.png', dpi = 300)" % tau)
tau = tau + 1
sys.exit()
我测试了这段代码(在我绘制的一些虚拟数据上),我成功地获得了文件名“_tmax_Fri 09-Oct-15_ne.png”等保存的图。
其余代码的变量day0,day1等可供使用。