《笨方法学PYTHON》——twenty-thirdlesson

习题43:你来制作一个游戏

需求:

  1. 制作一个截然不同的游戏。
  2. 使用多个文件,并使用import调用这些文件。确认自己知道import的用法。
  3. 对于每个房间使用一个class,class的命名要能体现出它的用处。例如GoldRoom、KoiPondRoom。
  4. 你的执行器代码应该了解这些房间,所以创建一个class来调用并且记录这些房间。有很多种方法可以达到这个目的,不过你可以考虑让每个房间返回下一个房间,或者设置一个变量,让它指定下一个房间是什么。
class GoldRoom:
    def yourChoice(self):
        print("这是一间装满黄金的房间!!!")
        print("现在租金50元租给你,愿意不?")
        print("关键也有其他人想租。。。我在想要不要租给你呢。。。")
        while True:
            amout = input("请输入你愿意出的租金>>>")
            if not amout.isdigit():
                print("你在开玩笑吗?让你输入金额,你输入的是什么呀......")
            elif int(amout) <= 50:
                print("小伙子,你还不算贪婪,这间房间租给你了!")
                exit(0)
            else:
                print("你这家伙,是不是想偷金子,滚蛋滚蛋,这屋子不租给你了......")
                exit(0)


class KoiPondRoom:
    def youChoice(self):
        print("这是一间神庙!!!")
        print("考考你,神庙里最大的神,是在左边、右边还是中间?")
        while True:
            next = input("请输入位置[中间]/[左边]/[右边]>>>")
            if next == '中间':
                print("恭喜你答对了!!!")
                exit(0)
            elif next == '左边':
                print("左边不过是个小神......")
                exit(0)
            elif next == '右边':
                print("右边不过是个小神......")
                exit(0)
            else:
                print("请按要求输入......")


goldRoom = GoldRoom()
koiPondRoom = KoiPondRoom()


def play():
    while True:
        next = input("请问左转还是右转(left/right):")
        if next == 'left':
            goldRoom.yourChoice()
            exit(0)
        elif next == 'right':
            koiPondRoom.youChoice()
            exit(0)
        else:
            print("请按要求输入!!!")


play()

也没有具体的需求,我就胡乱写了一个。。。我就是一个测试人员,根本不会创造需求呀。。。

 

 

 

习题44:给你的游戏打分

函数的风格

  • 由于各种各样的原因,程序员将class(类)里边的函数称作method(方法)。很大程度上这只是个市场策略(用来推销OOP),不过如果你把它们称作“函数”的话,是会有啰嗦的人跳出来纠正你的。如果你觉得它们太烦了,你可以告诉他们从数学方面演示一下“函数”和“方法”究竟有什么不同,这样他们会很快闭嘴的。
  • 在你使用class的过程中,很大一部分时间是告诉你的class如何“做事情”。给这些函数命名的时候,与其命名成一个名词,不如命名为一个动词,作为给class的一个命令。就和list的pop(抛出)函数一样,它相当于说:“嘿,列表,把这东西给我pop出去。”它的名字不是removeFromEndOfList,因为即使它的功能的确是这样,这一串字符也不是一个命令。
  • 让你的函数保持简单小巧。由于某些原因,有些人开始学习class后就会忘了这一条。

类的风格

  • 你的class应该使用“camel case(驼峰式大小写)”,例如你应该使用SuperGoldFactory而不是super_gold_factory。
  • 你的__init__不应该做太多的事情,这会让class变得难以使用。
  • 你的其它函数应该使用“underscore format(下划线隔词)”,所以你可以写my_awesome_hair,而不是myawesomehair或者MyAwesomeHair。
  • 用一致的方式组织函数的参数。如果你的class需要处理users、dogs和cats,就保持这个次序(特别情况除外)。如果一个函数的参数是(dog,cat,user),另一个的是(user,cat,dog),这回让函数使用起来很困难。
  • 不要对全局变量或者来自模组的变量进行重定义或者赋值,让这些东西自顾自就行了。
  • 不要一根筋式地维持风格一致性,这是思维力低下的妖怪做的事情。一致性是好事,不过愚蠢地跟着别人遵从一些白痴口号是错误的行为——者本身就是一种坏的风格。
  • 永远永远都是用class Name(object)的方式定义class,否则你会碰到大麻烦。

代码风格:ctrl+alt+L

好的注释

  • 有程序员会告诉你,说你的代码需要有足够的可读性,这样你就无需写注释了。他们会以自己接近官腔的声音说“所以你永远都不应该写代码注释。”这些人要么是一些顾问型的任务,如果别人无法使用他们的代码,就会付更多钱给他们,让他们解决问题。要么他们能力不足,从来没有跟别人合作过。别理会这些人,好好写你的注释。
  • 写注释的时候,描述清楚为什么你要这样做。代码置灰告诉你“这样实现”,而不会告诉你“为什么要这样实现”,而后者比前者更重要。
  • 当你为函数写文档注释的时候,记得为别的代码使用者也写些东西。你不需要狂写一大堆,但一两句话写写这个函数的用法还是很有用的。
  • 最后要说的是,虽然注释是好东西,太多的注释就不见得是了。而且朱姐也是需要维护的,你要尽量让朱姐短小精悍一语中的,如果你对代码做了更改,记得检查并更新相关的注释,确认它们还是正确的。

 

 

 

print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值