【问题标题】:How do I compare a value to a backslash?如何将值与反斜杠进行比较?
【发布时间】:2010-01-13 18:14:58
【问题描述】:
if (message.value[0] == "/" or message.value[0] == "\"):
    do stuff.

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

【问题讨论】:

标签: python syntax


【解决方案1】:

当您只需要检查是否相等时,您还可以简单地使用in 运算符对一系列接受的元素进行成员资格测试:

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

【讨论】:

  • 或者只是message.value[0] in "/\\":,因为字符串是可迭代的。
  • 如果你可以确定message.value[0] 是一个长度为 1 的字符串(是的,我知道,我知道...)。
  • message.value[0] in "/\\ 可能很危险 - 太容易在 2 周后的维护期间或由其他程序员搞砸。
  • 如果您想让message 成为空字符串,则成语应为if message.value[:1] in ('/', '\\')
【解决方案2】:

转义反斜杠:

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

来自documentation

反斜杠 (\) 字符用于 转义字符,否则有 特殊含义,例如换行符, 反斜杠本身,或引号 字符。

【讨论】:

  • 括号有效,但无意义。
【解决方案3】:

试试这样:

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

【讨论】:

    【解决方案4】:

    如果 message.value[] 是字符串:

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

    如果不是str

    【讨论】:

      【解决方案5】:

      使用以下代码在 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"
      

      【讨论】:

        猜你喜欢
        • 2014-02-18
        • 1970-01-01
        • 1970-01-01
        • 2011-09-06
        • 2021-04-24
        • 1970-01-01
        • 2014-09-09
        • 2019-05-08
        • 1970-01-01
        相关资源
        最近更新 更多