因此,这个结果有时可能会有不到10个答案。如果'overbought1‘小于10,我很难弄清楚如何忽略它。例如,如果只有8个结果,我希望它显示8,忽略不存在的最后两个结果。
try:
for i in range(10):
(runo[i])
except:
pass
overbought1 = ("Top 10 overbought today: $" + runo[0] + " $" + runo[1] + " $" + runo[2] + " $" + runo[3] + " $" +runo[4] + " $" + runo[5] + " $" + runo[6] + " $" + runo[7]+ " $" + runo[8]+ " $" + runo[9])
await client.say(overbought1)
发布于 2018-06-24 04:57:12
尽管您的整个示例意义不大,但以下是避免使用IndexError
的方法之一
for i in range(min(10, len(runo))): # loop at most to the minimum
# between ten and len(runo)
(runo[i]) # <-- this does nothing here!
另一种方式:
for v in runo[:10]: # access no more than first 10 elements
v # <-- also does nothing. v is equivalent to runo[i] from the previous loop
现在,如果您想修复overbought1
字符串,请执行以下操作:
overbought1 = "Top 10 overbought today: $" + " $".join(runo[:10])
或者甚至是:
overbought1 = ("Top %d overbought today: $" % len(runo)) + " $".join(runo[:10])
https://stackoverflow.com/questions/51002971
复制相似问题