' for in'在raw_input之后停止工作

时间:2017-05-26 22:41:43

标签: python python-2.7 for-loop if-statement raw-input

我正在制作一个程序,让英雄在10秒内拯救两名人质。他需要做的第一件事就是决定先保存谁,然后输入炸弹的代码以拯救人质,如果用户输入错误的人名,他可以再次输入。但是一旦循环停止我输入错误或者在我完成保存第一个人质后,循环停止。

这是代码:

holly = True
molly = True

for i in range(0,11):
    print "Who will you save?"
    print "Time paste:", i

    decide = raw_input("> ")

    if decide == "Holly" and holly:
        print "You decided to save Holly."
        print "Whats the code?"
        code = random.randint(100,1000)
        print code
        decide = int(raw_input("> "))
        if decide != code:
            exit('You are dead!')
        print "You saved Holly!"
        holly = False
    elif decide == "Molly" and molly:
        print "You decided to save Molly."
        print "Whats the code?"
        code = random.randint(100,1000)
        print code
        decide = int(raw_input("> "))
        if decide != code:
            exit('You are dead!')
        print "You saved Molly!"
        molly = False
    elif not holly and not molly:
        print "You saved both of them!"
        break
    else:
        print "Try again!"

我在一个类中完成所有操作,这里是完整的代码:

class Mountains(object):
    def enter(self):
        print "After you defeated Josh. You headed towards the mountains."
        print "There you're final target sits."
        print "Jim the \"Knigh\""
        print "He has 2 hostages. Holly and Molly, you have 10 seconds to save them."
        print "They are bought straped to a bomb, each one in different location"
        print "Each bomb has a 3 digit code."

        holly = True
        molly = True

        for i in range(0,11):
            print "Who will you save?"
            print "Time remaining:", i

            decide = raw_input("> ")

            if decide == "Holly" and holly:
                print "You decided to save Holly."
                print "Whats the code?"
                code = random.randint(100,1000)
                print code
                decide = int(raw_input("> "))
                if decide != code:
                    exit('You are dead!')
                print "You saved Holly!"
                holly = False
            elif decide == "Molly" and molly:
                print "You decided to save Molly."
                print "Whats the code?"
                code = random.randint(100,1000)
                print code
                decide = int(raw_input("> "))
                if decide != code:
                    exit('You are dead!')
                print "You saved Molly!"
                molly = False
            elif not holly and not molly:
                print "You saved both of them!"
                break
            else:
                print "Try again!"

            if holly and molly:
                exit("You are dead!")

            print "After you saved both, Jim comes in angry!"
            print "He takes his shotgun! And startes firing!"
            print "You take cover, and start to think where to shoot!"
            print "You only have 4 bullets! Make it count!"

            hero = 100
            villain = 100
            bullets = 4
            direction = ["up", "down", "left", "right"]

            while True:
                print "In which direction do you shoot?"
                print "Hero health:",hero
                print "Villain health:",villain
                print "Bullets left:", bullets

                if hero < 0:
                    exit("You are dead.")
                elif villain < 0:
                    exit("You win")
                elif bullets == 0:
                    exit("You are dead.")

                bullets -= 1
                shoot = random.choice(direction)
                print shoot

                choice = raw_input("> ")

                if choice == shoot:
                    print "You shoot %s, hitting Jim but he also hits you." % shoot
                    hero -= random.randint(20,30)
                    villain -= random.randint(30,50)
                elif choice != shoot:
                    print "You shoot %s, but you missed. Jim didn't miss." % shoot
                    hero -= random.randint(10,20)
                else:
                    print "Try again."
        else:
            print "Try again"

1 个答案:

答案 0 :(得分:0)

我使用continue解决了这个问题。这些是我插入的部分继续:

if decide == "Holly" and holly:
    print "You decided to save Holly."
    print "Whats the code?"
    code = random.randint(100,1000)
    print code
    decide = int(raw_input("> "))
    if decide != code:
        exit('You are dead!')
    print "You saved Holly!"
    holly = False
    continue
elif decide == "Molly" and molly:
    print "You decided to save Molly."
    print "Whats the code?"
    code = random.randint(100,1000)
    print code
    decide = int(raw_input("> "))
    if decide != code:
        exit('You are dead!')
    print "You saved Molly!"
    molly = False
    continue
else:
    print "Try again!"
    continue
相关问题