新書推薦:
《
Android游戏开发从入门到精通 第2版 王玉芹
》
售價:HK$
108.9
《
西班牙内战:秩序崩溃与激荡的世界格局:1936-1939
》
售價:HK$
217.8
《
非对称创新:中国企业赶超战略 魏江 刘洋
》
售價:HK$
108.9
《
潜能觉醒
》
售價:HK$
86.9
《
初平:汉末群雄混战(190—195)
》
售價:HK$
53.9
《
建安:官渡大决战(196—200)
》
售價:HK$
53.9
《
权力的图像——近代的中国海图与交流
》
售價:HK$
184.8
《
中亚民族史
》
售價:HK$
184.8
|
編輯推薦: |
Python语言语法简单、功能库完善、开发周期短,并且具备强大的语言整合能力。其主要应用领域涵盖人工智能开发、数据挖掘、嵌入式开发、Web开发与后端服务开发,拥有健全的语言生态和广泛的应用场景这是大量程序员从其他编程语言转向Python的主要原因,也是广大高校计算机类与电子信息类专业将Python作为程序设计基础课程的原因。为满足这种蓬勃兴起的学习需求,我们邀请周家安先生编写了此书。本书提供了300个精心设计的实例,以实战的方式帮助读者掌握Python的基本语法、功能与应用。本书实例全面呈现了读者关心的12个Python核心技术:
? 字符串处理
? 模块与包
? 代码流程控制
? 函数式编程
? 常用的数学函数
? 名称空间与动态属性
? 常见的数据结构
? 类与对象
? 异步编程
? 网络与通信
? 文件与输入输出
? Tk与用户界面开发
|
內容簡介: |
本书以300个不同类型的案例引导初学者快速入门,全面掌握Python语言编程技巧。这些案例各具特色,容易上手,趣味性强,学习效率高。本书内容涵盖字符串处理、包与模块管理、变量名称空间、代码流程控制、数学运算、面向对象编程、常用数据结构、异步编程、网络编程、文件与IO、Tk组件与应用程序界面开发。 本书配套提供所有案例的源代码,便于读者动手实践甚至进行二次开发。本书适合作为广大高校计算机专业或相关培训机构的Python课程教材,也可以作为Python技术开发者的自学参考用书。
|
關於作者: |
周家安 微软专家(MVP)、编程爱好者,乐于分享各种编程技巧。擅长Web服务开发、Windows 系统开发、Python语言编程。著有《.NET Core实战手把手教你掌握380个精彩案例》《C# 6.0学习笔记从第一行C#代码到第一个项目设计》等原创畅销图书。
|
目錄:
|
第1章 字符串处理
1.1字符串表达式
案例1单行文本
案例2处理字符串中出现的引号
案例3多行文本
1.2代码注释与帮助文档
案例4在代码中写注释
案例5设置代码文件的字符编码
案例6为代码对象撰写帮助文档
1.3input与print函数
案例7接收键盘输入
案例8打印屏幕消息
案例9打印进度条
案例10将文本打印到文件中
案例11打印文本时使用分隔符
案例12使用sys.stdout打印文本
1.4格式化字符串
案例13输出十六进制字符串
案例14设置字符串的对齐方式
案例15数字的千位分隔符
案例16_分隔符
案例17自定义日期格式
案例18使用format方法
案例19省略格式占位符的名称和序号
案例20字符串模板
案例21字符串模板的安全替换模式
案例22文本缩进
案例23嵌套使用格式化语法
1.5str类的常用方法
案例24转换字母的大小写
案例25用0填充字符串
案例26对齐方式
案例27查找子字符串
案例28startswith与endswith方法
案例29统计子字符串出现的次数
案例30文本的标题样式
案例31串联字符串
案例32拆分字符串
案例33替换字符串
案例34去掉字符串首尾的空格
案例35lstrip与rstrip方法
案例36去除字符串首尾的特定字符
1.6字符串编码
案例37编码与解码
案例38ord与chr函数
第2章 模块与包
2.1模块
案例39独立运行模块
案例40导入模块
案例41使用fromimport语句导入模块
案例42__all__变量的作用
案例43以编程方式生成__all__变量
案例44为模块编写帮助文档
案例45特殊的模块名称__main__
案例46__file__与__cached__属性
2.2包
案例47让普通目录变成包
案例48__init__.py文件
案例49合并子模块的成员列表
案例50合并多个__init__.py文件中的__all__属性
案例51__main__.py文件的用途
案例52基于名称空间的包
案例53__package__属性
案例54自定义包或模块的搜索路径
案例55从.zip文件中导入包
2.3以编程方式导入模块
案例56检查是否能够导入某个模块
案例57使用import_module函数导入模块
案例58重新载入模块
第3章 变量与名称空间
3.1变量与赋值
案例59声明变量
案例60类型批注
案例61声明语句也是变量赋值
案例62as关键字与赋值
案例63组合赋值法
案例64组合赋值与表达式列表
3.2名称空间
案例65获取全局名称空间的字典
案例66获取局部名称空间的字典
案例67直接更新名称空间字典
案例68使用global关键字声明变量
案例69使用nonlocal关键字声明变量
第4章 代码流程控制
4.1顺序执行
案例70最简单的流程
案例71声明阶段与调用阶段
4.2分支语句
案例72单路分支
案例73双路分支
案例74更复杂的分支语句
案例75分支语句的嵌套使用
4.3循环
案例76输出从1到10各个整数的平方根
案例77使用for循环
案例78for循环与range函数
案例79组成每个数位均不相同的三位数
案例80求水仙花数
案例81跳出循环
4.4异常处理
案例82引发异常
案例83捕捉异常
案例84异常处理中的清理代码
案例85else子句的作用
案例86省略except子句
案例87自定义异常类
第5章 数学运算
5.1运算符
5.1.1算术运算符
案例88四则计算器
案例89指数运算符
案例90分解整数位
案例91连接字符串
案例92当字符串遇上乘法运算符
案例93运算优先级
5.1.2比较运算符
案例94自定义的相等比较
案例95比较对象的大小
案例96自定义的大小比较
5.1.3位运算符
案例97二进制位的逻辑运算
案例98移动二进制位
5.1.4逻辑运算符
案例99查找同时包含a、e两个字母的单词
案例100or运算符
案例101自定义布尔运算
5.1.5其他运算符
案例102对象标识的比较运算
案例103not运算符
案例104检查类型成员的存在性
案例105复合赋值运算符
案例106模拟C语言的三目运算符
5.2浮点数的扩展功能
案例107Decimal类的简单使用
案例108通过元组对象来初始化Decimal类
案例109使用DecimalTuple来初始化Decimal对象
案例110设置浮点数的精度
案例111基于线程的浮点数环境
5.3随机数
案例112产生一个随机整数
案例113从序列中随机取出一个元素
案例114生成0~1的随机数
案例115从原序列中选取随机样本组成新序列
案例116打乱列表中的元素顺序
5.4数学函数
案例117取整函数
案例118四舍六入五留双算法
案例119求绝对值
案例120最大值与最小值
案例121排序函数sorted
案例122按照字符串的长度排序
案例123依据员工的年龄排序
案例124以自然常数为底的指数运算
案例125求以10为底数的对数
案例126获取浮点数的分数与整数部分
案例127计算最大公约数
案例128阶乘运算
5.5三角函数
案例129弧度制与角度制之间的转换
案例130常用的三角函数
案例131反三角函数
案例132欧氏距离
案例133闵氏距离公式
5.6统计学函数
案例134求和函数
案例135算术平均数
案例136求字符串样本的平均长度
案例137调和平均数
案例138中位数
案例139从分组数据中求中位数
案例140众数
案例141方差
案例142标准差
5.7分式
案例143如何案例化Fraction类
案例144限制分母的大小
案例145常见的分式运算
5.8日期与时间
案例146日期之间的比较
案例147计算时间差
案例148timedelta类的乘法运算
第6章 函数式编程
6.1函数的定义与调用
案例149定义函数
案例150函数的调用方法
案例151函数的定义顺序
案例152如何更改函数的引用名称
6.2向函数传递参数的方式
案例153按位置传递参数与按关键字传递参数
案例154只能按关键字传递的参数
案例155只能按位置传递的参数
6.3可变参数
案例156可变的位置参数
案例157可变的关键字参数
案例158可变参数的混合使用
案例159可变参数与非可变参数的混合使用
6.4装饰器
案例160将函数对象作为参数传递
案例161嵌套的函数定义
案例162实现简单的装饰器
案例163限制调用函数的Python版本
案例164实现只能使用三次的装饰器
6.5lambda表达式
案例165打印满足条件的数字
案例166按数字的绝对值大小排序
第7章 属性系统
7.1动态读写属性
案例167简单的属性访问
案例168删除属性
案例169__dict__成员
案例170区分类型属性与案例属性
7.2与属性访问有关的函数
案例171获取与设置属性
案例172检查属性是否存在
案例173delattr函数
案例174vars函数
7.3__slots__成员
案例175禁止创建__dict__成员
案例176派生类需要重新定义__slots__成员
案例177让对象案例的属性变成只读属性
案例178以编程方式生成__slots__成员
案例179类变量与__slots__之间的冲突
7.4自定义的属性访问
案例180属性协议
案例181禁止访问模块中的特定成员
7.5描述符
案例182描述符的协议方法
案例183作用于类级别的描述符
案例184防止描述符被替换
案例185实现基于特定类型的描述符
案例186如何让案例属性存储独立的值
案例187使用property类来封装属性值
案例188将property类作为装饰器使用
案例189在模块中使用描述符
第8章 类与对象
8.1类的定义与案例化
案例190class关键字
案例191类型的案例化
案例192__new__方法与__init__方法
案例193带参数的构造函数
案例194实现__del__方法
8.2方法成员
案例195案例方法
案例196类方法
案例197静态方法
8.3元类
案例198使用type类创建新类型
案例199元类的实现过程
案例200向元类传递参数
案例201元类与继承
案例202__prepare__方法
8.4继承与多态
案例203类型派生
案例204类型继承中的多态
案例205覆盖基类的成员
案例206访问基类的成员
案例207使用super类来访问基类的成员
案例208调用基类的类方法
案例209super类的非绑定用法
案例210方法解析顺序MRO
案例211鸭子类型
案例212issubclass函数与派生类检查
案例213自定义派生类的检查逻辑
案例214初始化派生类型
案例215抽象类
案例216虚拟子类
案例217获取类的直接子类
8.5对象复制
案例218id函数
案例219浅拷贝与深拷贝
8.6特殊成员
案例220__str__方法与__repr__方法
案例221模拟函数调用
案例222自定义对象目录
案例223获取对象案例所占用的内存大小
8.7上下文管理
案例224with语句
案例225让自定义的类型支持上下文管理
案例226contextmanager装饰器
案例227使用closing类来释放上下文资源
第9章 数据结构
9.1列表
案例228初始化列表对象
案例229添加元素
案例230删除元素
案例231自定义排序
案例232反转列表
案例233统计某个元素的出现次数
案例234将列表对象作为栈结构使用
案例235合并列表
案例236重复列表中的元素
9.2元组
案例237元组的初始化方法
案例238带命名字段的元组
案例239将带命名字段的元组转换为字典
9.3字典
案例240字典的案例化方法
案例241字典与for循环
案例242从其他数据来源更新字典
案例243可以调整元素次序的字典
案例244合并字典
案例245计数器
9.4集合
案例246创建集合案例
案例247合并集合
案例248集合的包含关系
案例249交集与差集
9.5数组
案例250案例化数组
案例251修改数组中的元素
案例252将数组内容存入文件
9.6枚举
案例253定义枚举类
案例254只能使用int值的枚举
案例255带标志位的枚举
案例256禁止使用重复的成员值
9.7迭代器
案例257iter函数与next函数
案例258yield语句与迭代生成器
案例259自定义的迭代器
9.8自定义序列
案例260实现按索引访问的集合
案例261统计集合的长度
案例262字典对象的访问协议
9.9其他
案例263切片
案例264in与not in运算符
第10章 异步编程
10.1多线程
案例265创建并启动新线程
案例266使用线程锁
案例267等待事件信号
案例268屏障
10.2异步等待
案例269定义异步函数
案例270执行异步函数
案例271案例化Task对象
第11章 网络编程
11.1Socket编程
案例272TCP通信协议
案例273UDP通信协议
案例274TCPServer与UDPServer
11.2HTTP与CGI编程
案例275使用HTTP协议下载文件
案例276简单的HTTP服务器
案例277编写CGI脚本
案例278设置CGI脚本的查找目录
第12章 文件与IO
12.1目录操作
案例279创建与删除目录
案例280创建与删除嵌套目录
12.2文件与IO操作
案例281读写文本文件
案例282读写二进制文件
案例283内存流
12.3数据文件
案例284读写CSV文件
案例285读写JSON文件
案例286生成zip文件
第13章 应用程序界面开发Tk
13.1Tk应用程序的初始化
案例287使用Tk类
案例288Frame容器
13.2布局
案例289填充与停靠
案例290网格布局
案例291通过坐标来布局控件
13.3常用控件
案例292前景颜色与背景颜色
案例293设置控件字体
案例294可重复执行命令的按钮
案例295让按钮控件的command参数调用多个函数
案例296密码输入框
案例297单选按钮
案例298复选按钮
案例299列表控件
案例300使用ttk控件库
|
內容試閱:
|
Python诞生于20世纪90年代初,是一门开源的、易学易用的编程语言,被广泛应用于科学计算、数据分析、Web后端开发等领域。近年来,Python也被广泛应用于机器学习与人工智能。
Python是一种解释型语言,既能以交互方式执行代码,也可以直接执行代码脚本。Python支持面向对象编程,同时也具有很强的动态性如动态解析类型、动态属性等。
本书用一个个单独的小案例来演示Python编程相关的各种知识点与技巧。每个案例都分为两部分【导语】部分对案例中用到的知识要点进行讲解与说明,【操作流程】部分演示案例程序的实现过程。
本书的编程案例将覆盖以下内容:
字符串处理
包与模块管理
代码流程控制
常用的内置函数与运算符
函数式编程
面向对象编程
常见数据结构
异步编程与网络编程
输入输出技术
图形化用户界面编程
希望读者在学习书中案例时,不要直接复制代码,而是参考书中的实现步骤,把每个案例都从头到尾做一遍。之后可以根据自己对知识点的理解,对书中案例进行修改与扩展。本书的演示代码仅针对知识点而设计,因此都比较简单,容易掌握,不会出现过多的干扰性代码,初学者能够看懂。
本书配套提供了书中案例的程序代码,扫描下面二维码即可下载。
程序代码
由于作者能力有限,书中难免有不妥之处。欢迎广大读者不吝赐教,以完善本书内容。
作者
2020年1月
|
|