【问题标题】:Python RANDOM always got same resultPython RANDOM 总是得到相同的结果
【发布时间】:2022-01-14 11:53:57
【问题描述】:

我在 Telegram 机器人(whit telebot)中有这个代码⬇️。 当我发送 /start 时,它会发送一个随机元素,但它总是发送相同的

v1 = "1111"
v2 = "ABCD"
v3 = "EFGH"
v4 = "XXXX"
v5 = "0000"

list = [v1, v2, v3, v4, v5]
abcd = random.choice(list)

@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
    bot.reply_to(message, abcd)

我该如何解决?

【问题讨论】:

  • 旁注:list 在此处突出显示的语法不同,因为它是带有构造函数 list() 的内置类型。最好不要隐藏此类内置插件。考虑将您的列表称为 lstlist_,或者更好的是语义上有效的名称,例如 fruitsbaseball_teams 或任何对您的实际用例有意义的名称。

标签: python random telegram


【解决方案1】:

您只选择一次值。将bot.reply_to(message, abcd) 替换为bot.reply_to(message, random.choice(list)) 每次都会得到随机结果。

【讨论】:

  • 有效!谢谢
  • 那么,你能接受我的回答吗?
【解决方案2】:

你可以使用

@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
    bot.reply_to(message, random.choice(['1', '2', '3', '4']))

我觉得变量少一点比较好,变量名list是内置类 还要检查你是否有 random.seed() 在你的代码中

【讨论】:

    猜你喜欢
    • 2021-04-23
    • 1970-01-01
    • 2019-06-10
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多