如何使字符串检查不区分大小写?

问题描述 投票:12回答:4

我最近开始学习Python,作为一种练习,我正在研究基于文本的冒险游戏。现在,代码实际上是无效的,因为它检查用户的响应,看它是否与同一个单词的几个变体相同。如何更改它以使字符串检查不区分大小写?

示例代码如下:

if str('power' and 'POWER' and 'Power') in str(choice):
    print('That can certainly be found here.')
    time.sleep(2)
    print('If you know where to look... \n')
python string case-insensitive
4个回答
23
投票
if 'power' in choice.lower():

应该这样做(假设choice是一个字符串)。如果choice包含单词power,则会出现这种情况。如果要检查是否相等,请使用==而不是in

另外,如果你想确保你只将qazxsw poi作为整个单词匹配(而不是作为qazxsw poi或qazxsw poi的一部分),那么使用正则表达式:

power

9
投票

如果您正在进行精确比较。

horsepower

或者,如果你正在进行子串比较。

powerhouse

如果你感兴趣,你也有import re if re.search(r'\bpower\b', choice, re.I):


3
投票

使用if choice.lower() == "power": 将所有条目转换为小写,并仅针对小写的可能性检查字符串。


1
投票

str类型/对象具有专门用于无壳比较的方法。

在python3提示符下:

if "power" in choice.lower():

因此,如果将.casefold()添加到任何字符串的末尾,它将为您提供全部小写。

例子:

choice.lower().startswith( "power" )
© www.soinside.com 2019 - 2024. All rights reserved.