![]()
编辑推荐 一、零基础。 本书对零基础学习者非常友好。除了内容从零开始,本书还特意指出了教学中收集的零基础学习者常犯的各种真实错误。有了本书遍布各处的“常见错误”提示。 二、高标准。 本书的大部分例题和习题,来自北京大学在线程序评测平台openjudge.cn,该平台包含两万多道编程题,程序提交后会自动评判对错。 以本书作为教材的教师,还可以在openjudge.cn上申请建立自己的教学组,自行利用平台上的题目或自己上传的题目,在平台上布置作业和考试。 三、大广度。 本书覆盖面非常广。除了基本的Python语法,还包括正则表达式、网络爬虫、图形界面等许多Python教材不涉及的内容。对Python第三方库的使用,更是比大多数教材介绍更多,涵盖数据分析库NumPy和pandas、数据库编程库sqlite3、图像处理库Pillow、Excel文档处理库openpyxl、统计绘图库Matplotlib、分词库jieba等。并且专门用一章的篇幅讲述计算思维,让读者了解计算的本质、时间复杂度、数据结构等概念。本书这些内容,都不是蜻蜓点水,而是深入浅出。 四、重实践。 本书非常适合非计算机专业人士使用。非计算机专业人士,工作中要用编程解决的问题,不外乎获取数据、分析数据、处理数据,并将数据分析和处理的结果展示出来。本书内容,一半打基础,另一半围绕数据的获取、分析、处理和展示这四点展开,具有极强的实用性。数学、中文、外语、经济、美术等各专业人士,能在书中找到贴合本专业的程序案例。若不在意对算法涉及较少,本书也非常适合计算机专业人士用来快速掌握Python语法及各种库的使用。 本书章节标题或者习题,带有"*"标记的,是较难内容,适用于理科读者,文科专业读者不需掌握;带有"**"标记的,则面向计算机专业读者,非计算机专业的读者不需掌握。 五、资源全 本书配套电子资料十分齐全,包括课程讲义以及170多个精心编写、风格简洁优美的程序源码、还有重点难点的讲解视频。作者在中国大学慕课开设的《实用Python程序设计》课程,提供了覆盖全书90%内容的视频讲解。书中重难点部分有二维码,扫码即可看相应讲解视频。 内容推荐 本书是一部零基础、高标准,大广度、重实践的Python编程从入门到熟练的教材。本书覆盖面非常广,包括计算机基础常识、Python语言的基本要素、基本运算和条件分支语句、循环语句、函数、递归、复杂数据类型、计算思维、文件读写、正则表达式、玩转Python生态、数据分析和可视化、网络爬虫、面向对象程序设计入门、tkinter图形界面程序设计等内容。正则表达式、网络爬虫、图形界面等都是其他大多数Python基础教材不涉及的内容。对Python第三方库的使用,讲述尤其全面,涵盖数据分析库NumPy和pandas、数据库编程库SQLite3、图像处理库Pillow、Excel文档处理库OpenPyXL、统计绘图库Matplotlib、分词库Jieba等。还专门用一章的篇幅讲述计算思维,让读者了解计算的本质、时间复杂度、数据结构等概念。这些内容,都不是蜻蜓点水,而是深入浅出。本书适合高等院校各专业学习Python使用。文、理、艺术等各类专业的零基础学生可以掌握并用到本书80%的内容;对编程有较高需求的理科生,可以进一步再多学15%;余下5%则基本是计算机专业学生才需要了解的。但即便是计算机专业的学生,也非常适合使用本书来快速掌握Python语法及各种库的使用。本书配套电子资料十分齐全,包括程序源代码、重点难点讲解视频、课程讲义等,此外,作者在中国大学慕课开设的“实用Python程序设计”课程,提供了覆盖全书90%内容的视频讲解。 目录 第1章计算机基础常识 1.1信息在计算机中的表示和存储1 1.1.1用0和1表示信息1 1.1.2二进制和十六进制2 1.2计算机程序设计语言4 1.2.1机器语言4 1.2.2汇编语言5 1.2.3高级语言5 1.2.4Python简史6 1.3习题7 第2章Python语言的基本要素 2.1Python开发环境的搭建8 2.2Python的语句9 2.3注释10 2.4常量11 2.5变量12 2.6赋值语句12 2.7Python数据类型14 2.8字符串简介14 2.8.1字符串的基本概念14 2.8.2字符串的下标15 2.8.3连接字符串15 2.8.4用“in”“notin”判断子串16 2.8.5字符串和数值的转换16 2.9输入和输出17 2.9.1输出语句print17 2.9.2输入语句input17 2.9.3输出格式控制19 2.10列表简介20 2.10.1列表的基本概念20 2.10.2字符串分割成列表20 2.11常见语法错误排查21 2.12OpenJudge做题指南及例题讲解21 2.13习题25 第3章基本运算和条件分支语句 3.1算术运算26 3.2关系运算和bool类型28 3.3逻辑运算30 3.4运算符的优先级31 3.5条件分支语句32 3.6条件分支语句例题33 3.7习题40 第4章循环语句 4.1for循环语句41 4.2break语句和continue语句45 4.3多重循环45 4.4while循环语句48 4.5异常处理51 4.6循环综合例题53 4.7调试程序的方法57 4.8习题58 第5章函数 5.1函数概述59 5.2全局变量和局部变量62 ★5.3参数个数可变的函数63 5.4函数参数的默认值64 5.5Python的库函数64 5.6lambda表达式65 ★★5.7高阶函数和闭包66 ★★★5.8生成器67 5.9习题69 第6章递归 6.1递归的基本概念70 6.2先做一步再递归:上台阶问题72 ★6.3问题分解:汉诺塔问题72 ★★6.4递归替代循环:N皇后问题76 ★6.5递归绘制分形图案:绘制雪花曲线78 6.6习题81 第7章复杂数据类型 7.1Python变量的指针本质82 7.2字符串详解85 7.2.1转义字符85 7.2.2三单引号和三双引号字符串86 7.2.3在字符串中使用编码代替字符87 7.2.4字符串的切片88 7.2.5字符串的分割88 7.2.6字符串的成员函数89 7.2.7字符串的格式化91 7.2.8f-string92 7.3元组92 7.3.1元组的基本概念92 7.3.2元组的操作94 7.4列表详解95 7.4.1列表基础用法95 7.4.2列表的成员函数98 7.4.3列表的排序99 7.4.4列表的映射和过滤103 7.4.5列表生成式104 ★7.4.6二维列表105 ★7.4.7列表的复制107 7.4.8列表、元组和字符串的互相转换109 7.5字典109 7.5.1字典的基本概念109 7.5.2字典的函数111 7.5.3字典例题:单词出现频率统计112 7.6集合113 7.7自定义数据类型:类116 7.8习题118 第8章计算思维 8.1计算机的本质121 8.2计算机解决问题的基本方法—穷举122 ★8.3程序或算法的时间复杂度123 8.4有序就能找得快127 8.5习题128 第9章文件读写 9.1概述129 9.2文本文件的编码130 9.3读写文本文件132 9.4文件的相对路径和绝对路径134 ★9.5文件夹的操作135 ★9.6命令行参数137 ★9.7文本文件处理综合实例138 9.8数据交换文件格式csv141 ★9.9数据交换字符串格式JSON142 ★★★9.10字节流和字符串的互相转换143 ★★★9.11二进制文件的读写144 9.12习题148 第10章正则表达式 10.1功能字符和字符组合149 10.2查找匹配的子串153 10.3边界符号155 10.4匹配选项156 10.5分组157 10.6'|'的用法160 ★★10.7替换匹配的子串161 10.8贪婪匹配和懒惰匹配162 ★★★10.9条件匹配163 ★★★10.10断言164 10.11字符串分割167 10.12应用实例167 10.13习题168 第11章玩转Python生态 11.1Python库的安装、导入和使用170 11.2日期和时间库datetime172 11.3随机库random173 ★11.4用OpenPyXL库处理Excel文档174 ★★★11.5SQLite3数据库编程179 11.5.1数据库的结构179 11.5.2SQL数据库查询语句179 11.6jieba分词库184 ★★11.7图像处理库PIL186 11.7.1图像的基本变换187 11.7.2图像的裁剪188 11.7.3图像的素描化189 ★★★11.7.4给图像添加水印190 ★★★11.7.5照片的exif信息及在图像上绘图和写字192 11.8多模块程序设计194 11.9Python程序的打包分发197 11.10习题197 第12章数据分析和可视化 12.1多维数组库NumPy199 12.2数据分析库pandas203 12.3用Matplotlib绘制统计图210 12.3.1绘制柱状图210 12.3.2绘制折线图和散点图214 12.3.3绘制饼图215 12.3.4绘制热力图215 12.3.5绘制雷达图216 12.3.6绘制面积图218 ★★12.3.7多子图绘图219 12.4习题220 第13章网络爬虫 13.1基础爬虫四步走221 13.2网页获取三招式225 13.3用BeautifulSoup分析网页228 13.4用pyppeteer爬取JavaScript动态生成的网页232 ★★13.5用pyppeteer爬取需要登录的网站233 ★★★13.6用pyppeteer+requests编写快速爬虫239 13.7如何对付反爬虫措施241 13.8习题241 第14章面向对象程序设计入门 14.1结构化程序设计和面向对象程序设计242 14.2Python中的类243 14.3对象的比较245 14.4输出对象246 14.5继承和派生247 14.6静态属性和静态方法249 14.7对象作为集合元素或字典的键250 第15章tkinter图形界面程序设计 15.1控件概述253 15.2图形界面的布局255 15.3为控件绑定状态变量和事件响应函数258 15.4综合示例—Python火锅店点菜系统262 15.5对话框266 15.6菜单和多行编辑框示例270 ★★15.7在图形界面中用Matplotlib绘制统计图和显示图像272 ★★15.8Notebook、PanedWindow和TreeView控件275 15.9习题276 |