将用户输入转换为小写 - 文本冒险游戏 - python 3

时间:2017-04-28 07:12:06

标签: python python-3.x

我为另一个简单的问题道歉但我确实被卡住了......我正在尝试添加一个.lower()方法来将任何用户输入转换为小写,无论是大写,小写还是组合。

我无法确切地知道在哪里添加.lower()?

这是游戏的主要功能:

<View .... /View>

所以我认为这也是添加它的代码行......但它不起作用......

def main():

for turn in range(20, 0, -1):
    print("")
    describe()
    cmd = input("Enter your command " + str(turn) + "> ")
    if cmd == "quit":
        print("You gave in so easily :-(")
        break
    elif cmd.startswith("go "):
        where = cmd[3:]
        move_cmd(where)
        if state == "dead":
            print("you are dead")
        elif state == "outside":
            print("You jimmy the door open with the crowbar and escape to your freedom!")
            break
    elif cmd.startswith("take "):
        obj_name = cmd[5:]
        take_cmd(obj_name)
    else:
        print("I do not understand '" + cmd + "'.  Try go/take/quit")
print("Game over")


if __name__ == "__main__":
    main()

这不起作用...我是否需要添加另一个循环或以某种方式更改代码行?

提前谢谢。

4 个答案:

答案 0 :(得分:2)

任何字符串都是str类的实例。所以你可以在任何字符串上使用.lower(),. upper()等。 input()返回的类型是str。所以你想要这个,就在if语句之上,首先检查命令是否退出:     cmd = cmd.lower()

您可能需要查看python的tutorialstandard library reference,以便查看示例并查看标准库和类型(如str!)必须提供的内容。

答案 1 :(得分:2)

解决方案:不使用“cmd = input(”输入您的命令“+ str(转)+”&gt;“)”,而是使用下面的一个:

//learn about escaping
var tip = "<p style=\"color:red;\">This is tip</p>";
//also: var tip = "<p style='color:red;'>This is tip</p>";
//or:  var tip = '<p style="color:red;">This is tip</p>';

//set html content is simple with jQuery:
//$('#target').html( tip );
//same as simple JavaScript:
document.getElementById('target').innerHTML = tip;
 

解释使用 raw_input()而不是input()

1)input()等效于eval(raw_input()),因此它将输入解析并评估为有效的Python表达式。

2)eval()将字符串解释为代码。如果你编写任何无法解析的命令,它就会出错。

答案 2 :(得分:1)

您正在尝试将输入设置为小写。 您需要设置var&#34; cmd&#34;小写

cmd = input("Enter your command " + str(turn) + "> ")
cmd.lower()
...
if ...

答案 3 :(得分:0)

n=int(input("enter the number of lines"));
line=[]
print "Enter the line sequence:";
for i in range(n):
    line.append(raw_input());
for j in range(n):
    print line[j].upper();

This is a way to accept the string sequence and convert them into uppercase , i hope this can solve your problem in simple way