书籍详情

Python从菜鸟到高手(第2版)

Python从菜鸟到高手(第2版)

作者:李宁

出版社:清华大学出版社

出版时间:2022-11-01

ISBN:9787302613947

定价:¥95.00

购买这本书可以去
内容简介
  本书从实战角度系统讲解了Python核心知识点以及Python在Web开发、数据分析、网络爬虫、桌面应用等领域的各种应用实践。本书用超过10万行代码、500个案例完美演绎了Python在各个领域的出色表现,每一个案例都拥有详细的实现步骤,带领读者由浅入深系统掌握Python语言的核心以及Python全栈开发的技能。本书分为四篇,共26章,介绍Python基础、存储解决方案、网络与并发和Python高级技术等内容。 本书适用于零基础的初学者,适合作为高等院校教材,也适合想掌握Python开发的程序员以及所有对Python感兴趣的技术人员参考。
作者简介
  李宁毕业于东北大学,获得计算机科学与技术专业硕士学位。UnityMarvel创始人,华为公司HDE(HUAWEI Developer Experts),开发原子基金会银牌讲师,51CTO学院金牌讲师,IT畅销书作者。从事软件研究和开发超过20年,一直从事编译器、人工智能、Python、JavaScript、Node.js、Java及跨平台技术的研究工作,对相关领域的理论、技术和实践有很深的理解和研究。曾出版40多部IT技术图书。
