使用循环或其他方法分配变量

问题描述 投票:-1回答:1

我试图将这些代码放在for循环中,但我有错误。我知道变量不能使用循环分配,或者可能是我错了,有办法。

有没有办法实现这个目标?或者是否有另一种方法来实现目标?

pm0=ax.annotate('', (35,10), textcoords='data',size=10)
pm1=ax.annotate('', (35,5), textcoords='data', size=10)
pm2=ax.annotate('', (35,0), textcoords='data', size=10)
pm3=ax.annotate('', (35,-5), textcoords='data',size=10)
pm4=ax.annotate('', (35,10), textcoords='data',size=10)


pm0.set_text(0)
pm1.set_text(1)
pm2.set_text(2)
pm3.set_text(3)
pm4.set_text(4)


#edit for i in range():
  for i in range(5):
     tag=10
     'pm'+str(i)=ax.annotate('', (35,tag), textcoords='data',size=10)
     tag=tag-5
     'pm'+str(i).set_text(i)

enter link description here

python matplotlib
1个回答
0
投票

你实现for循环的方式是错误的。

做像'pm'+str(i) = ...这样的事情是行不通的,因为它是一个字符串。不是变量。

所以,使用list,你可以做类似的事情

pm = []
tag = 5
for i in range(5):
    pm[i] = ax.annotate('', (35,tag), textcoords='data',size=10)
    tag = tag - 5
    pm[i].set_text(1)

另请注意,tag在循环外初始化。否则,它将在每次迭代中重置。

© www.soinside.com 2019 - 2024. All rights reserved.