现在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算法以及并行计算的实现,可能会有一些难度,但对于那些喜欢计算科学的读者来说起到了启蒙的作用。
本书适合没有任何编程基础的人学习使用,尤其适合孩子、文科生等非计算机专业的人员使用。
扫码或者点击阅读原文购买
![640?](https://i-blog.csdnimg.cn/blog_migrate/6c0d6990f0cd8c87a1b12e84066368fd.gif)
戳这里,阅读原文