失效链接处理 |
PYTHON从菜鸟到高手 PDF 下载
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/25333314.html
相关截图:
资料简介: 本书从实战角度系统讲解了Python核心知识点以及Python在Web开发、数据分析、网络爬虫、桌面应用等领域的各种开发实践。本书用超过5万行的代码及大量的实战案例完美演绎了Python在各个领域的出色表现,每一个案例都有详细的实现步骤,带领读者由浅入深系统掌握Python语言的核心及Python全栈开发技能。本书共分六篇,各篇内容如下: Python基础知识篇(第1章~第10章),内容主要包括Python的基本概念、开发环境安装和配置、Python语言的基础知识,控制语句、列表、元组、字符串、字典、函数、类、对象、异常、方法、属性和迭代器;Python高级编程篇(第11章~第20章),内容主要包括正则表达式、常用模块、文件和流、数据存储、TCP和UDP编程、Urllib3、twisted、FTP、Email、多线程、tkinter、PyQt5和测试;Python Web开发篇(第21章、第22章),主要讲解了Python语言中*流行的两个Web开发框架(Flask和Django)的使用方法;Python科学计算与数据分析篇(第23章~第25章),主要讲解了Python语言中*常用的3个数据分析和数据可视化库(NumPy、Matplotlib和Pandas)的使用方法;Python Web爬虫技术篇(第26章、第27章),主要讲解了编写网络爬虫的关键技术和常用程序库,这些程序库主要包括Beautiful Soup和Scrapy;Python项目实战篇(第28章~第33章),内容主要包括Web项目开发实战、爬虫项目开发实战、API项目开发实战、桌面应用项目开发实战和游戏项目开发实战。 本书适合作为Python程序设计者的参考用书。 资料目录: 推荐序. 1 前言. 3 本书配套资源. 5 第一篇 Python基础知识第1章 初识Python 3 1.1 Python简介. 3 1.1.1 什么是Python 3 1.1.2 Python的应用领域. 4 1.1.3 如何学好Python 5 1.1.4 Python API文档. 6 1.2 搭建Python开发环境. 8 1.2.1 安装官方的Python运行环境. 9 1.2.2 配置PATH环境变量. 11 1.2.3 安装Anaconda Python开发环境. 13 1.2.4 下载和安装JDK 13 1.2.5 下载和安装Eclipse 16 1.2.6 Python IDE(PyDev)安装. 17 1.2.7 配置Python IDE(PyDev)开发环境. 20 1.2.8 测试Python IDE(PyDev)开发环境. 21 1.2.9 安装PyCharm 22 1.2.10 配置PyCharm 23 1.2.11 Python中的REPL环境. 25 1.3 第一个Python程序. 26 1.4 调试Python程序. 26 1.5 小结. 29 1.6 实战与练习. 29 第2章 Python语言基础. 30 2.1 Python程序中的基本要素. 30 2.1.1 导入Python模块. 30 2.1.2 声明变量. 32 2.1.3 清空Python控制台. 32 2.2 数字. 34 2.2.1 基础知识. 34 2.2.2 大整数. 36 2.2.3 二进制、八进制和十六进制. 36 2.2.4 数字的格式化输出. 37 2.3 获取用户输入. 39 2.4 函数. 40 2.5 注释. 41 2.6 字符串基础. 42 2.6.1 单引号字符串和转义符. 42 2.6.2 拼接字符串. 43 2.6.3 保持字符串的原汁原味. 44 2.6.4 长字符串. 46 2.7 小结. 47 2.8 实战与练习. 47 第3章 条件、循环和其他语句. 49 3.1 神奇的print函数. 49 3.2 有趣的赋值操作. 51 3.3 用缩进创建代码块. 53 3.4 条件和条件语句. 53 3.4.1 布尔值和布尔变量. 54 3.4.2 条件语句(if、else和elif). 55 3.4.3 嵌套代码块. 56 3.4.4 比较运算符. 57 3.4.5 断言. 60 3.5 循环. 62 3.5.1 while循环. 62 3.5.2 for循环. 63 3.5.3 跳出循环. 65 3.5.4 循环中的else语句. 67 3.6 使用exec和eval执行求值字符串. 69 3.7 小结. 71 3.8 实战与练习. 71 第4章 列表和元组. 73 4.1 定义序列. 73 4.2 序列的基本操作. 74 4.2.1 通过索引操作序列元素. 74 4.2.2 分片. 77 4.2.3 序列相加. 83 4.2.4 序列的乘法. 84 4.2.5 检查某个值是否属于一个序列. 85 4.2.6 序列的长度、最大值和最小值. 86 4.3 列表的基本操作. 87 4.4 列表方法. 89 4.5 元组. 93 4.6 小结. 95 4.7 实战与练习. 95 第5章 字符串..................................................................................... 97 5.1 字符串的基本操作. 97 5.2 格式化字符串. 98 5.2.1 字符串格式化基础. 98 5.2.2 模板字符串. 100 5.2.3 字符串的format方法. 101 5.2.4 更进一步控制字符串格式化参数. 102 5.2.5 字段宽度、精度和千位分隔符. 104 5.2.6 符号、对齐、用0填充和进制转换. 105 5.3 字符串方法. 107 5.3.1 center方法. 107 5.3.2 find方法. 108 5.3.3 join方法. 109 5.3.4 split方法. 110 5.3.5 lower方法、upper方法和capwords函数. 111 5.3.6 replace方法. 112 5.3.7 strip方法. 112 5.3.8 translate方法与maketrans方法. 113 5.4 小结. 114 5.5 实战与练习. 115 第6章 字典. 116 6.1 为什么要引入字典. 116 6.2 创建和使用字典. 117 6.2.1 dict函数. 117 6.2.2 字典的基本操作. 118 6.2.3 字典的格式化字符串. 120 6.2.4 序列与迭代. 121 6.3 字典方法. 124 6.3.1 clear方法. 124 6.3.2 copy方法与deepcopy函数. 125 6.3.3 fromkeys方法. 126 6.3.4 get方法. 127 6.3.5 items方法和keys方法. 128 6.3.6 pop方法和popitem方法. 129 6.3.7 setdefault方法. 130 6.3.8 update方法. 131 6.3.9 values方法. 132 6.4 小结. 133 6.5 实战与练习. 133 第7章 函数. 134 7.1 懒惰是重用的基石. 134 7.2 函数基础. 136 7.2.1 创建函数. 136 7.2.2 为函数添加文档注释. 137 7.2.3 没有返回值的函数. 138 7.3 函数参数. 139 7.3.1 改变参数的值. 139 7.3.2 关键字参数与默认值. 144 7.3.3 可变参数. 147 7.3.4 将序列作为函数的参数值. 151 7.4 作用域. 154 7.5 递归. 156 7.6 小结. 158 7.7 实战与练习. 158 第8章 类和对象. 159 8.1 对象的魔法. 159 8.2 类. 160 8.2.1 创建自己的类. 160 8.2.2 方法和私有化. 161 8.2.3 类代码块. 163 8.2.4 类的继承. 164 8.2.5 检测继承关系. 165 8.2.6 多继承. 167 8.2.7 接口. 169 8.3 小结. 170 8.4 实战与练习. 171 第9章 异常. 172 9.1 什么是异常. 172 9.2 主动抛出异常. 173 9.2.1 raise语句. 173 9.2.2 自定义异常类. 175 9.3 捕捉异常. 176 9.3.1 try…except语句的基本用法. 176 9.3.2 捕捉多个异常. 177 9.3.3 用同一个代码块处理多个异常. 179 9.3.4 捕捉对象. 180 9.3.5 异常捕捉中的else子句. 182 9.3.6 异常捕捉中的finally子句. 183 9.4 异常、函数与栈跟踪. 185 9.5 异常的妙用. 186 9.6 小结. 188 9.7 实战与练习. 188 第10章 方法、属性和迭代器. 189 10.1 构造方法. 189 10.1.1 构造方法的基础知识. 189 10.1.2 重写普通方法和构造方法. 190 10.1.3 使用super函数. 193 10.2 特殊成员方法. 194 10.2.1 自定义序列. 194 10.2.2 从内建列表、字符串和字典继承. 197 10.3 属性. 199 10.3.1 传统的属性. 199 10.3.2 property函数. 201 10.3.3 监控对象中所有的属性. 203 10.4 静态方法和类方法. 205 10.5 迭代器. 207 10.5.1 自定义可迭代的类. 207 10.5.2 将迭代器转换为列表. 209 10.6 生成器. 210 10.6.1 创建生成器. 210 10.6.2 递归生成器. 212 10.7 小结. 213 10.8 实战与练习. 214 第二篇 Python高级编程第11章 正则表达式. 217 11.1 在Python语言中使用正则表达式. 217 11.1.1 使用match方法匹配字符串. 217 11.1.2 使用search方法在一个字符串中查找模式. 218 11.1.3 匹配多个字符串. 219 11.1.4 匹配任何单个字符. 220 11.1.5 使用字符集. 221 11.1.6 重复、可选和特殊字符. 223 11.1.7 分组. 226 11.1.8 匹配字符串的起始和结尾以及单词边界. 228 11.1.9 使用findall和finditer查找每一次出现的位置. 229 11.1.10 用sub和subn搜索与替换. 230 11.1.11 使用split分隔字符串. 232 11.2 一些常用的正则表达式. 232 11.3 小结. 233 11.4 实战与练习. 234 第12章 常用模块. 235 12.1 sys模块. 235 12.2 os模块. 238 12.2.1 获取与改变工作目录. 238 12.2.2 文件与目录操作. 239 12.2.3 软链接与硬链接. 240 12.2.4 杂项. 241 12.3 集合、堆和双端队列(heap模块、deque类). 243 12.3.1 集合. 244 12.3.2 堆. 247 12.3.3 双端队列. 249 12.4 时间、日期与日历(time模块). 250 12.4.1 时间元组. 250 12.4.2 格式化日期和时间. 251 12.4.3 时间戳的增量. 253 12.4.4 计算日期和时间的差值. 254 12.4.5 获取某月和某年的日历. 255 12.5 随机数(random模块). 256 12.6 数学(math模块). 257 12.7 小结. 258 12.8 实战与练习. 258 第13章 文件和流. 259 13.1 打开文件. 259 13.2 操作文件的基本方法. 260 13.2.1 读文件和写文件. 261 13.2.2 管道输出. 262 13.2.3 读行和写行. 264 13.3 使用FileInput对象读取文件. 265 13.4 小结. 266 13.5 实战与练习. 266 第14章 数据存储. 268 14.1 处理XML格式的数据. 268 14.1.1 读取与搜索XML文件. 268 14.1.2 字典转换为XML字符串. 270 14.1.3 XML字符串转换为字典. 272 14.2 处理JSON格式的数据. 273 14.2.1 JSON字符串与字典互相转换. 273 14.2.2 将JSON字符串转换为类实例. 275 14.2.3 将类实例转换为JSON字符串. 276 14.2.4 类实例列表与JSON字符串互相转换. 277 14.3 将JSON字符串转换为XML字符串. 278 14.4 SQLite数据库. 279 14.4.1 管理SQLite数据库. 279 14.4.2 用Python操作SQLite数据库. 281 14.5 MySQL数据库. 284 14.6 ORM 286 14.6.1 SQLAlchemy 287 14.6.2 SQLObject 291 14.7 非关系型数据库. 294 14.7.1 NoSQL简介. 294 14.7.2 MongoDB数据库. 295 14.7.3 pymongo模块. 296 14.8 小结. 297 14.9 实战与练习. 297 第15章 TCP与UDP编程. 299 15.1 套接字. 299 15.1.1 建立TCP服务端. 299 15.1.2 服务端接收数据的缓冲区. 303 15.1.3 服务端的请求队列. 305 15.1.4 TCP时间戳服务端. 307 15.1.5 用Socket实现HTTP服务器. 307 15.1.6 客户端Socket 311 15.1.7 UDP时间戳服务端. 312 15.1.8 UDP时间戳客户端. 313 15.2 socketserver模块. 314 15.2.1 实现socketserver TCP时间戳服务端. 314 15.2.2 实现socketserver TCP时间戳客户端. 315 15.3 小结. 316 15.4 实战与练习. 316 第16章 网络高级编程. 317 16.1 urllib3模块. 317 16.1.1 发送HTTP GET请求. 318 16.1.2 发送HTTP POST请求. 319 16.1.3 HTTP请求头. 320 16.1.4 HTTP响应头. 322 16.1.5 上传文件. 323 16.1.6 超时. 325 16.2 twisted框架. 326 16.2.1 异步编程模型. 327 16.2.2 Reactor(反应堆)模式. 329 16.2.3 HelloWorld(twisted框架). 329 16.2.4 用twisted实现时间戳客户端. 331 16.2.5 用twisted实现时间戳服务端. 332 16.2.6 用twisted获取Email邮箱目录列表. 333 16.3 FTP客户端. 338 16.4 Email客户端. 341 16.4.1 使用SMTP发送简单的Email 341 16.4.2 使用SMTP发送带附件的Email 343 16.4.3 使用POP3接收Email 344 16.4.4 使用IMAP4接收Email 346 16.5 小结. 348 16.6 实战与练习. 348 第17章 多线程. 349 17.1 线程与进程. 349 17.1.1 进程. 349 17.1.2 线程. 349 17.2 Python与线程. 350 17.2.1 使用单线程执行程序. 350 17.2.2 使用多线程执行程序. 351 17.2.3 为线程函数传递参数. 352 17.2.4 线程和锁. 353 17.3 高级线程模块. 355 17.3.1 Thread类与线程函数. 355 17.3.2 Thread类与线程对象. 356 17.3.3 从Thread类继承. 357 17.4 线程同步. 359 17.4.1 线程锁. 359 17.4.2 信号量. 361 17.5 生产者—消费者问题与queue模块. 364 17.6 小结. 366 17.7 实战与练习. 366 第18章 GUI库:tkinter 368 18.1 tkinter简介. 368 18.2 编写第一个tkinter程序. 368 18.3 布局. 370 18.3.1 pack布局. 370 18.3.2 place布局. 376 18.3.3 grid布局. 377 18.4 控件. 378 18.4.1 Label控件和Button控件. 378 18.4.2 Entry控件与Text控件. 380 18.4.3 Radiobutton控件. 382 18.4.4 Checkbutton控件. 383 18.4.5 Scale 控件. 384 18.4.6 Listbox控件. 386 18.5 向窗口添加菜单. 387 18.6 对话框. 389 18.7 小结. 390 18.8 实战与练习. 390 第19章 GUI库:PyQt5 391 19.1 PyQt5简介. 391 19.2 安装PyQt5 392 19.2.1 PyQt5开发环境搭建. 392 19.2.2 配置QTDesigner(可视化开发). 392 19.2.3 配置PyUIC 395 19.3 编写第一个PyQt5程序. 397 19.4 窗口的基本功能. 398 19.4.1 设置窗口图标. 398 19.4.2 显示提示框. 398 19.4.3 关闭窗口. 399 19.4.4 消息盒子. 400 19.4.5 窗口居中. 401 19.5 布局. 402 19.5.1 绝对布局. 402 19.5.2 盒布局. 403 19.5.3 网格布局. 405 19.6 控件. 406 19.6.1 QPushButton控件. 406 19.6.2 QLineEdit控件. 408 19.6.3 QCheckBox控件. 409 19.6.4 QSlider控件. 410 19.6.5 QProgressBar控件. 411 19.6.6 QPixmap控件. 413 19.6.7 QComboBox控件. 414 19.6.8 QCalendarWidget控件. 415 19.7 菜单. 416 19.8 小结. 418 19.9 实战与练习. 418 第20章 测试. 419 20.1 先测试后编码. 419 20.1.1 为代码划定边界. 420 20.1.2 测试的步骤. 421 20.2 测试工具. 421 20.2.1 doctest 421 20.2.2 unittest 423 20.3 检查源代码. 424 20.3.1 PyLint 425 20.3.2 Flake8 426 20.4 性能分析. 428 20.5 小结. 429 20.6 实战与练习. 429 第三篇 Python Web开发第21章 Python Web框架:Flask 433 21.1 Flask基础知识. 434 21.1.1 使用8行代码搞定Web应用. 434 21.1.2 静态路由和动态路由. 435 21.1.3 获取HTTP请求数据. 438 21.1.4 Response与Cookie 439 21.1.5 会话. 441 21.1.6 静态文件和重定向. 443 21.2 Jinja2模板. 443 21.2.1 第一个基于Jinja2模板的Web应用. 444 21.2.2 在Jinja2模板中使用复杂数据. 445 21.2.3 在Jinja2模板中的过滤器. 447 21.2.4 条件控制. 448 21.2.5 循环控制. 450 21.2.6 宏操作. 452 21.2.7 include指令. 455 21.2.8 模板继承. 457 21.2.9 使用flask-bootstrap模块集成twitter Bootstrap 458 21.2.10 自定义错误页面. 460 21.3 Web表单与Flask-WTF扩展. 461 21.3.1 表单类. 462 21.3.2 简单的表单组件. 464 21.3.3 单选和多选组件. 467 21.3.4 表单校验器. 469 21.3.5 获取和设置表单组件中的数据. 472 21.4 小结. 473 21.5 实战与练习. 474 第22章 Python Web框架:Django 475 22.1 Django开发环境搭建. 475 22.2 Django基础知识. 476 22.2.1 建立第一个Django工程. 476 22.2.2 Django工程结构分析. 477 22.2.3 远程访问与端口号. 477 22.2.4 用PyCharm建立Django工程. 478 22.2.5 添加路由. 480 22.2.6 在MyCharm中指定IP和端口号. 482 22.2.7 处理HTTP请求. 482 22.2.8 Response与Cookie 484 22.2.9 读写Session 485 22.2.10 用户登录. 487 22.2.11 静态文件. 488 22.3 Django模板. 490 22.3.1 编写第一个基于Django模板的应用. 490 22.3.2 条件控制标签. 492 22.3.3 循环控制标签. 493 22.3.4 过滤器. 494 22.4 小结. 496 22.5 实战与练习. 496 第四篇 Python科学计算与数据分析第23章 科学计算库:NumPy 499 23.1 NumPy开发环境搭建. 499 23.2 第一个NumPy程序. 500 23.3 NumPy数组. 501 23.3.1 创建多维数组. 501 23.3.2 获取数组值和数组的分片. 502 23.3.3 改变数组的维度. 502 23.3.4 水平组合数组. 503 23.3.5 垂直数组组合. 505 23.3.6 水平分隔数组. 505 23.3.7 垂直分隔数组. 507 23.3.8 将数组转换为Python列表. 508 23.4 NumPy常用函数. 509 23.4.1 存取NumPy数组. 509 23.4.2 读写CSV文件. 510 23.4.3 成交量加权平均价格. 511 23.4.4 数组的最大值、最小值和取值范围. 512 23.4.5 计算数组的中位数和方差. 513 23.4.6 计算两只股票的相关性. 514 23.5 小结. 515 23.6 实战与练习. 515 第24章 数据可视化库:Matplotlib 516 24.1 Matplotlib开发环境搭建. 516 24.2 基础知识. 517 24.2.1 第一个Matplotlib程序. 517 24.2.2 绘制正弦曲线和余弦曲线. 518 24.2.3 绘制随机点. 519 24.2.4 绘制柱状图. 520 24.2.5 绘制直方图与盒状图. 521 24.2.6 绘制饼图. 523 24.3 定制颜色和样式. 524 24.3.1 定制曲线的颜色. 524 24.3.2 定制离散点的样式. 525 24.3.3 定制柱状图颜色. 526 24.3.4 定制饼图颜色. 526 24.3.5 定制曲线类型. 527 24.3.6 定制柱状图的填充模式. 528 24.4 注释. 529 24.4.1 在坐标系上显示标题. 529 24.4.2 使用LaTex格式的标题. 529 24.4.3 为X轴和Y轴添加注释. 530 24.4.4 在坐标系指定位置放置注释. 531 24.4.5 为文本注释添加Box 532 24.5 小结. 532 24.6 实战与练习. 533 第25章 数据分析库:Pandas 534 25.1 Pandas开发环境搭建. 534 25.2 样本数据集. 534 25.3 Pandas基础知识. 535 25.3.1 数据集的装载与基础操作. 535 25.3.2 查看数据集中的列. 536 25.3.3 查看数据集的行. 537 25.3.4 查看数据集单元格中的数据. 538 25.3.5 对数据集进行分组统计. 539 25.3.6 可视化统计数据. 540 25.4 Pandas数据类型. 541 25.4.1 创建Series 541 25.4.2 创建DataFrame 542 25.4.3 Series的基本操作. 543 25.4.4 Series的方法. 544 25.4.5 Series的条件过滤. 545 25.4.6 DataFrame的条件过滤. 546 25.5 小结. 547 25.6 实战与练习. 548 第五篇 Python Web爬虫技术第26章 网络爬虫与Beautiful Soup 551 26.1 网络爬虫基础. 551 26.1.1 爬虫分类. 552 26.1.2 编写第1个网络爬虫. 552 26.1.3 保存抓取的数据. 555 26.1.4 从百度抓取海量比基尼美女图片. 557 26.2 HTML分析库:Beautiful Soup 560 26.2.1 如何使用Beautiful Soup 560 26.2.2 Tag对象的name和string属性. 562 26.2.3 读写标签属性. 563 26.2.4 用Beautiful Soup分析京东首页的HTML代码. 564 26.2.5 通过回调函数过滤标签. 565 26.3 支持下载队列的多线程网络爬虫. 566 26.4 小结. 568 26.5 实战与练习. 568 第27章 网络爬虫框架:Scrapy 570 27.1 Scrapy基础知识. 570 27.1.1 Scrapy简介. 570 27.1.2 Scrapy安装. 571 27.1.3 Scrapy Shell抓取Web资源. 571 27.1.4 XPath入门. 573 27.2 用Scrapy编写网络爬虫. 574 27.2.1 创建和使用Scrapy工程. 574 27.2.2 在PyCharm中使用Scrapy 575 27.2.3 使用Scrapy抓取数据并通过XPath指定解析规则. 576 27.2.4 将抓取到的数据保存为多种格式的文件. 577 27.3 小结. 578 27.4 实战与练习. 578 第六篇 Python项目实战第28章 Web项目实战:基于 Flask的美团网. 581 28.1 项目概述. 581 28.1.1 项目效果演示. 581 28.1.2 项目工程结构. 582 28.2 美团网核心功能实现. 583 28.2.1 设计服务API 583 28.2.2 用Ajax技术与服务端交互. 584 28.3 Python与微信支付. 585 28.3.1 微信支付要准备的数据以及支付流程. 585 28.3.2 编写支付核心类WXPay 586 28.4 小结. 588 第29章 Web项目实战:基于Django的58同城. 589 29.1 项目效果演示. 589 29.2 操作MySQL数据库. 590 29.3 账号. 590 29.3.1 用户注册. 591 29.3.2 用户登录. 592 29.4 招聘页面. 594 29.5 二手车页面. 595 29.6 小结. 597 第30章 网络爬虫实战:天气预报服务API 598 30.1 项目效果演示. 598 30.2 建立MySQL数据库. 599 30.3 抓取天气预报数据. 599 30.4 编写天气预报服务API 600 30.5 实现Web版天气预报查询客户端. 601 30.6 小结. 601 第31章 爬虫项目实战:胸罩销售数据分析. 602 31.1 项目效果演示. 602 31.2 天猫胸罩销售数据. 604 31.2.1 天猫胸罩销售数据分析. 604 31.2.2 抓取天猫胸罩销售数据. 605 31.2.3 抓取胸罩商品列表. 605 31.2.4 将抓取的销售数据保存到SQLite数据库中. 606 31.3 京东胸罩销售数据. 607 31.3.1 京东胸罩销售数据分析. 607 31.3.2 抓取京东胸罩销售数据. 608 31.4 数据清洗. 609 31.5 数据分析与可视化. 611 31.5.1 用SQL语句分析胸罩(按罩杯尺寸)的销售比例. 611 31.5.2 用Pandas和Matplotlib对胸罩销售比例进行可视化分析. 612 31.5.3 按上胸围分析胸罩的销售比例. 613 31.5.4 罩杯和上胸围综合数据可视化分析. 614 31.5.5 统计哪一种颜色的胸罩卖得最好. 615 31.5.6 用盒状图与直方图表示罩杯与上胸围分布. 617 31.6 小结. 618 第32章 GUI项目实战:动态修改域名指向的IP 619 32.1 搭建开发环境. 619 32.2 项目效果演示. 619 32.3 获取公网IP 620 32.4 定时更新公网IP 621 32.5 更新域名对应的IP 622 32.6 小结. 623 第33章 游戏项目实战:俄罗斯方块. 624 33.1 搭建开发环境. 624 33.2 项目效果演示. 624 33.3 用户注册. 625 33.4 用户登录. 626 33.5 游戏界面绘制和渲染. 628 33.6 用按键控制游戏. 629 33.7 播放背景音乐. 630 33.8 用户积分. 631
33.9 小结. 632 |