查看原文
其他

小小的 Python 编程故事

码小书 CSDN 2019-06-22

现在Python的火热已经不是整个编程界的事情了,Python的火热已经蔓延到小学、大学课程,之前看新闻报道说青岛的小学生课程里都开始设置Python的课程了,大学里由原来必考的VB也改成了Python。一时大家都掀起了学习了Python的热潮,而接踵而来的各种课程书籍的推荐,但是接踵而来的推荐也不能说看到推荐就购买,要选择合适的自己的书籍或者课程观看哦~

今天就来为大家推荐一本适合孩子或者文科生所看的Python编程书籍!《小小的Python编程故事》,下面我们就来看一下书籍的内容是什么样的!

《小小的Python编程故事》

作者:毛雪涛  


扫码查看详情

这一天,小小的爷爷来到蛋糕店,他在厨房捣鼓了一阵,做出来一款小小从来没见过的奇怪 蛋糕。首先,这个蛋糕是三角形的,看起来表面没有使用奶油,但是却有五种颜色。奇怪的是, 爷爷说这个蛋糕要用吸管来吃。

 

 蛋糕模板:类的定义 


小小问爷爷:“这个奇怪的蛋糕叫什么名字呢?”爷爷说:“还没想好呢!反正是蛋糕的一种。” 聪明的小小觉得该这么描述这个没有名字的蛋糕:1.  不管怎么样,它是一个物体。2.  它具有一些特征(或者属性),比如,三角形、没奶油、五种颜色。3.  可以对它采取一些动作,或者执行一些“方法”,比如,可以吃它,还可以用吸管“喝” 它,当然还可以出售它。 

这个蛋糕虽然奇怪,但是销售却异常火爆,供不应求。小小拿出“蛋糕制造机”来帮忙,但 是“蛋糕制造机”只能按照蛋糕的模板来生产蛋糕。于是,小小先为这款奇怪的蛋糕创建一个模 板。打开 Python IDLE Shell,新建一个文件,保存到 C:\Workspace\Chapter19\Xcake.py,输入代 码如下:

#创建类 class Xcake: name="古怪蛋糕" colorNumber=5 color=['红','黄','蓝','绿','黑'] shape='三角形' creamContent=0 def eat(self): return '吃我啊!吃我啊!' def drink(self): return '喝我啊!喝我啊!' def sell(self): return '买我啊!买我啊!'

这段代码创建了一个生产这种古怪蛋糕的模板,模板名称叫作 Xcake,在模板内部指明了这种蛋糕的名字、颜色、形状和奶油含量,还指明了使用这种蛋糕的三个方法:eat、drink 和sell。在 Python 中称这种模板为“类”,并使用关键字 class 来创建类。类中包含两部分内容:

  • 一系列的变量及其初始值,称这些变量为这类对象的“属性”。

  • 一系列函数的定义,称这些函数为这类对象的“方法”。 

 创建类以后,凡是根据这个类创造的东西,统统称为类的“实例”,也称为类的“对象”。Python 支持类和对象的所有概念和技术,是一种面向对象的语言。面向对象的编程,被亲切地称为 OOP, 其是英文“Object Oriented Programming”的缩写。不仅 Python,许多程序设计语言都使用 OOP 技术。表 19.1 中列出了 OOP 的一些基本概念。 

这里暂不深入讲解这些概念,后面会有详细说明。可以在一个文件中定义多个类。在使用文 件中定义的类之前,需要使用 from…import…来引入类。 


 

制造蛋糕:创建对象 


创建好了 Xcake 类后,就可以开动蛋糕制造机来快速生产这种奇怪的蛋糕了。运行 Xcake.py 程序,打开 Python IDLE Shell。这时虽然看起来好像什么也没有发生,但实际上已经在内存中加 载了 Xcake 类。接下来输入以下代码就可以创建一个 Xcake 的对象: 

>>> cake1=Xcake()

 这样一行代码,就创建了一个 cake1 对象,它具有 Xcake 类所定义的所有属性和方法。在 Python 中,可以使用对象名加点号(.)来引用对象的属性和方法。下面新建一个文件 19.1cakeObj.py, 以演示如何创建和使用对象。代码如下: 

#对象示例 from Xcake import Xcake  #引入类 cake1=Xcake()  #实例化print("这个蛋糕有:",cake1.colorNumber,"种颜色")  #使用对象的属性 print("蛋糕的颜色有:",cake1.color) print("吃蛋糕时,它会说:",cake1.eat())   #使用对象的方法 print("出售时,它会说:",cake1.sell()) 

这段程序首先创建一个 Xcake 的实 例—cake1 对象。然后使用几个 print() 函数进行输出,在 print()的参数中调用了 对象的属性和方法。


