作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望我的机器人对用户发送的特定消息使用react。但机器人会对每条消息使用react。
@bot.message_handler(content_types=['text'])
def send_rand_photo(message):
keyboard = types.InlineKeyboardMarkup()
if message.text =='photo' or 'new car':
msg=bot.send_message(message.chat.id, "Ну как тебе?", reply_markup=keyboard)
like_button= types.InlineKeyboardButton(text=emojize("Like :heart:", use_aliases=True), callback_data='like')
keyboard.add(like_button)
dislike_button =types.InlineKeyboardButton (text=emojize("Dislike :broken_heart:", use_aliases=True), callback_data='dislike')
keyboard.add(dislike_button)
all_photo_in_directory=os.listdir(PATH)
random_photo=random.choice (all_photo_in_directory)
img=open (PATH + '/' +random_photo, 'rb')
bot.send_chat_action(message.from_user.id,'upload_photo')
bot.send_photo(message.from_user.id,img, reply_markup=keyboard)
img.close()
在此代码中,当用户输入单词“照片”时,机器人会向他发送一个选择。但我随机输入一个单词,它仍然会向我发送一个选择。我的代码有什么问题吗?
最佳答案
问题出在这里:if message.text =='photo' or 'new car':
。你基本上每次都会问这个:
>>> False or True
True
>>> message = 'random'
>>> message =='photo' or 'new car'
'new car'
您应该询问if message.text == 'photo'或message.text == 'new_car'
或者您可以像这样稍微缩短它if message.text in ( '照片','new_car'):
示例:
>>> message = 'random'
>>> if message in ('photo', 'new_car'):
... print('yes!')
...
>>> message = 'photo'
>>> if message in ('photo', 'new_car'):
... print('yes!')
...
yes!
关于Python 远程机器人 API。为什么我的机器人会对每条消息使用react?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48974595/
我刚开始使用 Gnu Plot 并创建了一些简单的绘图。但是现在我遇到了一个新问题。 输入是这样的 csv 文件: name;n0;n1;n2 Benj;1;3;2 Silv;6;1;2 Steffi
我在 MongoDB 中有 2700 条记录。每个文档的大小约为 320KB。我使用的引擎是wiredTiger,集合的总大小约为885MB。 我的 MongoDB 配置如下: systemLog:
我是一名优秀的程序员,十分优秀!