笨方法学Python,Lesson 35, 36

Exercise 35

代码

from sys import exit 

def gold_room():
    print "This room is full of gold. How much do you take?"
    
    choice = raw_input("> ")
    if "0" in choice or "1" in choice:
        how_much = int(choice)
    else:
        dead("Man, learn to trpe a number.")
        
    if how_much < 50:
        print "Nice, you're not greedy, you win!"
        exit(0)
    else:
        dead("You greedy bastard!")
        

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:
        choice = raw_input("> ")
        
        if choice == "take honey":
            dead("The bear looks at you then slaps your face off.")
        elif choice == "taunt bear" and not bear_moved:
            print "The bear has moved from the door. You can go through it now."
            bear_moved = True
        elif choice == "taunt bear" and bear_moved:
            dead("The bear gets pissed off and chews your leg off.")
        elif choice == "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?"
    
    choice = raw_input("> ")
    
    if "flee" in choice:
        start()
    elif "head" in choice:
        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?"
    
    choice = raw_input("> ")
    
    if choice == "left":
        bear_room()
    elif choice == "right":
        cthulhu_room()
    else:
        dead("You stumble around the room until you starve.")
        
        
start()

输出

笨方法学Python,Lesson 35, 36

Notes:

①exit(0)中断程序

②判断输入的是否是数字可以用字符串的isdigit()方法

>>> "123".isdigit()
True
>>> "abc".isdigit()
False

Exercise 36

Notes:

①If语句训练法则

  • 每一个if语句,必须包含一个else

  • 如果一个else是没有意义、不应该被执行的,那么使用die函数来警醒你

  • 尽量只保持一层的if。尽管if语句可以嵌套,但尽量不要嵌套if,使用函数代替

  • 将if语句块当作段落。段前、段后留空白行

  • 布尔表达式应该很简单。如果太复杂,将运算事先赋值给变量,并给变量取个好名字

②循环法则

  • 只有在期望循环永不停止时使用while-loop,其他情况下,尤其是循环的对象数量固定或者有限的情况下,使用for-loop循环

③Debugging的技巧

  • 善用print,将关键环节的关键变量打印出来,检查哪里是否出错

  • 边写脚本,边运行,边调试

你可能感兴趣的:(笨方法学Python,Lesson 35, 36)