如何制造蛋糕?构造方法 


蛋糕制造机是如何制造出一个蛋糕的呢?这解释起来有点复杂,不过小小觉得它的工作原 理有点像在类里面定义的一种特殊方法—构造方法。每当需要创建对象时,就会调用类的构造 方法,这时,在构造方法里创建的那些函数就会被执行。这些函数就会创建对象的属性。到底构造函数长什么样呢?还是通过小小的 Xcake 类来看一看吧。打开 Xcake.py 文件,在 文件末尾添加一个新的类,代码如下: 

#创建类 class XcakePlus: #定义类变量,也称属性 name="古怪蛋糕加强版" price=1 #单价          #定义构造方法     def __init__(self,size,qty):         self.size=size         self.qty=qty          #定义其他方法    def eat(self):         print('吃我啊!吃我啊!')     def sumPrice(self):  #计算总价         print("一共:",self.qty*self.price,"元")            def preview(self):         print("您要的蛋糕是:",self.name,",尺寸:",self.size,"号",self.qty,"个。") 

XcakePlus 类定义了 3 个属性和 4 个方法,其中名为__init__的方法,一看其名字就比较特殊,它的名字以两个连续的下画线开始和结束,而且中间必须是 init,这就是类的构造方法。本例中的这个构造方法有 3 个参数:

  • self—用于获取类的实例。它是必需的,且必须为第一个参数,名称随意,但习惯上使 用 self。

  • size—用于获取传入的整数,表示蛋糕的尺寸。

  • qty—用于获取传入的整数,表示购买的个数。 

函数体有两行代码,分别将传入的参数size和qty赋给类对象的属性。使用self.size和self.qty 表示对象的属性。在Python中,每个类只能有一个构造方法。如果类中没有自定义的构造方法,如前面的Xcake 类,Python 会使用默认的构造方法。默认构造方法是只有一个 self 参数的方法。值得注意的是,在定义类时,如果要在方法中使用对象的属性,则需要使用 self.size、self.qty、self.price 这样的形式。定义好 XcakePlus 类以后,就可以创建它的对象了。新建一个文件 19.2cakeObj.py,输入以 下代码: 

#对象示例2 from Xcake import XcakePlus #引入类 #创建对象 cake1=XcakePlus(12,2)     #实例化  #直接使用类变量 print("品种:",XcakePlus.name) print("单价:",XcakePlus.price) #展示对象的方法 cake1.preview() cake1.sumPrice()

这段程序首先引入XcakePlus 类,然后依照构造方法创建对象cake1,传入两个参数12 和2。这时 cake1 对象的两个属性 size 和 pty 就分别获得了值 12 和 2。接下来展示了类变量的使用,直 接使用“类名.类变量名”的形式。然后展示了对象方法的使用,使用“对象名.方法名”的形式 来调用。

面向对象编程的好处是可以使用类来快速创建多个对象。例如,可以在 IDLE Shell 的提示 符后面继续创建多个古怪蛋糕加强版的实例: 

>>> cake1=XcakePlus(8,1) >>> cake2=XcakePlus(10,2) >>> cake3=XcakePlus(12,1) >>> cake1.preview() 您要的蛋糕是: 古怪蛋糕加强版 ,尺寸:8 号 1 个。>>> cake2.preview() 您要的蛋糕是: 古怪蛋糕加强版 ,尺寸:10 号 2 个。>>> cake3.preview() 您要的蛋糕是: 古怪蛋糕加强版 ,尺寸:12 号 1 个。

是不是很简单!一眨眼,小小已经生产了大量的“古怪蛋糕加强版” ! 

以上内容来自《小小的Python编程故事》

《小小的Python编程故事》

作者:毛雪涛  


扫码查看详情


本书是写给孩子看的Python编程书,本书共包括54个章节,分为三个部分。

基础篇包含了Python编程环境的搭建、第一个Python程序的展示、程序的调试方法、异常的处理、Python的基本数据类型和运算符,还包括了基本程序控制结构、类的使用以及常见模块的使用。

实战篇包含了Python循环的应用、冒泡排序和选择排序等基础算法、文件操作、系统信息获取,还包括了图形用户界面编程、正则表达式、多线程程序设计,以及网络编程、数据库编程的基本实现。

提高篇包含了蒙特卡罗算法、欧几里得算法、递归算法、狄杰特斯拉算法、贪心算法、KNN算法以及并行计算的实现,可能会有一些难度,但对于那些喜欢计算科学的读者来说起到了启蒙的作用。

本书适合没有任何编程基础的人学习使用,尤其适合孩子、文科生等非计算机专业的人员使用。

扫码或者点击阅读原文购买


戳这里,阅读原文

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存