在While循环中定义多个变量

时间:2015-10-07 12:59:31

标签: python matplotlib while-loop

我需要在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

2 个答案:

答案 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等可供使用。