如何以不区分大小写的方式匹配输入?

时间:2013-08-08 01:05:11

标签: python

我正在制作MUD或SUD,因为我们可以称之为(单人游戏) 浏览游戏的唯一方法是键入命令。

def level_01_room_01():
    choice = raw_input('>: ')
    if choice == 'north':
        level_01_room_02()

在这种情况下,如果用户使用大写N输入North,则代码将不会感知此命令。如果我真的必须输入,那将是一个很大的混乱:

def level_01_room_01():
    choice = raw_input('>: ')
    if choice == 'North':
        level_01_room_02()
    if choice == 'north':
        level_01_room_02()
    if choice == 'NORTH':
        level_01_room_02()

有什么方法可以解决这个问题,以便玩家可以按照自己的意愿输入单词吗?

3 个答案:

答案 0 :(得分:5)

在将用户输入与已知字符串进行比较之前始终lower()用户输入(并始终使用小写字母)。

if choice.lower() =='north':
    ...

答案 1 :(得分:4)

您可以使用

if choice.lower() == 'north':
    level_01_room_02()

(见str.lower()

答案 2 :(得分:3)

您可以使用方法.lower().upper()将字符串转换为相应的案例。 一个实际的例子是降低用户输入的所有内容,如下所示:

def level_01_room_01():
choice = raw_input('>: ').lower()
if choice == 'north':
    level_01_room_02()

由于输入始终是小写的,只要您的所有选择都以小写字母("north"而不是"NORTH""North"编码),它将与先前较低的输入正确匹配