【发布时间】:2019-08-16 14:33:10
【问题描述】:
我使用此代码从列表“my_list”中获取随机行,我使用下面的 while 循环创建,如果我在电报中输入 /start 与我的机器人交谈,则该循环正在工作。
唯一的问题是我的电脑卡住了,因为这个无限循环可能会占用我的全部内存。而且我不喜欢这个循环,即使我不调用它也会持续工作。
没有 while 循环的问题是它读取代码一次,每次在电报中键入 /start 时都会得到相同的行。
我尝试了创建函数之类的方法,如果从电报中调用“开始”,则将其传递给 for 循环,但没有结果,因为这对我来说有点太高级了。
如果在没有 while 循环的情况下在电报中键入 /start 时,我希望有人可以向我展示从 my_list 获取新行的解决方案:')
import time
import urllib.request as urllib
import json
import html
import random
from telegram.ext import Updater
from telegram.ext import CommandHandler
updater = Updater(token='<token>')
dispatcher = updater.dispatcher
while True:
my_list = ['\"this is line1\"',
'\"this is line2\"',
'\"this is line3\"',
'\"this is line4\"',
'\"this is line5\"'
]
my_random = random.choice(my_list)
def func1():
return my_random
def start(bot, update):
bot.send_message(chat_id=update.message.chat_id, text=func1())
my_handler = CommandHandler('start', start)
dispatcher.add_handler(my_handler)
updater.start_polling()
【问题讨论】:
标签: python-3.x for-loop while-loop python-telegram-bot