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

Python从菜鸟到高手(第2版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2022-11
版次: 2
ISBN: 9787302613947
定价: 95.00
装帧: 其他
开本: 16开
纸张: 胶版纸
3人买过
  • 本书从实战角度系统讲解了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
  • 内容简介:
    本书从实战角度系统讲解了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
查看详情
12
相关图书 / 更多
Python从菜鸟到高手(第2版)
Python游戏开发从入门到进阶实战
明日科技 编著
Python从菜鸟到高手(第2版)
Python财务数据分析微课版
徐万紫
Python从菜鸟到高手(第2版)
Python数值分析算法实践
王娟
Python从菜鸟到高手(第2版)
PyTorch深度学习指南:计算机视觉 卷II 王兆宇
(巴西)丹尼尔·沃格特·戈多伊
Python从菜鸟到高手(第2版)
PyTorch深度学习指南:序列与自然语言处理 卷III
(巴西)丹尼尔·沃格特·戈多伊(Daniel Voigt Godoy)
Python从菜鸟到高手(第2版)
PyTorch深度学习与企业级项目实战
宋立桓 宋立林
Python从菜鸟到高手(第2版)
PyTorch深度学习指南:编程基础 卷I
(巴西)丹尼尔·沃格特·戈多伊
Python从菜鸟到高手(第2版)
Python数据分析快速上手
王靖、商艳红、张洪波、卢军
Python从菜鸟到高手(第2版)
Python在结构动力计算中的应用
龙晓鸿 等
Python从菜鸟到高手(第2版)
Python量子计算实践:基于Qiskit和IBM Quantum Experience平台
(美)哈西·诺伦(Hassi Norlén)
Python从菜鸟到高手(第2版)
Python服务端测试开发实战
无涯
Python从菜鸟到高手(第2版)
Python贝叶斯建模与计算
[阿根廷] 奥斯瓦尔多·A. 马丁(Osvaldo A. Martin),[美]拉万·库马尔(Ravin Kumar)[美]劳俊鹏(Junpeng Lao)著 郭涛 译