elif 语句结合 "and" 或 "or" 不起作用
elif statement combined with "and" or "or" not working
我正在为我的氏族编写这个电报机器人。机器人应该根据文本消息中的几个词发送回复。假设我在包含单词 "Thalia" 和 "love" 的组中键入文本,并且我希望机器人响应。以下作品。
elif "thalia" in text.lower():
if "love" in text.lower():
reply("I love u too babe <3." "\nBut I love my maker even more ;).")
else:
reply("Say my name!")
msg containing thalia and love
我这样编码是因为当我使用 "and" 或 "or" 关键字时,该语句不起作用并且机器人会发疯。在上面,如果我编码:elif "thalia" and "love".....
它不起作用。
如果有另一种编码方式,我将不胜感激!
现在我正在用 "and" 和 "or" 对更多单词尝试相同的技术,但它不起作用。如果我离开 "and" 和 "or" 它工作正常。但是当然,我不能在这个特定的回复中使用我想要的单词组合。
elif "what" or "when" in text.lower():
if "time" or "do" in text.lower():
if "match" in text.lower():
reply ("If you need assistence with matches, type or press /matches")
it triggered the command without the 3 words in one sentence
如何以更 "professional" 的方式重写此代码?我需要更改什么才能使其正常工作?只有当像 thalia 爱情代码中那样使用单词组合时,机器人才会响应。而不是在使用 "matches" 时。*
Python 很像自然语言,但口译员无法填写人类听众可以填写的内容。 'a and b in c' 必须写成 'a in c and b in c'.
在写if语句之前,你应该将文本小写一次,不要重复。然后把它变成一组单词,去除标点和符号后,避免重复线性搜索小写字符串。这是仅 ascii 输入的不完整示例。
d = str.maketrans('', '', '.,!') # 3rd arg is chars to delete
text = set(text.lower().translate(d).split())
你的 'matches' 片段可以写成如下。
elif (("what" in text or "when" in text) and
("time" in text or "do" in text) and
"match" in text)
reply ("If you need assistence with matches, type or press /matches")
您也可以使用正则表达式匹配来做同样的事情,但像上面这样的逻辑语句可能更容易入手。
我正在为我的氏族编写这个电报机器人。机器人应该根据文本消息中的几个词发送回复。假设我在包含单词 "Thalia" 和 "love" 的组中键入文本,并且我希望机器人响应。以下作品。
elif "thalia" in text.lower():
if "love" in text.lower():
reply("I love u too babe <3." "\nBut I love my maker even more ;).")
else:
reply("Say my name!")
msg containing thalia and love
我这样编码是因为当我使用 "and" 或 "or" 关键字时,该语句不起作用并且机器人会发疯。在上面,如果我编码:elif "thalia" and "love".....
它不起作用。
如果有另一种编码方式,我将不胜感激!
现在我正在用 "and" 和 "or" 对更多单词尝试相同的技术,但它不起作用。如果我离开 "and" 和 "or" 它工作正常。但是当然,我不能在这个特定的回复中使用我想要的单词组合。
elif "what" or "when" in text.lower():
if "time" or "do" in text.lower():
if "match" in text.lower():
reply ("If you need assistence with matches, type or press /matches")
it triggered the command without the 3 words in one sentence
如何以更 "professional" 的方式重写此代码?我需要更改什么才能使其正常工作?只有当像 thalia 爱情代码中那样使用单词组合时,机器人才会响应。而不是在使用 "matches" 时。*
Python 很像自然语言,但口译员无法填写人类听众可以填写的内容。 'a and b in c' 必须写成 'a in c and b in c'.
在写if语句之前,你应该将文本小写一次,不要重复。然后把它变成一组单词,去除标点和符号后,避免重复线性搜索小写字符串。这是仅 ascii 输入的不完整示例。
d = str.maketrans('', '', '.,!') # 3rd arg is chars to delete
text = set(text.lower().translate(d).split())
你的 'matches' 片段可以写成如下。
elif (("what" in text or "when" in text) and
("time" in text or "do" in text) and
"match" in text)
reply ("If you need assistence with matches, type or press /matches")
您也可以使用正则表达式匹配来做同样的事情,但像上面这样的逻辑语句可能更容易入手。