如何将一个值与反斜杠进行比较?

24
if (message.value[0] == "/" or message.value[0] == "\"):
    do stuff.

我确定这是一个简单的语法错误,但是这个if语句有问题。


1
相关/重复:如何在Python中打印反斜杠? - Aran-Fey
5个回答

61

如果你只需要检查相等性,你也可以直接使用in运算符在一系列可接受元素中进行成员测试:

if message.value[0] in ('/', '\\'):
    do_stuff()

11
或者只需使用message.value[0] in "/\\",因为字符串是可迭代的。 - Chris Lutz
2
如果你确定message.value[0]是一个长度为1的字符串(是的,我知道,我知道...)。 - Ignacio Vazquez-Abrams
message.value[0]在“/\”中可能很危险 - 在维护两周后或由另一个程序员操作时,很容易出现错误。 - Hamish Grubijan
1
如果你想允许 message 为空字符串,那么惯用语就是 if message.value[:1] in ('/', '\\') - bobince

55

转义反斜杠:

if message.value[0] == "/" or message.value[0] == "\\":

文档中得知:

反斜杠 (\) 字符用于转义本来具有特殊含义的字符,比如换行符、反斜杠本身或引号字符。


4
括号是有效的,但毫无意义。 - Adam Crossland

2
如果 message.value[] 是字符串:
if message.value[0] in ('/', '\'):
    do_stuff()

如果它不是字符串

2
试试这样做:
if message.value[0] == "/" or message.value[0] == "\\":
  do_stuff

0
使用以下代码在Python中执行if-else条件语句: 在这里,我正在检查字符串的长度。如果长度小于3,则不执行任何操作,如果长度大于3,则检查最后3个字符。如果最后3个字符是“ing”,则在末尾添加“ly”,否则在末尾添加“ing”。
代码-
if (len(s)<=3):
    return s
elif s[-3:]=="ing":
    return s+"ly"
else: return s + "ing"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接