我试图将这些代码放在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)
你实现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
在循环外初始化。否则,它将在每次迭代中重置。