Python的世界

讲义

大家用过各种各样的程序,它们很好用、很好玩。它们看着复杂,其实很简单,至少比人要简单得多

程序里也有数字

1, 2, 3, 4, 5, 6, 7, 8

也可以给分奇数、偶数,下面数字被分为了两组,我们一般称它们为 数组奇数 是一个数组, 偶数 也是一个数组:

奇数 = 1, 3, 5, 7
偶数 = 2, 4, 6, 8

那程序会玩水,拼积木等日常游戏吗?当然不会了,它只能用文字简单描述,如:

日常游戏 = '玩水', '拼积木'

注解

这里的日常游戏是一组行为,在Python中称之为列表(list),上面得数组也是列表

列表(list)是对一组事物的统称,它们可以是多个数字、多个游戏、多个物体


妈妈会经常让我洗手,一开始觉得洗手太麻烦(要去卫生间、开水龙头、上洗手液、…),后来发现可以玩泡泡就喜欢上洗手了,直到最近妈妈说我洗手时间太长。
为什么妈妈只需要喊一嗓子,自己却要做这么多事情,如果能让程序去做就好了。程序做不了这些事情,但可以描述 洗手 这个 过程
def 洗手():
    """
    去卫生间
    开水龙头
    玩泡泡
    听到妈妈说别玩了
    关水龙头
    """

注解

Python 用 def 来定义一个过程,且必须在 过程名称 后面加上 ():


程序好可怜,好想送给它一个洗手台。算了,还是直接告诉它洗手台是什么吧

class 洗手台:
    台面 = '我是一个干净的台面,我上面有一个可爱的水龙头'
    水龙头 = '对,我就是那个可爱的会唱歌的水龙头'

    def 洗手(self):
        """ 我可以用了洗手 """

    def 玩水(self):
        """ 我也可以用来玩水,小主人很喜欢 """

    def 收拾卫生(self):
        """ 主人总会把我收拾的干干干净净 """

注解

Python 用 class 来定义一个物体(称之为类);

我们可以给类定义各种属性,如:台面、水龙头;

也可以定义各种功能,且称其为方法,如:洗手、玩水、收拾卫生;

每个方法后面的 self 称之为方法的参数,其含义在下文中解释;


那洗手液呢?没有洗手液怎么玩泡泡。
上面只讲了洗手台固有的设备,至于台面上的摆件每一家都不一样,比如小明家放的是 洗手液纸巾盒,小王家放的是 香皂盒牙杯
我们需要按各家情况分别描述:
class 洗手台:
    # .......

    def __init__(self, 摆件有):
        self.摆件 = 摆件有

    # ......

小明家的洗手台 = 洗手台(摆件有=('洗手液', '纸巾盒'))
小王家的洗手台 = 洗手台(摆件有=('香皂盒', '牙杯'))

注解

Python用 __init__ 方法来指定自家才有的东西;

这里的洗手台是一个类,小明家的洗手台 和 小王家的洗手台 是这个类的两个实例;

Python 用 self 来表示洗手台是谁家的,如小明家、小王家;


昨天在小明家一起玩水,玩得可开心了,想和 Python 分享自己的快乐:

class 洗手台:
    # ...

    def __init__(self, 小主人名字, 摆件有):
        self.小主人名字 = 小主人名字
        self.摆件 = 摆件有

    def 玩水(self, 时间):
        print(时间, '我在', self.小主人名字, '家玩水')
        print(self.小主人名字, '家洗手台上有', self.摆件)
        print('我们玩得可开心了')

    # ......

小明家的洗手台 = 洗手台(小主人名字='小明', 摆件有=('洗手液', '纸巾盒'))
小王家的洗手台 = 洗手台(小主人名字='小王', 摆件有=('香皂盒', '牙杯'))

小明家的洗手台.玩水('昨天')

注解

可以用 print 方法来把要讲的话告诉计算机;

我们给类方法「玩水」设置了参数「时间」;

调用类方法时,无需指定 self,只需指定后面的时间参数就可以了;

作业

  1. 自己动手在开发环境中把最后示例代码敲一遍(请勿拷贝粘贴),并运行查看效果

  2. 用 Python 描述一个身边物件(参照:小明家洗手台)

  3. 用 Python 描述这个身边物件曾经发生过的故事(参照故事:昨天在小明家一起玩水)