Telegram 机器人甚至回复随机文本

Telegram bot replies even on random texts

我正在创建一个可以用随机语言回复 Hello 的 Telegram 机器人。工作正常但问题是即使我随机发送一些没有意义的东西它也会回复 sfdsfjls.

我应该怎么做才能让它只在我说 HiHello 时回复,而在我随机发送内容时回复 I don't get it 之类的内容。

我正在使用 pytelegrambotapi

我的代码:

import telebot
import random

bot_token =''

bot= telebot.TeleBot(token=bot_token)

lang1= ['Hola','Konnichiwa','Bonjour','Namaste']

# Handle normal messages
@bot.message_handler()
def send_welcome(message):

# Detect 'hi'
    if message.text == 'hi' or 'hello':
        bot.send_message(message.chat.id, (random.choice(lang1)))

你需要

if message.text == 'hi' or message.text == 'hello':

而不是关闭

if message.text == 'hi' or 'hello':

因为 or 'hello' 部分将 总是 导致 TRUE ,你可以 test here.


另一个选项,检查 if a string matches any other string 可能看起来像这样:

triggers = {'hi', 'hello'}
if message.text in triggers:

应用这些修复,并添加额外的检查 得到以下代码:

import telebot
import random

bot_token =''

bot= telebot.TeleBot(token=bot_token)

lang1= ['Hola','Konnichiwa','Bonjour','Namaste']

# Handle normal messages
@bot.message_handler()
def send_welcome(message):

# Detect Messages
if message.text == 'hi' or message.text == 'hello':
    bot.send_message(message.chat.id, (random.choice(lang1)))
elif message.text == 'Test':
    bot.send_message(message.chat.id, 'Test succeeded')
else:
    bot.send_message(message.chat.id, 'Sorry I don\'t get it!')