代码之家  ›  专栏  ›  技术社区  ›  Eric Ahn

Python 2.7提示输入数字而不是字母。x[副本]

  •  0
  • Eric Ahn  · 技术社区  · 7 年前

    所以我对下面的代码有几个问题。

    from sys import exit
    def gold_room():
        print "This room is full of gold. How much do you take?"
    
        next = raw_input("> ")
        gold_greedy = "50"
    
        if next > gold_greedy:
            dead("You are too greedy to live, die.")
        elif next < gold_greedy:
            dead("You are fair and therefore you win.")
        else:
            dead("Man, you BARELY made it")
    
    def bear_room():
        print "There is a bear here."
        print "The bear has a bunch of honey."
        print "The fat bear is in front of another door."
        print "How are you going to move the bear?"
        bear_moved = False
    
        while True:
            next = raw_input("> ")
    
            if next == "Take honey":
                dead("The bear looks at you then slaps you.")
            elif next == "taunt bear" and not bear_moved:
                print "The bear has moved from the door. You can go through it now."
                bear_moved = True
            elif next == "Taunt Bear" and bear_moved:
                dead("The bear gets pissed off and chews your legs off.")
            elif next == "open door" and bear_moved:
                gold_room()
            else:
                print "I got no idea what that means."
    
    def cthulhu_room():
        print "Here you see the great evil Cthulhu."
        print "He, it, whatever stares at you and you go insane."
        print "Do you flee for your life or eat your head?"
    
        next = raw_input("> ")
    
        if "flee" in next:
            start()
        elif "head" in next:
            dead("Well that was tasty!")
        else:
            cthulhu_room()
    
    def dead(why):
        print why, "Good job!"
        exit(0)
    
    def start():
        print "You are in a dark room."
        print "There is a door to your right and left."
        print "Which one do you take?"
    
        next = raw_input("> ")
    
        if next == "left":
            bear_room()
        elif next == "right":
            cthulhu_room()
        else:
            dead("You stumble around the room until you starve.")
    
    start()
    
    1. 当我来到gold_房间时,为什么当我拿任何字母而不是数字时,它会给我“你太贪心了,活不下去,去死吧。干得好!”,它不应该给我一个错误消息吗?或者给我一个“伙计,你刚刚成功”的消息?

    2. 如果用户键入的不是整数,我如何提示他键入数字?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Erich    7 年前

    如果键入:

    print type(next)
    

    您可以看到下一个变量的类型是str。您必须使用int()函数将其转换为整数:

    next = int(raw_input("> "))