Python 如何与单词的前缀进行比较
让我用一段简短的代码解释一下 代码: 我怎样才能做到这一点,而不是:Python 如何与单词的前缀进行比较,python,if-statement,Python,If Statement,让我用一段简短的代码解释一下 代码: 我怎样才能做到这一点,而不是: if choice == "y".lower() or choice == "ye".lower() or choice == "yes".lower(): 它自动接受,“y”,“ye”或“yes”,而无需执行或那么多操作。您可以使用以下操作来实现: if 'yes'.startswith(choice.lower().strip()): print('You said "yes"!') 您可以使用来实现这一点: i
if choice == "y".lower() or choice == "ye".lower() or choice == "yes".lower():
它自动接受,“y”
,“ye”
或“yes”
,而无需执行或那么多操作。您可以使用以下操作来实现:
if 'yes'.startswith(choice.lower().strip()):
print('You said "yes"!')
您可以使用来实现这一点:
if 'yes'.startswith(choice.lower().strip()):
print('You said "yes"!')
您只需选择输入的第一个字符与“y”进行比较。还要注意,您需要将输入设置为小写。因此,代码变成:
choice = raw_input("Do you like pineapple? Y/N: ")[0]
if choice.lower() == "y":
print("Sammmmeee")
else:
print("Nani! You criminal!")
您只需选择输入的第一个字符与“y”进行比较。还要注意,您需要将输入设置为小写。因此,代码变成:
choice = raw_input("Do you like pineapple? Y/N: ")[0]
if choice.lower() == "y":
print("Sammmmeee")
else:
print("Nani! You criminal!")
这将不区分大小写地精确匹配'y'
,'ye'
,和'yes'
:
choice = raw_input("Do you like pineapple? Y/N: ")
if choice.lower() == 'yes'[:len(choice)]:
print("Sammmmeee")
else:
print("Nani! You criminal!")
这将不区分大小写地精确匹配'y'
,'ye'
,和'yes'
:
choice = raw_input("Do you like pineapple? Y/N: ")
if choice.lower() == 'yes'[:len(choice)]:
print("Sammmmeee")
else:
print("Nani! You criminal!")
首先,您不应该将lower
应用到右侧,这是一个常量,并且已经是小写。您应该将其应用于变量输入:
choice = raw_input(...).lower()
有很多方法可以检查您正在寻找的匹配项。最简单的方法是使用startswith
:
if 'yes'.startswith(choice):
另一种方法是显式检查集合或元组中的包含:
if choice in ('y', 'ye', 'yes'):
这仅适用于不适合简单方法检查的情况,例如,如果您想将ok
添加到选项列表中
如果要进行多个函数检查,可以将any
与生成器表达式一起使用:
if any(f(x) for f in ('yes'.startswith, 'ok'.startswith)):
这里的所有测试都是正确的短路,就像您的原始表达式一样 首先,您不应该将lower
应用到右手边,这是一个常量,已经是小写了。您应该将其应用于变量输入:
choice = raw_input(...).lower()
有很多方法可以检查您正在寻找的匹配项。最简单的方法是使用startswith
:
if 'yes'.startswith(choice):
另一种方法是显式检查集合或元组中的包含:
if choice in ('y', 'ye', 'yes'):
这仅适用于不适合简单方法检查的情况,例如,如果您想将ok
添加到选项列表中
如果要进行多个函数检查,可以将any
与生成器表达式一起使用:
if any(f(x) for f in ('yes'.startswith, 'ok'.startswith)):
这里的所有测试都是正确的短路,就像您的原始表达式一样 我已经更新了你的标题并删除了自嘲的介绍。在那之前,我就已经很清楚问题会是什么,所以不要低估自己。首先正确地使用或
也很好。从这里的许多问题来看,直觉上这并不容易。谢谢你让标题更容易理解:)我更新了你的标题,删除了自我贬低的介绍。在那之前,我就已经很清楚问题会是什么,所以不要低估自己。首先正确地使用或
也很好。从这里的许多问题来看,直觉上这并不容易。感谢您让标题更容易理解:)这与OP要求的方式不同:例如,您的代码将接受“yerk!”这与OP请求的方式不同:例如,您的代码将接受“yerk!”是的,但不应该。