目录
篇  Python基础知识
第1章  Python入门 3
1.1  搭建Python编程环境 3
1.1.1  获取Python安装包 3
1.1.2  安装Windows版的Python安装包 4
1.1.3  安装macOS版的Python安装包 4
1.1.4  安装Linux版的Python安装包 4
1.2  搭建和使用PyCharm 5
1.2.1  下载和安装PyCharm 5
1.2.2  创建PyCharm Python工程 6
1.2.3  在PyCharm中添加Python环境 7
1.2.4  在PyCharm中运行Python程序 9
1.3  Python中的REPL环境 9
1.4  个Python程序 10
1.5  调试Python程序 10
1.6  实战与演练 12
1.7  本章小结 12
第2章  Python语言基础 13
2.1  运行helloworld.py会发生什么情况 13
2.2  变量 14
2.2.1  变量的定义和初始化 14
2.2.2  变量的命名 15
2.2.3  避免弄错变量名 16
2.2.4  如何理解变量 17
2.3  字符串基础 18
2.3.1  单引号字符串和转义符 18
2.3.2  拼接字符串 19
2.3.3  保持字符串的原汁原味 20
2.3.4  长字符串 21
2.4  数字 22
2.4.1  基础知识 22
2.4.2  大整数 23
2.4.3  二进制、八进制和十六进制 24
2.4.4  数字的格式化输出 25
2.5  获取用户输入 26
2.6  注释 26
2.7  实战与演练 27
2.8  本章小结 28
第3章  条件与循环 29
3.1  条件和条件语句 29
3.1.1  布尔(Boolean)值和布尔变量 29
3.1.2  条件语句(if、else和elif) 30
3.1.3  嵌套代码块 32
3.1.4  比较运算符 33
3.1.5  断言 35
3.1.6  pass语句与空代码块 36
3.2  循环 37
3.2.1  while循环 37
3.2.2  for循环 38
3.2.3  跳出循环 40
3.2.4  循环中的else语句 41
3.3  实战与演练 42
3.4  本章小结 43
第4章  列表和元组 44
4.1  定义列表 44
4.2  列表的基本操作 44
4.2.1  通过索引操作列表元素 44
4.2.2  分片 46
4.2.3  列表的加法 48
4.2.4  列表的乘法 48
4.2.5  in运算符 48
4.2.6  列表的长度、值和小值 49
4.2.7  列表封包和列表解包 50
4.2.8  修改列表元素 52
4.2.9  删除列表元素 52
4.2.10  分片赋值 52
4.3  列表方法 53
4.4  元组 56
4.5  for循环与列表 57
4.5.1  使用for循环枚举列表与元组中的元素 57
4.5.2  使用for-in循环遍历列表与元组中的元素 58
4.5.3  使用for表达式自动生成列表 59
4.6  实战与演练 60
4.7  本章小结 62
第5章  字符串 63
5.1  字符串格式化 63
5.1.1  字符串格式化基础 63
5.1.2  模板字符串 65
5.1.3  字符串的format方法 65
5.1.4  更进一步控制字符串格式化参数 67
5.1.5  字段宽度、精度和千分位分隔符 68
5.1.6  符号、对齐、用0填充和进制转换 69
5.1.7  f字符串 70
5.2  字符串方法 70
5.2.1  center方法 70
5.2.2  find方法 71
5.2.3  join方法 71
5.2.4  split方法 72
5.2.5  lower方法、upper方法和capwords函数 73
5.2.6  replace方法 74
5.2.7  strip方法 74
5.2.8  translate方法与maketrans方法 75
5.3  实战与演练 75
5.4  本章小结 76
第6章  字典 77
6.1  为什么要引入字典 77
6.2  创建和使用字典 78
6.2.1  dict函数 78
6.2.2  字典的基本操作 78
6.2.3  字典的格式化字符串 80
6.2.4  字典迭代 81
6.3  字典方法 82
6.3.1  clear方法 82
6.3.2  copy方法与deepcopy函数 82
6.3.3  fromkeys方法 83
6.3.4  get方法 84
6.3.5  items方法和keys方法 84
6.3.6  pop方法和popitem方法 85
6.3.7  setdefault方法 86
6.3.8  update方法 87
6.3.9  values方法 87
6.4  实战与演练 88
6.5  本章小结 89
第7章  函数 90
7.1  函数基础 90
7.1.1  定义函数 90
7.1.2  为函数添加文档注释 90
7.1.3  没有返回值的函数 91
7.2  函数参数 92
7.2.1  改变参数的值 92
7.2.2  命名参数与默认值 97
7.2.3  可变参数 99
7.2.4  将序列作为函数的参数值 100
7.3  作用域 103
7.4  实战与演练 104
7.5  本章小结 105
第8章  类和对象 106
8.1  对象的魔法 106
8.2  类 106
8.2.1  创建自己的类 106
8.2.2  方法和私有化 108
8.2.3  类代码块 110
8.2.4  类的继承 111
8.2.5  检测继承关系 111
8.2.6  多继承 113
8.2.7  接口 114
8.3  实战与演练 116
8.4  本章小结 116
第9章  异常 117
9.1  什么是异常 117
9.2  主动抛出异常 117
9.2.1  raise语句 118
9.2.2  自定义异常类 119
9.3  捕捉异常 120
9.3.1  try…except语句的基本用法 120
9.3.2  捕捉多个异常 121
9.3.3  用同一个代码块处理多个异常 123
9.3.4  捕捉对象 124
9.3.5  异常捕捉中的else子句 126
9.3.6  异常捕捉中的finally子句 127
9.4  异常、函数与栈跟踪 129
9.5  异常的妙用 129
9.6  实战与演练 131
9.7  本章小结 131
第10章  方法、属性和迭代器 132
10.1  构造方法 132
10.1.1  构造方法的基础知识 132
10.1.2  重写普通方法和构造方法 133
10.1.3  使用super函数 135
10.2  特殊成员方法 136
10.2.1  自定义序列 136
10.2.2  从内建列表、字符串和字典继承 138
10.3  方法重载 140
10.3.1  Python为什么在语法上不支持方法重载 141
10.3.2  用魔法方法让Python支持方法重载 142
10.4  属性 145
10.4.1  传统的属性 145
10.4.2  property函数 147
10.4.3  监控对象中所有的属性 148
10.5  静态方法和类方法 150
10.6  迭代器 152
10.7  生成器 153
10.8  装饰器 154
10.8.1  叠加使用Python装饰器 154
10.8.2  定义Python装饰器 154
10.8.3  理解Python函数 155
10.8.4  理解Python装饰器 157
10.9  实战与演练 158
10.10  本章小结 159
第二篇  存储解决方案
第11章  文件和流 163
11.1  打开文件 163
11.2  操作文件的基本方法 164
11.2.1  读文件和写文件 165
11.2.2  管道输出 166
11.2.3  读行和写行 167
11.3  使用FileInput对象读取文件 169
11.4  实战与演练 170
11.5  本章小结 170
第12章  数据存储 171
12.1  处理XML格式的数据 171
12.1.1  读取与搜索XML文件 171
12.1.2  字典转换为XML字符串 172
12.1.3  XML字符串转换为字典 174
12.2  处理JSON格式的数据 175
12.2.1  JSON字符串与字典互相转换 175
12.2.2  将JSON字符串转换为类实例 177
12.2.3  将类实例转换为JSON字符串 178
12.2.4  类实例列表与JSON字符串互相转换 179
12.3  将JSON字符串转换为XML字符串 180
12.4  SQLite数据库 180
12.4.1  管理SQLite数据库 181
12.4.2  用Python操作SQLite数据库 183
12.5  MySQL数据库 186
12.6  非关系型数据库 188
12.6.1  NoSQL简介 188
12.6.2  MongoDB数据库 188
12.6.3  pymongo模块 190
12.7  实战与演练 191
12.8  本章小结 192
第三篇  网络与并发
第13章  TCP与UDP编程 195
13.1  套接字 195
13.1.1  建立TCP服务端 195
13.1.2  服务端接收数据的缓冲区 199
13.1.3  服务端的请求队列 200
13.1.4  时间戳服务端 202
13.1.5  用Socket实现HTTP服务器 203
13.1.6  客户端Socket 206
13.1.7  UDP时间戳服务端 207
13.1.8  UDP时间戳客户端 208
13.2  socketserver模块 209
13.2.1  实现socketserver TCP时间戳服务端 209
13.2.2  实现socketserver TCP时间戳客户端 210
13.3  实战与演练 211
13.4  本章小结 212
第14章  网络高级编程 213
14.1  urllib3模块 213
14.1.1  发送HTTP GET请求 213
14.1.2  发送HTTP POST请求 214
14.1.3  HTTP请求头 216
14.1.4  HTTP响应头 218
14.1.5  上传文件 219
14.1.6  超时 220
14.2  Twisted框架 222
14.2.1  异步编程模型 222
14.2.2  Reactor(反应堆)模式 224
14.2.3  HelloWorld(Twisted框架) 224
14.2.4  用Twisted实现时间戳客户端 226
14.2.5  用Twisted实现时间戳服务端 227
14.3  FTP客户端 228
14.4  实战与演练 230
14.5  本章小结 230
第15章  线程与协程 231
15.1  线程与进程 231
15.1.1  进程 231
15.1.2  线程 231
15.2  Python与线程 232
15.2.1  使用单线程执行程序 232
15.2.2  使用多线程执行程序 233
15.2.3  为线程函数传递参数 234
15.2.4  线程和锁 235
15.3  高级线程模块(threading) 236
15.3.1  Thread类与线程函数 236
15.3.2  Thread类与线程对象 237
15.3.3  从Thread类继承 238
15.4  线程同步 240
15.4.1  线程锁 240
15.4.2  信号量 242
15.5  协程 243
15.5.1  同步协程 244
15.5.2  异步协程 245
15.6  实战与演练 245
15.7  本章小结 246
第四篇  Python高级技术
第16章  GUI库:PyQt6 249
16.1  PyQt6简介 249
16.2  PyQt6运行环境安装 250
16.3  编写个PyQt6程序 250
16.4  窗口的基本功能 251
16.4.1  窗口图标 251
16.4.2  提示框 251
16.4.3  关闭窗口 252
16.4.4  消息盒子 253
16.4.5  窗口居中 254
16.5  布局 255
16.5.1  布局 255
16.5.2  盒布局 256
16.5.3  网格布局 257
16.6  控件 258
16.6.1  QPushButton控件 259
16.6.2  QLineEdit控件 261
16.6.3  QCheckBox控件 261
16.6.4  QSlider控件 263
16.6.5  QProgressBar控件 264
16.6.6  QPixmap控件 265
16.6.7  QComboBox控件 266
16.6.8  QCalendarWidget控件 267
16.7  菜单 269
16.8  实战与演练 270
16.9  本章小结 270
第17章  PyQt6游戏项目实战:俄罗斯方块 271
17.1  游戏概述 271
17.2  实现游戏的思路 271
17.3  游戏窗口 272
17.4  创建新的方块 273
17.5  绘制俄罗斯方块 274
17.6  响应键盘动作 275
17.7  移动和旋转方块 276
17.8  显示下一个俄罗斯方块 278
17.9  本章小结 278
第18章  Python游戏引擎:Pygame基础知识 279
18.1  Pygame入门 279
18.1.1  搭建Pygame开发环境 279
18.1.2  使用Pygame 279
18.1.3  显示文本 281
18.1.4  显示中文 282
18.1.5  绘制圆 282
18.1.6  绘制矩形 283
18.1.7  绘制直线 284
18.1.8  绘制弧形 285
18.2  键盘和鼠标事件 286
18.2.1  键盘事件 286
18.2.2  鼠标事件 287
18.3  实战与演练 289
18.4  本章小结 290
第19章  Python游戏引擎:Pygame高级技术 291
19.1  图像处理 291
19.1.1  装载位图 291
19.1.2  装载星空背景 291
19.1.3  显示和旋转地球 292
19.2  Pygame精灵(Sprite) 293
19.2.1  为Sprite准备动画素材 294
19.2.2  编写精灵类 294
19.2.3  装载Sprite动画资源 295
19.2.4  缩放Sprite 295
19.2.5  绘制帧 296
19.2.6  设置Sprite动画帧率 296
19.2.7  精灵组 297
19.2.8  实现不同的帧率 297
19.2.9  完整案例:Sprite演示 299
19.3  碰撞检测 302
19.3.1  矩形碰撞检测 302
19.3.2  圆形碰撞检测 302
19.3.3  遮罩碰撞检测 303
19.3.4  精灵与组之间的碰撞检测 304
19.3.5  组与组之间的碰撞检测 304
19.4  给游戏加上音效 305
19.5  实战与演练 307
19.6  本章小结 308
第20章  Pygame游戏项目实战:塔防 310
20.1  游戏概述 310
20.2  游戏中需要完成的工作 310
20.3  游戏初始化 310
20.4  展现游戏角色 311
20.5  响应鼠标和键盘事件 312
20.6  碰撞检测 313
20.7  本章小结 313
第21章  网络爬虫与Beautiful Soup 314
21.1  网络爬虫基础 314
21.1.1  爬虫分类 314
21.1.2  编写第1个网络爬虫 315
21.1.3  保存抓取的数据 318
21.1.4  从百度抓取海量比基尼美女图片 319
21.2  HTML分析库:Beautiful Soup 323
21.2.1  如何使用Beautiful Soup 323
21.2.2  Tag对象的name和string属性 324
21.2.3  读写标签属性 325
21.2.4  用Beautiful Soup分析商城首页的HTML代码 327
21.2.5  通过回调函数过滤标签 328
21.3  实战与演练 328
21.4  本章小结 329
第22章  Python办公自动化 330
22.1  Python与Excel交互 330
22.1.1  Python为什么要与Office交互 330
22.1.2  Python与Office交互的各种技术 330
22.1.3  安装openpyxl 331
22.1.4  创建和保存Workbook 331
22.1.5  读取Excel文档 332
22.1.6  获取和设置单元格中的值 333
22.1.7  插入和删除行 334
22.1.8  插入和删除列 335
22.1.9  访问多个单元格 336
22.1.10  改变行高和列宽 337
22.1.11  设置单元格文字颜色、字体和背景色 338
22.1.12  使用公式 339
22.1.13  向Excel文档插入图像 340
22.1.14  格式化数字和日期 340
22.1.15  合并单元格和取消单元格合并 341
22.1.16  Excel与Pandas结合 342
22.2  Python与Word交互 343
22.2.1  读取Word文档的段落 343
22.2.2  获取段落中的样式文本 344
22.2.3  设置文本的样式 344
22.2.4  向Word文档添加文本 344
22.2.5  向Word文档添加标题 345
22.2.6  添加换页符 345
22.2.7  在Word文档中插入图像 346
22.2.8  将Word文档转换为PDF文档 346
22.3  Python与PowerPoint交互 347
22.3.1  读取幻灯片中的文本 347
22.3.2  获取某一页幻灯片中的文本 348
22.3.3  新建幻灯片 348
22.3.4  为幻灯片添加一个文本框 348
22.3.5  向幻灯片添加图像 349
22.4  Python与PDF交互 349
22.4.1  读取PDF文档的文本 349
22.4.2  创建PDF文档 350
22.5  实战与演练 350
22.6  本章小结 351
第23章  Python爬虫项目实战:抓取网络数据和图片 352
23.1  网络库requests 352
23.1.1  requests的HelloWorld 352
23.1.2  HTTP GET请求 353
23.1.3  添加HTTP请求头 353
23.1.4  抓取二进制数据 354
23.1.5  HTTP POST请求 354
23.1.6  响应数据 355
23.2  项目1:抓取酷狗红歌榜 356
23.2.1  项目分析 356
23.2.2  项目的完整实现 357
23.3  项目2:抓取金字塔图片,并保存为Excel文档 358
23.3.1  项目分析 359
23.3.2  webp转换为jpg格式 359
23.3.3  项目的完整实现 359
23.4  本章小结 362
第24章  Python Web框架:Django 363
24.1  Django安装环境搭建 363
24.2  Django基础知识 363
24.2.1  建立个Django工程 363
24.2.2  Django工程结构分析 365
24.2.3  远程访问与端口号 365
24.2.4  用PyCharm建立Django工程 366
24.2.5  添加路由 367
24.2.6  处理HTTP请求 368
24.2.7  Response与Cookie 370
24.2.8  读写Session 372
24.2.9  用户登录 373
24.2.10  静态文件 375
24.3  Django模板 377
24.3.1  编写个基于Django模板的应用 377
24.3.2  条件控制标签 378
24.3.3  循环控制标签 379
24.3.4  过滤器 380
24.4  实战与演练 382
24.5  本章小结 382
第25章  Python Web项目实战:基于Django的58同城网站 383
25.1  项目演示 383
25.2  操作MySQL数据库 384
25.3  账号 385
25.3.1  用户注册 385
25.3.2  用户登录 386
25.4  招聘页面 388
25.5  二手车页面 390
25.6  本章小结 392
第26章  Python扩展学习 393
26.1  用Python控制鼠标和键盘 393
26.1.1  获取鼠标的位置 393
26.1.2  实时获取鼠标的位置 393
26.1.3  移动和拖动鼠标 394
26.1.4  模拟单击和双击鼠标 394
26.1.5  模拟按键 395
26.1.6  模拟键盘输入 395
26.2  Python与C/C 交互 395
26.2.1  Python通过cffi调用C/C 动态库 396
26.2.2  Python通过cython调用C/C 动态库 396
26.3  制作Python安装程序 397
26.4  实战与演练 397
26.5  本章小结 398
猜您喜欢

读书导航