我该怎么办';以';用Python?

我该怎么办';以';用Python?,python,string,string-comparison,Python,String,String Comparison,标题应该是不言自明的,但举个例子: runny=input(print("do you run or stay?")) if runny in ["run", "Run", " run", " Run", "run ", "Run ", " run ", " Run "]: 我只是想知道我是否可以说‘如果有char(r)或什么的流星? 谢谢 您不需要在输入中运行打印功能。您最后打印了一个额外的None。接下来,您应该使用regex来实现这一点,因为它使它更易于维护 import re runn

标题应该是不言自明的,但举个例子:

runny=input(print("do you run or stay?"))
if runny in ["run", "Run", " run", " Run", "run ", "Run ", " run ", " Run "]:
我只是想知道我是否可以说‘如果有char(r)或什么的流星?
谢谢

您不需要在
输入
中运行
打印
功能。您最后打印了一个额外的
None
。接下来,您应该使用regex来实现这一点,因为它使它更易于维护

import re
runny=input("do you run or stay? ")
if re.match(r"\brun\b",runny,flags=re.I):
    print("You're running!")
else:
    print("You're not running.")

您不需要在
输入
中运行
打印
功能。您最后打印了一个额外的
None
。接下来,您应该使用regex来实现这一点,因为它使它更易于维护

import re
runny=input("do you run or stay? ")
if re.match(r"\brun\b",runny,flags=re.I):
    print("You're running!")
else:
    print("You're not running.")

您可以转换输入以减少搜索空间

  • 小写字母
  • 删除尾随空格

  • 或者,完全匹配:

    if 'run' == runny.lower().strip():
        # do something
    
    您也可以使用
    str.startswith
    ,但要注意误报:

    if runny.lstrip().lower().startswith('run'):
        # do something
    

    如果需要考虑字符之间的空格或更复杂的模式,则应使用正则表达式。

    您可以转换输入以减少搜索空间

  • 小写字母
  • 删除尾随空格

  • 或者,完全匹配:

    if 'run' == runny.lower().strip():
        # do something
    
    您也可以使用
    str.startswith
    ,但要注意误报:

    if runny.lstrip().lower().startswith('run'):
        # do something
    

    如果需要考虑字符之间的空格或更复杂的模式,应该使用正则表达式。

    因此我假设“runny.lower()”将答案转换为小写,“.strip()”将空格分隔开,它们是否应该像这样连接?同样从上面的答案来看,如果我要使用正则表达式,您能否帮助解释这段代码的具体功能‘if re.match(r)(\s| ^)run(\s|$)’,runny,flags=re.I):’?@questiuede是的,因为字符串方法返回新转换的字符串,所以您可以链接字符串方法调用。不能这样做,比如说列表或口述。@COLDSPEED谢谢!万一你没有看到我的编辑(抱歉)“if re.match(r)(\s| ^)run(\s|$)”,runny,flags=re.I):“如果我要使用正则表达式该怎么办?”问题你应该明白,当你的问题如此简单时,正则表达式是最糟糕的使用方法。有句谚语说。。。如果您使用正则表达式来解决问题。。。你有两个问题p您不需要搜索中
    条带
    !这是无济于事的!所以我假设“runny.lower()”将答案转换为小写,“.strip()”将空格分隔开,它们是否应该这样连接?同样从上面的答案来看,如果我要使用正则表达式,您能否帮助解释这段代码的具体功能‘if re.match(r)(\s| ^)run(\s|$)’,runny,flags=re.I):’?@questiuede是的,因为字符串方法返回新转换的字符串,所以您可以链接字符串方法调用。不能这样做,比如说列表或口述。@COLDSPEED谢谢!万一你没有看到我的编辑(抱歉)“if re.match(r)(\s| ^)run(\s|$)”,runny,flags=re.I):“如果我要使用正则表达式该怎么办?”问题你应该明白,当你的问题如此简单时,正则表达式是最糟糕的使用方法。有句谚语说。。。如果您使用正则表达式来解决问题。。。你有两个问题p您不需要搜索中
    条带
    !这是无济于事的!