Press "Enter" to skip to content

Category: 笨办法学pyhton

使用if结构的小游戏

if语句的规则:

  1. 每一条if语句必须包含一个else;
  2. 如果这个else永远都不应该被执行到,因为它本身没有任何意义,那么你必须在else后面使用一个叫做die的函数;
  3. if语句嵌套不要超过两层;
  4. 将if语句当做段落来对待;
  5. 布尔测试应当简单,如果复杂,则要将运算先放到一个变量里面,并且为变量值取一个好名字。

循环的规则

  1. 只有在循环中永不停止时使用while循环;
  2. 其他类型的循环都使用for循环;

调试的技巧

  1. 不要使用调试器;
  2. 最好的方法市使用print将想要检查的关键环节变量打印出来;
  3. 让程序一部分一部分的运行起来,不要等一个很长的脚本写完后才去运行它,写一点、运行一点、修改一点。

《笨办法学Python》习题35

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sys import exit

def gold_room():
    print "这是一个堆满了金子的房间。你想拿多少?"

    next = raw_input("> ")
    if "0" in next or "1" in next:
        how_much = int(next)
    else:
        dead("哥们,赶紧敲个数!")

    if how_much < 50:
        print "乖娃子,心不黑。\n拿着金子回家吧!"
        exit(0)
    else :
        dead("人心不足蛇吞象,去死吧!")

def bear_room():
    print "这边有一个熊窝"
    print "大黑熊正在大快朵颐的嚼蜂蜜。"
    print "在熊熊的背后就是通向另一间屋子的门。"
    print "你敢走向大熊么?"
    bear_moved = False

    while True:
        next = raw_input("> ")

        if next == "拿走蜂蜜":
            dead("熊熊发现了你,然后猛扑了过来撕掉了你的脸。你挂点了!")
        elif next == "嘲笑熊熊" and not bear_moved:
            print "大黑熊离开了门口,你赶紧夺门而逃。"
            bear_moved = True
        elif next == "嘲笑熊熊" and bear_moved:
            dead("大熊咆哮着撕掉了你的大腿。")
        elif next == "开门" and bear_moved:
            gold_room()
        else:
            print "我不知道发生了什么!"

def cthulhu_room():
    print "这里住着一个恐怖的克苏鲁!"
    print "在你彻底崩溃之后会在这里饿死!"
    print "你选择逃跑,还是吃掉你的脑袋?"

    next = raw_input("> ")

    if "逃跑" in next:
        start()
    elif "脑袋" in next :
        dead("尝起来还不错……")
    else:
        cthulhu_room()

def dead(why):
    print why, "你玩完了!"
    exit(0)

def start():
    print "你不幸掉到了一个黑漆漆的洞窟里面……"
    print "在你的面前有两扇门,一个在左,一个在右。"
    print "你选择哪一边?"

    next = raw_input("> ")

    if next == "左":
        bear_room()
    elif next == "右":
        cthulhu_room()
    else:
        dead("懦弱而不敢抉择的你饿死在这无尽的黑暗之中……")

start()