for second in range(60):
message_id = await message.channel.fetch_message(message.id)
for reaction in message_id.reactions:
thumbs_up_count = 0
thumbs_down_count = 0
if str(reaction.emoji) == '?':
thumbs_up_count = reaction.emoji.count
if str(reaction.emoji) == '?':
thumbs_down_count = reaction.emoji.count
await message.edit(content=("**----POLL----** \n \n**Green Today?** :thumbsup: {} \n \n**Red Today?** :thumbsdown: {}".format(thumbs_up_count,thumbs_down_count)))
await asyncio.sleep(3)
这是我的代码,它进行民意测验,人们对此表示赞同或反对。然后它会在投票进入时不断地编辑消息。代码效率不高,但是我看不到逻辑错误在哪里。它根本不计算表情符号,显示为0。
答案 0 :(得分:0)
这是因为您总是将thumbs_up_count, thumbs_down_count
的值替换为reaction.emoji.count
所带来的价值,因此您可以尝试执行以下操作:
for second in range(60):
message_id = await message.channel.fetch_message(message.id)
for reaction in message_id.reactions:
thumbs_up_count = 0
thumbs_down_count = 0
if str(reaction.emoji) == '?':
thumbs_up_count += reaction.emoji.count
if str(reaction.emoji) == '?':
thumbs_down_count += reaction.emoji.count
await message.edit(content=("**----POLL----** \n \n**Green Today?** :thumbsup: {} \n \n**Red Today?** :thumbsdown: {}".format(thumbs_up_count,thumbs_down_count)))
await asyncio.sleep(3)
请注意,在两种情况下我都将=
替换为+=
希望它可以帮助您:)