自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (21)
  • 收藏
  • 关注

原创 chapter 1 项目首页

Web

2022-08-17 11:08:44 144 1

原创 ImportError: cannot import name ‘keras_tensor‘ from ‘tensorflow.python.keras.engine‘

问题:import tensorflow_addons as tfaImportError: cannot import name 'keras_tensor' from 'tensorflow.python.keras.engine'解决方法:这是TensorFlow,Pythonandtensorflow-addons版本不匹配引起的按照以下安装相应版本:...

2021-11-29 15:46:23 5061 1

原创 Graph Matching Networks for Learning the Similarity of Graph Structured Objects 研读

参考资料:1)https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/graph_matching_networks/graph_matching_networks.ipynb#scrollTo=F50gn0G_yZ3s2)原论文:https://arxiv.org/abs/1904.127873)参考博文:Graph Matching Networks for Learning the

2021-11-28 17:41:26 422

原创 安装torch-geometric失败,缺少libcusparse.so.11链接

改了三天的bug,三天呐·····························背景: linux系统出错问题:在安装或运行torch-geometric时失败 File "C:\Users\32373\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.py", line 356, in __init__ self._handle = _dlopen(self._name, mode) OSErr...

2021-11-20 15:53:35 2733 6

原创 2021-10-12

在运行 PyMol.MolViewer() 时出现问题:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法:在运行 PyMol.MolViewer()之前,在终端输入:pymol -R,前提是安装了pymol,这样就可以了...

2021-10-12 09:55:13 95

原创 webpack 打包文件

使用webpack.config.js 对文件进行打包过程:1、初始化当前文件夹:npm init在安装过程中,package-name自定义文件包名称,其他直接回车即可2、编辑webpack.config.js文件const path = require('path') //从外部导入path包module.export = { entry:'src/main.js', outpath:{ path: path.resolve(__dirname

2021-09-10 10:44:01 366

原创 gatedata graph digitier 基本使用

1、下载与安装官网下载地址:http://www.getdata-graph-digitizer.com/直接下载,并安装,傻瓜式·······2、从波形图中提取数据点本博文只讲解从波形图中提取,网上有很多教程都有讲到从折线图中提取数据,此时不再赘述。1)打开软件,导入目标图片file -> open -> 选择目标文件(一般为图片格式就可以了)。选择All 即所有图片格式将图片充满窗口2)选点A) 在对图片中数据进行选择前要先选择图片..

2020-12-17 10:43:48 3506 1

原创 chapter2--KNN算法

KNN算法是懒惰的学习算法,没有明显的训练过程,预测时只需要使用已经有标注(分类学习)的训练数据即可from numpy import*import operatorimport pdbimport matplotlibimport matplotlib.pyplot as pltfrom os import listdir#测试数据def createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])

2020-08-22 10:22:51 153

转载 解决python3缺少zlib的问题

记住下载安装zlib之后要对python重新编译链接https://www.cnblogs.com/galaxy-gao/p/5796488.html

2020-07-18 17:27:56 3312

原创 杂物堆

1、jupyter 字相关设置E:\software\Python3.7.6\Lib\site-packages\notebook\static\components\codemirror\lib在第一个css文件中

2020-05-28 10:46:49 249

原创 爬虫相关技术

1、re 正则表达式2、bs4 网页解析技术3、相关前端技术 js ajax html

2020-05-18 00:14:17 326

原创 爬虫相关

1、爬虫作用:采集网络数据,自动化测试(采用编写测试案例),网络攻击,2、相关知识储备 1)网络协议 2)前端基础 3)正则表达式 4)数据存储(mysql、分布式) 5)并发处理,多线程处理 6)图像处理(登陆验证)3、爬虫的监控和部署4、对js、ajax进行原理的了解,才能更好地对动态网页数据进行解析ajax是一种无须重新加载整个网页的情况下,能够部分更新网页的技术ajax =异步 js+xml...

2020-05-17 20:01:36 173

原创 Python 报错中心

1、输入:pip install pdb报错信息:Could not find a version that satisfies the requirement pdb (from versions: )No matching distribution found for pdbYou are using pip version 9.0.1, however version 20.1 is available.You should consider upgrading via the 'py...

2020-05-17 20:01:27 377

原创 Python虚拟环境设置

Python虚拟环境是为了代码有更好的可移植到其他平台中,其功能类似于docker在pycharm中自动配置虚拟环境1、file->new project ->pure python2、在cmd中安装virtualenvwrapper-win 、 virtualenvpip install -i https://pypi.doubanio.com/simple virtualenvwrapper-winpip install -i https://pypi.dou..

2020-05-16 18:06:14 438

原创 github使用

1、仓库:每个仓库中存放一个项目。2、star 收藏项目到当前用户下3、fork 转载(复制)别人项目到本地4、pull request --> 合并

2020-05-16 14:41:57 124

原创 numpy,pandas学习

01,17

2020-05-16 14:41:05 109

原创 2020.01.05

1、scrapy 将str转化为HTML用于xpathfrom scrapy.selector import Selectornames = Selector(text=datas).xpath("//div[contains(@class,'jDesc')]/a/text()").extract()2、selenium webdriver find_element_by_xpath(...

2020-01-11 21:53:51 159

原创 腾讯云服务器Ubuntu安装mysq并连接

腾讯云服务器是没有预先安装mysql的,服务器上的安装命令和本机的感觉不一样(忧伤)安装命令:sudo apt-get install mysql-server(不是 sudo apt-get install mysql/mysqld)创建用户:create user username identified by '123456';赋予所有权限:grant all on *.* t...

2019-12-31 12:48:59 116

原创 prime算法——最小生成树

根据,王道《数据结构》书中代码,所加注释,供大家参考若有差错,望请指正!//最小生成树prime算法,时间复杂度O(|V|^2),时间复杂度只与顶点个数有关,与边无关/*Gedge = { {A,B:3},{A,C:1},{A,E:4},{B,C:2},{C,D:5},{C,E:6}}*/#define MAX 1000 //可以更大void MinTree_P...

2019-08-25 22:49:14 790

原创 blog3 测试blog

一:测试工作:对于dao层的测试我们使用到了TestNg和dbunit已经spring-test-dbunit框架:在使用dbunit工具的使用使用到了一个<!-- dbutil测试工具的引入依赖 --><dependency><groupId>com.github.springtestdbunit</groupId><art...

2019-06-16 15:18:30 198

原创 Linux 下快速产生多个随机数

void randdata(int a[]){int i=0,; int t=RAND_MAX; srand((int)time(NULL)); for( t = 0; t < n;t++ ) { a[t] = rand(); }...

2019-06-10 00:27:50 777

转载 期末项目最终实现

5.29blog:(一)数据库设计部分:创建数据库hourse:1:关注表CREATE TABLE `guanzhu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) DEFAULT NULL, `hid` int(11) DEFAULT NULL, `time` datetime DEFAULT ...

2019-05-19 22:09:01 518

转载 期末项目 搜房网

诚意租房管理系统(一)需求分析:一款功能完整的租房系统可以很好为租客提供他们需要的房源,可以让他们足不出户的就了解到房子的信息,查找到适合是自己的房子,房东可以是更加便 利的把房子的信息进行发布,利用互联网可以更快的将信息进行传播。这一款系统可以很好的将房东和租客关联起来,这极大程度的解决了租客租房难,房东难出租的问题。另外租房问题的解决,可以让租客在无住房之忧,没有顾虑的租客可以更...

2019-05-06 17:14:25 1214

转载 spring boot application

spring boot默认已经配置了很多环境变量,例如,tomcat的默认端口是8080,项目的contextpath是“/”等等,spring boot允许你自定义一个application.properties文件,然后放在以下的地方,来重写spring boot的环境变量spring对配置application.properties的加载过程:服务启动调用:SpringApplica...

2019-04-17 15:18:39 163

转载 lamda expression

Lambda表达式是什么在解释Java Lambda Expression是什么之前,我们先来看看lambda表达式在Java语言中的表示形式。在Java中,每一个Lambda表达式都对应一个类型,(通常是接口类型)。在Java8以前,也即是Java Lambda Expression出现之前,Java API中充斥着很多函数是接口,即:仅仅包含了一个抽象方法的接口。在Java中,每一个该类型的...

2019-04-16 11:06:07 137

转载 domain logic approaches

为每个业务微服务或绑定上下文定义一个丰富域模型。你的目标是为每个业务微服务或绑定上下文 (BC) 创建一个内聚域模型。但请记住,BC 或业务微服务有时可能由共享一个域模型的多个物理服务组成。域模型必须捕获它所代表的单个绑定上下文或业务微服务的规则、行为、业务语言和约束。域实体模式实体表示域对象,主要由其标识、连续性和随时间推移的持久性来定义,而不仅仅由构成它们的属性来定义。正如 ...

2019-04-16 10:59:49 129

原创 数据库实验

实验要求:新建数据库表pet实验过程:C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql -uLiuKeling -p867425mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL...

2019-04-16 10:24:54 276

转载 spring AOP capabilities and goal

1.AOP的作用  在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加。AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。...

2019-04-10 14:59:52 127

转载 java CDI

一、decorator 模式 从毛胚房的装修说起每个人拿到属于自己的毛胚房时都兴奋不已,左看看右量量,筹划着装修的桩桩件件,憧憬着未来的幸福家园。每个人都希望装修完全按照自己的设想走,无论风格还是造价预算。可是装修这个活并不好干,同样的毛胚房有很多种装修方案,装修过程中也不可避免发生计划不如变化快的情形,往往最终的效果和最初的设想并不一致,这就是生活的实际。软件开发的某个阶段和...

2019-04-08 16:36:50 316

转载 java design patter

一、Factory Method基本概念FactoryMethod是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了.简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共...

2019-04-08 16:17:52 202

转载 Python 连接mysql数据库

Python标准数据库接口为Python DB-API, Python DB-API为开发人员提供了数据库应用 编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase你可以访问...

2019-04-02 11:13:52 164

转载 spring restful详解

上一篇文章讲解了通过Spring boot与JdbcTemplate、JPA和MyBatis的集成,实现对数据库的访问。今天主要给大家分享一下如何通过Spring boot向前端返回数据。在现在的开发流程中,为了最大程度实现前后端的分离,通常后端接口只提供数据接口,由前端通过Ajax请求从后端获取数据并进行渲染再展示给用户。我们用的最多的方式就是后端会返回给前端一个JSON字符串,前端解析JS...

2019-04-02 11:11:25 8284 1

转载 java ldap

LDAP 是轻量 目录访问协议,英文全称是 Lightweight Directory Access Protocol,一般都简称为 LDAP。LDAP 基于 X.500 标准的,但简单了许多并且可以根据需要进行定制。与 X.500 不同,LDAP 支持 TCP/IP。LDAP 的核心规范在 RFC 中都有定义,所有与 LDAP 相关的RFC 都可以在 LDAPman RFC 网页中找到。...

2019-04-02 11:01:07 351

转载 RESTful HATEOAS模式

什么是RESTfulREST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。翻译过来就是"表现层状态转化。” Fielding在论文中将REST定位为“分布式超媒体应用(Distributed Hypermedia System)”的架构风格,它在文中提到一个名为“HATEOAS(Hypermedia as the engine of applicat...

2019-04-01 11:32:49 567

转载 数据库的脏读,幻读,幻行的原理及解决方式

一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现×: 不会出现 脏读 不可重复读 幻读 Read uncommitted...

2019-03-26 10:50:38 9064

转载 java CDI

利用 CDI 和 JPA 开发 Servlet 应用 这是一个关于CDI的很好的学习网站关于 CDIJSR-299 规范原来叫做 Web Beans,其主要目的是为了整合 JSF 和 EJB。到 2009 年正式发布该规范时,JSR-299 已经改称 “Contexts and Dependency Injection for the Java EE platform”(简称 CDI )...

2019-03-25 15:58:58 205

转载 session和cookie的机制原理及运用

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。##Cookie机制## Cookie技术是客户端的...

2019-03-25 15:49:23 201

转载 java 正则表达式

正则表达式语法这里的表格记录了 java 中可用的所有正则表达式的元字符语法:子表达式 匹配对应 ^ 匹配一行的开头 $ 匹配一行的结尾 . 匹配除了换行符的任何单个字符,也可以利用 m 选项允许它匹配换行符 [...] 匹配括号内的任意单个字符。 [^...] 匹配不在括号内的任意单个字符。 \A 整个字符串的开始 \...

2019-03-23 23:06:41 127

转载 Java Servlet Filter

官方给出的Filter的定义是在请求一个资源或者从一个资源返回信息的时候执行过滤操作的插件。我们使用过滤起最多的场景估计就是在请求和返回时候的字符集转换,或者权限控制,比如一个用户没有登录不能请求某些资源。下面看一下Filter的集中类型:Authentication Filters Logging and Auditing Filters Image conversion Filter...

2019-03-19 22:33:11 191

转载 deployment descriptor

servlet写好这后你要部署(deployment )到服务器(如:tomcat),然后才能运行Descriptor是接口所有超级接口:Cloneable, Serializable所有已知实现类:DescriptorSupport, ImmutableDescriptor--------------------------------------------------------...

2019-03-18 10:36:40 1514

Django2-xadmin

这是最新的Django2.0+版本的xadmin插件,下载后直接在终端pip install 安装就可以了,不会像出现版本不兼容问题(Django2.0以后的哈)

2018-06-19

(2016英文版和中文版两本书)Python编程:从入门到实践.pdf高清

英文目录 Chapter 1: Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Chapter 2: Variables and Simple Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Chapter 3: Introducing Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Chapter 4: Working with Lists............................................ 53 Chapter 5: if Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Chapter 6: Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Chapter 7: User Input and while Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Chapter 8: Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Chapter 9: Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Chapter 10: Files and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Chapter 11: Testing Your Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Part II: Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Project 1: Alien Invasion Chapter 12: A Ship That Fires Bullets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Chapter 13: Aliens! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Chapter 14: Scoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 x Brief Contents Project 2: Data Visualization Chapter 15: Generating Data........................................... 321 Chapter 16: Downloading Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Chapter 17: Working with APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Project 3: Web Applications Chapter 18: Getting Started with Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Chapter 19: User Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Chapter 20: Styling and Deploying an App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 Afterword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 Appendix A: Installing Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 Appendix B: Text Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 Appendix C: Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 Appendix D: Using Git for Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 中文目录: 章 起步  2 1.1 搭建编程环境  2 1.1.1 Python 2和Python 3  2 1.1.2 运行Python代码片段  3 1.1.3 Hello World程序  3 1.2 在不同操作系统中搭建Python编程环境  3 1.2.1 在Linux系统中搭建Python编程环境  3 1.2.2 在OS X系统中搭建Python编程环境  6 1.2.3 在Windows系统中搭建Python编程环境  8 1.3 解决安装问题  12 1.4 从终端运行Python程序  13 1.4.1 在Linux和OS X系统中从终端运行Python程序  13 1.4.2 在Windows系统中从终端运行Python程序  13 1.5 小结  14 第2章 变量和简单数据类型  15 2.1 运行hello_world.py时发生的情况  15 2.2 变量  16 2.2.1 变量的命名和使用  16 2.2.2 使用变量时避免命名错误  17 2.3 字符串  18 2.3.1 使用方法修改字符串的大小写  19 2.3.2 合并(拼接)字符串  19 2.3.3 使用制表符或换行符来添加空白  20 2.3.4 删除空白  21 2.3.5 使用字符串时避免语法错误  22 2.3.6 Python 2中的print语句  23 2.4 数字  24 2.4.1 整数  24 2.4.2 浮点数  25 2.4.3 使用函数str()避免类型错误  25 2.4.4 Python 2中的整数  26 2.5 注释  27 2.5.1 如何编写注释  27 2.5.2 该编写什么样的注释  28 2.6 Python之禅  28 2.7 小结  30 第3章 列表简介  31 3.1 列表是什么  31 3.1.1 访问列表元素  32 3.1.2 索引从0而不是1开始  32 3.1.3 使用列表中的各个值  33 3.2 修改、添加和删除元素  33 3.2.1 修改列表元素  34 3.2.2 在列表中添加元素  34 3.2.3 从列表中删除元素  35 3.3 组织列表  39 3.3.1 使用方法sort()对列表进行永久性排序  39 3.3.2 使用函数sorted()对列表进行临时排序  40 3.3.3 倒着打印列表  41 3.3.4 确定列表的长度  41 3.4 使用列表时避免索引错误  42 3.5 小结  43 第4章 操作列表  44 4.1 遍历整个列表  44 4.1.1 深入地研究循环  45 4.1.2 在for循环中执行更多的操作  46 4.1.3 在for循环结束后执行一些操作  47 4.2 避免缩进错误  47 4.2.1 忘记缩进  48 4.2.2 忘记缩进额外的代码行  48 4.2.3 不必要的缩进  49 4.2.4 循环后不必要的缩进  49 4.2.5 遗漏了冒号  50 4.3 创建数值列表  51 4.3.1 使用函数range()  51 4.3.2 使用range()创建数字列表  51 4.3.3 对数字列表执行简单的统计计算  53 4.3.4 列表解析  53 4.4 使用列表的一部分  54 4.4.1 切片  54 4.4.2 遍历切片  56 4.4.3 复制列表  56 4.5 元组  59 4.5.1 定义元组  59 4.5.2 遍历元组中的所有值  59 4.5.3 修改元组变量  60 4.6 设置代码格式  61 4.6.1 格式设置指南  61 4.6.2 缩进  61 4.6.3 行长  61 4.6.4 空行  62 4.6.5 其他格式设置指南  62 4.7 小结  63 第5章 if语句  64 5.1 一个简单示例  64 5.2 条件测试  65 5.2.1 检查是否相等  65 5.2.2 检查是否相等时不考虑大小写  65 5.2.3 检查是否不相等  66 5.2.4 比较数字  67 5.2.5 检查多个条件  67 5.2.6 检查特定值是否包含在列表中  68 5.2.7 检查特定值是否不包含在列表中  69 5.2.8 布尔表达式  69 5.3 if语句  70 5.3.1 简单的if语句  70 5.3.2 if-else语句  71 5.3.3 if-elif-else结构  72 5.3.4 使用多个elif代码块  73 5.3.5 省略else代码块  74 5.3.6 测试多个条件  74 5.4 使用if语句处理列表  76 5.4.1 检查特殊元素  77 5.4.2 确定列表不是空的  78 5.4.3 使用多个列表  78 5.5 设置if语句的格式  80 5.6 小结  80 第6章 字典  81 6.1 一个简单的字典  81 6.2 使用字典  82 6.2.1 访问字典中的值  82 6.2.2 添加键—值对  83 6.2.3 先创建一个空字典  83 6.2.4 修改字典中的值  84 6.2.5 删除键—值对  85 6.2.6 由类似对象组成的字典  86 6.3 遍历字典  87 6.3.1 遍历所有的键—值对  87 6.3.2 遍历字典中的所有键  89 6.3.3 按顺序遍历字典中的所有键  91 6.3.4 遍历字典中的所有值  91 6.4 嵌套  93 6.4.1 字典列表  93 6.4.2 在字典中存储列表  95 6.4.3 在字典中存储字典  97 6.5 小结  99 第7章 用户输入和while循环  100 7.1 函数input()的工作原理  100 7.1.1 编写清晰的程序  101 7.1.2 使用int()来获取数值输入  102 7.1.3 求模运算符  103 7.1.4 在Python 2.7中获取输入  104 7.2 while循环简介  104 7.2.1 使用while循环  104 7.2.2 让用户选择何时退出  105 7.2.3 使用标志  106 7.2.4 使用break退出循环  107 7.2.5 在循环中使用continue  108 7.2.6 避免无限循环  109 7.3 使用while循环来处理列表和字典  110 7.3.1 在列表之间移动元素  110 7.3.2 删除包含特定值的所有列表元素  111 7.3.3 使用用户输入来填充字典  112 7.4 小结  113 第8章 函数  114 8.1 定义函数  114 8.1.1 向函数传递信息  115 8.1.2 实参和形参  115 8.2 传递实参  116 8.2.1 位置实参  116 8.2.2 关键字实参  118 8.2.3 默认值  118 8.2.4 等效的函数调用  119 8.2.5 避免实参错误  120 8.3 返回值  121 8.3.1 返回简单值  121 8.3.2 让实参变成可选的  122 8.3.3 返回字典  123 8.3.4 结合使用函数和while循环  124 8.4 传递列表  126 8.4.1 在函数中修改列表  126 8.4.2 禁止函数修改列表  129 8.5 传递任意数量的实参  130 8.5.1 结合使用位置实参和任意数量实参  131 8.5.2 使用任意数量的关键字实参  131 8.6 将函数存储在模块中  133 8.6.1 导入整个模块  133 8.6.2 导入特定的函数  134 8.6.3 使用as给函数指定别名  134 8.6.4 使用as给模块指定别名  135 8.6.5 导入模块中的所有函数  135 8.7 函数编写指南  136 8.8 小结  137 第9章 类  138 9.1 创建和使用类  138 9.1.1 创建Dog类  139 9.1.2 根据类创建实例  140 9.2 使用类和实例  142 9.2.1 Car类  143 9.2.2 给属性指定默认值  143 9.2.3 修改属性的值  144 9.3 继承  147 9.3.1 子类的方法__init__()  147 9.3.2 Python 2.7中的继承  149 9.3.3 给子类定义属性和方法  149 9.3.4 重写父类的方法  150 9.3.5 将实例用作属性  150 9.3.6 模拟实物  152 9.4 导入类  153 9.4.1 导入单个类  153 9.4.2 在一个模块中存储多个类  155 9.4.3 从一个模块中导入多个类  156 9.4.4 导入整个模块  157 9.4.5 导入模块中的所有类  157 9.4.6 在一个模块中导入另一个模块  157 9.4.7 自定义工作流程  158 9.5 Python标准库  159 9.6 类编码风格  161 9.7 小结  161 第10章 文件和异常  162 10.1 从文件中读取数据  162 10.1.1 读取整个文件  162 10.1.2 文件路径  164 10.1.3 逐行读取  165 10.1.4 创建一个包含文件各行内容的列表  166 10.1.5 使用文件的内容  166 10.1.6 包含一百万位的大型文件  168 10.1.7 圆周率值中包含你的生日吗  168 10.2 写入文件  169 10.2.1 写入空文件  170 10.2.2 写入多行  170 10.2.3 附加到文件  171 10.3 异常  172 10.3.1 处理ZeroDivisionError异常  172 10.3.2 使用try-except 代码块  173 10.3.3 使用异常避免崩溃  173 10.3.4 else 代码块  174 10.3.5 处理FileNotFoundError异常  175 10.3.6 分析文本  176 10.3.7 使用多个文件  177 10.3.8 失败时一声不吭  178 10.3.9 决定报告哪些错误  179 10.4 存储数据  180 10.4.1 使用json.dump()和json.load()  180 10.4.2 保存和读取用户生成的数据  181 10.4.3 重构  183 10.5 小结  186 第11章 测试代码  187 11.1 测试函数  187 11.1.1 单元测试和测试用例  188 11.1.2 可通过的测试  188 11.1.3 不能通过的测试  190 11.1.4 测试未通过时怎么办  191 11.1.5 添加新测试  191 11.2 测试类  193 11.2.1 各种断言方法  193 11.2.2 一个要测试的类  194 11.2.3 测试AnonymousSurvey类  195 11.2.4 方法setUp()  197 11.3 小结  199 第二部分 项 目 项目1 外星人入侵  202 第12章 武装飞船  203 12.1 规划项目  203 12.2 安装Pygame  204 12.2.1 使用pip安装Python包  204 12.2.2 在Linux系统中安装Pygame  206 12.2.3 在OS X系统中安装Pygame  207 12.2.4 在Windows系统中安装Pygame  207 12.3 开始游戏项目  207 12.3.1 创建Pygame窗口以及响应用户输入  208 12.3.2 设置背景色  209 12.3.3 创建设置类  210 12.4 添加飞船图像  211 12.4.1 创建Ship类  212 12.4.2 在屏幕上绘制飞船  213 12.5 重构:模块game_functions  214 12.5.1 函数check_events()  214 12.5.2 函数update_screen()  215 12.6 驾驶飞船  216 12.6.1 响应按键  216 12.6.2 允许不断移动  217 12.6.3 左右移动  219 12.6.4 调整飞船的速度  220 12.6.5 限制飞船的活动范围  221 12.6.6 重构check_events()  222 12.7 简单回顾  223 12.7.1 alien_invasion.py  223 12.7.2 settings.py  223 12.7.3 game_functions.py  223 12.7.4 ship.py  223 12.8 射击  224 12.8.1 添加子弹设置  224 12.8.2 创建Bullet类  224 12.8.3 将子弹存储到编组中  226 12.8.4 开火  227 12.8.5 删除已消失的子弹  228 12.8.6 限制子弹数量  229 12.8.7 创建函数update_bullets()  229 12.8.8 创建函数fire_bullet()  230 12.9 小结  231 第13章 外星人  232 13.1 回顾项目  232 13.2 创建第一个外星人  233 13.2.1 创建Alien类  233 13.2.2 创建Alien实例  234 13.2.3 让外星人出现在屏幕上  235 13.3 创建一群外星人  236 13.3.1 确定一行可容纳多少个外星人  236 13.3.2 创建多行外星人  236 13.3.3 创建外星人群  237 13.3.4 重构create_fleet()  239 13.3.5 添加行  240 13.4 让外星人群移动  242 13.4.1 向右移动外星人  243 13.4.2 创建表示外星人移动方向的设置  244 13.4.3 检查外星人是否撞到了屏幕边缘  244 13.4.4 向下移动外星人群并改变移动方向  245 13.5 射杀外星人  246 13.5.1 检测子弹与外星人的碰撞  246 13.5.2 为测试创建大子弹  247 13.5.3 生成新的外星人群  248 13.5.4 提高子弹的速度  249 13.5.5 重构update_bullets()  249 13.6 结束游戏  250 13.6.1 检测外星人和飞船碰撞  250 13.6.2 响应外星人和飞船碰撞  251 13.6.3 有外星人到达屏幕底端  254 13.6.4 游戏结束  255 13.7 确定应运行游戏的哪些部分  255 13.8 小结  256 第14章 记分  257 14.1 添加Play 按钮  257 14.1.1 创建Button类  258 14.1.2 在屏幕上绘制按钮  259 14.1.3 开始游戏  261 14.1.4 重置游戏  261 14.1.5 将Play 按钮切换到非活动状态  263 14.1.6 隐藏光标  263 14.2 提高等级  264 14.2.1 修改速度设置  264 14.2.2 重置速度  266 14.3 记分  267 14.3.1 显示得分  267 14.3.2 创建记分牌  268 14.3.3 在外星人被消灭时更新得分  270 14.3.4 将消灭的每个外星人的点数都计入得分  271 14.3.5 提高点数  271 14.3.6 将得分圆整  272 14.3.7 最高得分  274 14.3.8 显示等级  276 14.3.9 显示余下的飞船数  279 14.4 小结  283 项目2 数据可视化  284 第15章 生成数据  285 15.1 安装matplotlib  285 15.1.1 在Linux系统中安装matplotlib  286 15.1.2 在OS X系统中安装matplotlib  286 15.1.3 在Windows系统中安装matplotlib  286 15.1.4 测试matplotlib  287 15.1.5 matplotlib画廊  287 15.2 绘制简单的折线图  287 15.2.1 修改标签文字和线条粗细  288 15.2.2 校正图形  289 15.2.3 使用scatter()绘制散点图并设置其样式  290 15.2.4 使用scatter()绘制一系列点  291 15.2.5 自动计算数据  292 15.2.6 删除数据点的轮廓  293 15.2.7 自定义颜色  293 15.2.8 使用颜色映射  294 15.2.9 自动保存图表  295 15.3 随机漫步  295 15.3.1 创建RandomWalk()类  296 15.3.2 选择方向  296 15.3.3 绘制随机漫步图  297 15.3.4 模拟多次随机漫步  298 15.3.5 设置随机漫步图的样式  299 15.3.6 给点着色  299 15.3.7 重新绘制起点和终点  300 15.3.8 隐藏坐标轴  301 15.3.9 增加点数  301 15.3.10 调整尺寸以适合屏幕  302 15.4 使用Pygal模拟掷骰子  303 15.4.1 安装Pygal  304 15.4.2 Pygal画廊  304 15.4.3 创建Die类  304 15.4.4 掷骰子  305 15.4.5 分析结果  305 15.4.6 绘制直方图  306 15.4.7 同时掷两个骰子  307 15.4.8 同时掷两个面数不同的骰子  309 15.5 小结  311 第16章 下载数据  312 16.1 CSV文件格式  312 16.1.1 分析CSV文件头  313 16.1.2 打印文件头及其位置  314 16.1.3 提取并读取数据  314 16.1.4 绘制气温图表  315 16.1.5 模块datetime  316 16.1.6 在图表中添加日期  317 16.1.7 涵盖更长的时间  318 16.1.8 再绘制一个数据系列  319 16.1.9 给图表区域着色  320 16.1.10 错误检查  321 16.2 制作世界人口地图:JSON格式  324 16.2.1 下载世界人口数据  324 16.2.2 提取相关的数据  324 16.2.3 将字符串转换为数字值  326 16.2.4 获取两个字母的国别码  327 16.2.5 制作世界地图  329 16.2.6 在世界地图上呈现数字数据  330 16.2.7 绘制完整的世界人口地图  331 16.2.8 根据人口数量将国家分组  333 16.2.9 使用Pygal设置世界地图的样式  334 16.2.10 加亮颜色主题  335 16.3 小结  337 第17章 使用API  338 17.1 使用Web API  338 17.1.1 Git和GitHub  338 17.1.2 使用API调用请求数据  339 17.1.3 安装requests  339 17.1.4 处理API响应  340 17.1.5 处理响应字典  340 17.1.6 概述最受欢迎的仓库  342 17.1.7 监视API的速率限制  343 17.2 使用Pygal可视化仓库  344 17.2.1 改进Pygal图表  346 17.2.2 添加自定义工具提示  347 17.2.3 根据数据绘图  349 17.2.4 在图表中添加可单击的链接  350 17.3 Hacker News API  350 17.4 小结  353 项目3 Web 应用程序  354 第18章 Django入门  355 18.1 建立项目  355 18.1.1 制定规范  355 18.1.2 建立虚拟环境  356 18.1.3 安装virtualenv  356 18.1.4 激活虚拟环境  357 18.1.5 安装Django  357 18.1.6 在Django中创建项目  357 18.1.7 创建数据库  358 18.1.8 查看项目  359 18.2 创建应用程序  360 18.2.1 定义模型  360 18.2.2 激活模型  362 18.2.3 Django管理网站  363 18.2.4 定义模型Entry  365 18.2.5 迁移模型Entry  366 18.2.6 向管理网站注册Entry  366 18.2.7 Django shell  367 18.3 创建网页:学习笔记主页  369 18.3.1 映射URL  369 18.3.2 编写视图  371 18.3.3 编写模板  372 18.4 创建其他网页  373 18.4.1 模板继承  373 18.4.2 显示所有主题的页面  375 18.4.3 显示特定主题的页面  378 18.5 小结  381 第19章 用户账户  382 19.1 让用户能够输入数据  382 19.1.1 添加新主题  382 19.1.2 添加新条目  386 19.1.3 编辑条目  390 19.2 创建用户账户  392 19.2.1 应用程序users  393 19.2.2 登录页面  394 19.2.3 注销  396 19.2.4 注册页面  397 19.3 让用户拥有自己的数据  400 19.3.1 使用@login_required限制访问  400 19.3.2 将数据关联到用户  402 19.3.3 只允许用户访问自己的主题  405 19.3.4 保护用户的主题  405 19.3.5 保护页面edit_entry  406 19.3.6 将新主题关联到当前用户  406 19.4 小结  408 第20章 设置应用程序的样式并对其进行部署  409 20.1 设置项目“学习笔记”的样式  409 20.1.1 应用程序django-bootstrap3  410 20.1.2 使用Bootstrap来设置项目“学习笔记”的样式  411 20.1.3 修改base.html  411 20.1.4 使用jumbotron设置主页的样式  414 20.1.5 设置登录页面的样式  415 20.1.6 设置new_topic页面的样式  416 20.1.7 设置topics页面的样式  417 20.1.8 设置topic页面中条目的样式  417 20.2 部署“学习笔记”  419 20.2.1 建立Heroku账户  420 20.2.2 安装Heroku Toolbelt  420 20.2.3 安装必要的包  420 20.2.4 创建包含包列表的文件requirements.txt  421 20.2.5 指定Python版本  422 20.2.6 为部署到Herohu而修改settings.py  422 20.2.7 创建启动进程的Procfile  423 20.2.8 为部署到Herohu而修改wsgi.py  423 20.2.9 创建用于存储静态文件的目录  424 20.2.10 在本地使用gunicorn服务器  424 20.2.11 使用Git跟踪项目文件  425 20.2.12 推送到Heroku  426 20.2.13 在Heroku上建立数据库  427 20.2.14 改进Heroku部署  428 20.2.15 确保项目的安全  429 20.2.16 提交并推送修改  430 20.2.17 创建自定义错误页面  431 20.2.18 继续开发  434 20.2.19 设置SECRET_KEY  434 20.2.20 将项目从Heroku删除  434 20.3 小结  435 附录A 安装Python  436 附录B 文本编辑器  441 附录C 寻求帮助  447 附录D 使用Git进行版本控制  451

2018-05-25

Multiple View Geometry in Computer Vision Second Edition

高清非扫描,是文档类的PDF版本,下面附上书的目录 作者: Richard Hartley / Andrew Zisserman 出版社: Cambridge University Press 出版年: 2004-4-19 页数: 670 定价: USD 139.00 1 Introduction – a Tour of Multiple View Geometry 1 1.1 Introduction – the ubiquitous projective geometry 1 1.2 Camera projections 6 1.3 Reconstruction from more than one view 10 1.4 Three-view geometry 12 1.5 Four view geometry and n-view reconstruction 13 1.6 Transfer 14 1.7 Euclidean reconstruction 16 1.8 Auto-calibration 17 1.9 The reward I : 3D graphical models 18 1.10 The reward II: video augmentation 19 PART 0: The Background: Projective Geometry, Transformations and Estimation 23 Outline 24 2 Projective Geometry and Transformations of 2D 25 2.1 Planar geometry 25 2.2 The 2D projective plane 26 2.3 Projective transformations 32 2.4 A hierarchy of transformations 37 2.5 The projective geometry of 1D 44 2.6 Topology of the projective plane 46 2.7 Recovery of affine and metric properties from images 47 2.8 More properties of conics 58 2.9 Fixed points and lines 61 2.10 Closure 62 3 Projective Geometry and Transformations of 3D 65 3.1 Points and projective transformations 65 3.2 Representing and transforming planes, lines and quadrics 66 v vi Contents 3.3 Twisted cubics 75 3.4 The hierarchy of transformations 77 3.5 The plane at infinity 79 3.6 The absolute conic 81 3.7 The absolute dual quadric 83 3.8 Closure 85 4 Estimation – 2D Projective Transformations 87 4.1 The Direct Linear Transformation (DLT) algorithm 88 4.2 Different cost functions 93 4.3 Statistical cost functions and Maximum Likelihood estimation 102 4.4 Transformation invariance and normalization 104 4.5 Iterative minimization methods 110 4.6 Experimental comparison of the algorithms 115 4.7 Robust estimation 116 4.8 Automatic computation of a homography 123 4.9 Closure 127 5 Algorithm Evaluation and Error Analysis 132 5.1 Bounds on performance 132 5.2 Covariance of the estimated transformation 138 5.3 Monte Carlo estimation of covariance 149 5.4 Closure 150 PART I: Camera Geometry and Single View Geometry 151 Outline 152 6 Camera Models 153 6.1 Finite cameras 153 6.2 The projective camera 158 6.3 Cameras at infinity 166 6.4 Other camera models 174 6.5 Closure 176 7 Computation of the Camera Matrix P 178 7.1 Basic equations 178 7.2 Geometric error 180 7.3 Restricted camera estimation 184 7.4 Radial distortion 189 7.5 Closure 193 8 More Single View Geometry 195 8.1 Action of a projective camera on planes, lines, and conics 195 8.2 Images of smooth surfaces 200 8.3 Action of a projective camera on quadrics 201 8.4 The importance of the camera centre 202 8.5 Camera ca Contents vii 8.6 Vanishing points and vanishing lines 213 8.7 Affine 3D measurements and reconstruction 220 8.8 Determining camera calibration K from a single view 223 8.9 Single view reconstruction 229 8.10 The calibrating conic 231 8.11 Closure 233 PART II: Two-View Geometry 237 Outline 238 9 Epipolar Geometry and the Fundamental Matrix 239 9.1 Epipolar geometry 239 9.2 The fundamental matrix F 241 9.3 Fundamental matrices arising from special motions 247 9.4 Geometric representation of the fundamental matrix 250 9.5 Retrieving the camera matrices 253 9.6 The essential matrix 257 9.7 Closure 259 10 3D Reconstruction of Cameras and Structure 262 10.1 Outline of reconstruction method 262 10.2 Reconstruction ambiguity 264 10.3 The projective reconstruction theorem 266 10.4 Stratified reconstruction 267 10.5 Direct reconstruction – using ground truth 275 10.6 Closure 276 11 Computation of the Fundamental Matrix F 279 11.1 Basic equations 279 11.2 The normalized 8-point algorithm 281 11.3 The algebraic minimization algorithm 282 11.4 Geometric distance 284 11.5 Experimental evaluation of the algorithms 288 11.6 Automatic computation of F 290 11.7 Special cases of F-computation 293 11.8 Correspondence of other entities 294 11.9 Degeneracies 295 11.10 A geometric interpretation of F-computation 297 11.11 The envelope of epipolar lines 298 11.12 Image rectification 302 11.13 Closure 308 12 Structure Computation 310 12.1 Problem statement 310 12.2 Linear triangulation methods 312 12.3 Geometric error cost function 313 12.4 Sampson approximation (first-order geometric correction) 314 viii Contents 12.5 An optimal solution 315 12.6 Probability distribution of the estimated 3D point 321 12.7 Line reconstruction 321 12.8 Closure 323 13 Scene planes and homographies 325 13.1 Homographies given the plane and vice versa 326 13.2 Plane induced homographies given F and image correspondences 329 13.3 Computing F given the homography induced by a plane 334 13.4 The infinite homography H∞ 338 13.5 Closure 340 14 Affine Epipolar Geometry 344 14.1 Affine epipolar geometry 344 14.2 The affine fundamental matrix 345 14.3 Estimating FA from image point correspondences 347 14.4 Triangulation 353 14.5 Affine reconstruction 353 14.6 Necker reversal and the bas-relief ambiguity 355 14.7 Computing the motion 357 14.8 Closure 360 PART III: Three-View Geometry 363 Outline 364 15 The Trifocal Tensor 365 15.1 The geometric basis for the trifocal tensor 365 15.2 The trifoc Contents ix 17.3 Quadrilinear relations 418 17.4 Intersections of four planes 421 17.5 Counting arguments 422 17.6 Number of independent equations 428 17.7 Choosing equations 431 17.8 Closure 432 18 N-View Computational Methods 434 18.1 Projective reconstruction – bundle adjustment 434 18.2 Affine reconstruction – the factorization algorithm 436 18.3 Non-rigid factorization 440 18.4 Projective factorization 444 18.5 Projective reconstruction using planes 447 18.6 Reconstruction from sequences 452 18.7 Closure 456 19 Auto-Calibration 458 19.1 Introduction 458 19.2 Algebraic framework and problem statement 459 19.3 Calibration using the absolute dual quadric 462 19.4 The Kruppa equations 469 19.5 A stratified solution 473 19.6 Calibration from rotating cameras 481 19.7 Auto-calibration from planes 485 19.8 Planar motion 486 19.9 Single axis rotation – turntable motion 490 19.10 Auto-calibration of a stereo rig 493 19.11 Closure 497 20 Duality 502 20.1 Carlsson–Weinshall duality 502 20.2 Reduced reconstruction 508 20.3 Closure 513 21 Cheirality 515 21.1 Quasi-affine transformations 515 21.2 Front and back of a camera 518 21.3 Three-dimensional point sets 519 21.4 Obtaining a quasi-affine reconstruction 520 21.5 Effect of transformations on cheirality 521 21.6 Orientation 523 21.7 The cheiral inequalities 525 21.8 Which points are visible in a third view 528 21.9 Which points are in front of which 530 21.10 Closure 531 x Contents 22 Degenerate Configurations 533 22.1 Camera resectioning 533 22.2 Degeneracies in two views 539 22.3 Carlsson–Weinshall duality 546 22.4 Three-view critical configurations 553 22.5 Closure 558

2018-05-08

python-Vue+Django API电商网站-视频-代码全套

python Vue+Django实现 商品管理 / 手机注册和登录 用户收藏管理 / 订单管理 购物车管理 / 支付管理 第三方登录 / Sentry错误日志监控 重点讲解RESTFul API知识

2018-05-01

2018最新版Chromedriver-windows和linux两个版本

python爬虫动态网页必备 Selenium库,但是它是一个自动化测试工具,需要浏览器来配合使用,因为只有安装ChromeDriver,才能驱动Chrome浏览器完成相应的操作。

2018-04-30

《汇编语言》-第三版-王爽-以及课后答案

第1章 基础知识 1.1 机器语言 1.2 汇编语言的产生 1.3 汇编语言的组成 1.4 存储器 1.5 指令和数据 1.6 存储单元 1.7 CPU对存储器的读写 1.8 地址总线 1.9 数据总线 1.10 控制总线 1.11 内存地址空间(概述) 1.12 主板 1.13 接口卡 1.14 各类存储器芯片 1.15 内存地址空间 第2章 寄存器 2.1通用寄存器 2.2字在寄存器中的存储 2.3几条汇编指令 2.4物理地址 2.516位结构的CPU 2.68086CPU给出物理地址的方法 2.7“段地址×16+偏移地址=物理地址” 的本质含义 2.8段的概念 2.9段寄存器 2.10CS和IP 2.11修改CS、IP的指令 2.12代码段 实验1查看CPU和内存,用机器指令 和汇编指令编程 第3章寄存器(内存访问) 3.1内存中字的存储 3.2DS和(address) 3.3字的传送 3.4mov、add、sub指令 3.5数据段 3.6栈 3.7CPU提供的栈机制 3.8栈顶超界的问题 3.9push、pop指令 3.10栈段 实验2用机器指令和汇编指令编程 第4章第一个程序 4.1一个源程序从写出到执行的过程 4.2源程序 4.3编辑源程序 4.4编译 4.5连接 4.6以简化的方式进行编译和连接 4.71.exe的执行 4.8谁将可执行文件中的程序装载进入 内存并使它运行? 4.9程序执行过程的跟踪 实验3编程、编译、连接、跟踪 第5章(BX)和loop指令 5.1(BX) 5.2Loop指令 5.3在Debug中跟踪用loop指令实现的 循环程序 5.4Debug和汇编编译器masm对指令的 不同处理 5.5loop和(bx)的联合应用 5.6段前缀 5.7一段安全的空间 5.8段前缀的使用 实验4(bx)和loop的使用 第6章 包含多个段的程序 6.1在代码段中使用数据 6.2在代码段中使用栈 6.3将数据、代码、栈放入不同的段 实验5编写、调试具有多个段的程序 第7章更灵活的定位内存地址的 方法 7.1anol和or指令 7.2关于ASCII码 7.3以字符形式给出的数据 7.4大小写转换的问题 7.5(bx+idata) 7.6用(bx+idata)的方式进行数组的 处理 7.7SI和DI 7.8(bx+si)和(bx+di) 7.9(bx+si+idata)和(bx+di+idata) 7.10不同的寻址方式的灵活应用 实验6实践课程中的程序 第8章数据处理的两个基本问题 8.1bx、si、di和bp 8.2机器指令处理的数据在什么地方 8.3汇编语言中数据位置的表达 8.4寻址方式 8.5指令要处理的数据有多长 8.6寻址方式的综合应用 8.7div指令 8.8伪指令dd 8.9dup 实验7寻址方式在结构化数据访问中的 应用 第9章转移指令的原理 9.1操作符offset 9.2jmp指令 9.3依据位移进行转移的jmp指令 9.4转移的目的地址在指令中的jmp 指令 9.5转移地址在寄存器中的jmp指令 9.6转移地址在内存中的jmp指令 9.7jcxz指令 9.8loop指令 9.9根据位移进行转移的意义 9.10编译器对转移位移超界的检测 实验8分析一个奇怪的程序 实验9根据材料编程 第10章CALL和RET指令 10.1ret和retf 10.2call指令 10.3依据位移进行转移的call指令 10.4转移的目的地址在指令中的call 指令 10.5转移地址在寄存器中的call指令 10.6转移地址在内存中的call指令 10.7call和ret的配合使用 10.8mul指令 10.9模块化程序设计 10.10参数和结果传递的问题 10.11批量数据的传递 10.12寄存器冲突的问题 实验10编写子程序 课程设计1 第11章标志寄存器 11.1ZF标志 11.2PF标志 11.3SF标志 11.4CF标志 11.5OF标志 11.6adc指令 11.7sbb指令 11.8cmp指令 11.9检测比较结果的条件转移指令 11.10DF标志和串传送指令 11.11pushf和popf 11.12标志寄存器在Debug中的表示 实验11编写子程序 第12章内中断 12.1内中断的产生 12.2中断处理程序 12.3中断向量表 12.4中断过程 12.5中断处理程序和iret指令 12.6除法错误中断的处理 12.7编程处理0号中断 12.8安装 12.9do0 12.10设置中断向量 12.11单步中断 12.12响应中断的特殊情况 实验12编写0号中断的处理程序 第13章int指令 13.1int指令 13.2编写供应用程序调用的 中断例程 13.3对int、iret和栈的深入理解 13.4BIOS和DOS所提供的 中断例程 13.5BIOS和DOS中断例程的 安装过程 13.6BIOS中断例程应用 13.7DOS中断例程应用 实验13编写、应用中断例程 第14章端口 14.1端口的读写 14.2CMOS RAM芯片 14.3shl和shr指令 14.4CMOS RAM中存储的时间信息 实验14访问CMOS RAM 第15章外中断 15.1接口芯片和端口 15.2外中断信息 15.3PC机键盘的处理过程 15.4编写int 9中断例程 15.5安装新的int 9中断例程 实验15安装新的int 9中断例程 第16章直接定址表 16.1描述了单元长度的标号 16.2在其他段中使用数据标号 16_3直接定址表 16.4程序入口地址的直接定址表 实验16编写包含多个功能子程序的 中断例程 第17章使用BIOS进行键盘输入 和磁盘读写 17.1int 9中断例程对键盘输入的处理 17.2使用int 16h中断例程读取 键盘缓冲区 17.3字符串的输入 17.4应用int 13h中断例程对磁盘 进行读写 实验17编写包含多个功能子程序的 中断例程 课程设计2 综合研究 研究试验1搭建一个精简的C语言 开发环境 研究试验2使用寄存器 研究试验3使用内存空间 研究试验4不用main函数编程 研究试验5函数如何接收不定数量的 参数 附注 附注1Intel系列微处理器的3种工作 模式 附注2补码 附注3汇编编译器(masm.exe)对jmp的 相关处理 附注4用栈传递参数 附注5公式证明

2018-04-15

四篇优秀毕业设计-基于.net电影院售票系统

四篇优秀毕业设计-基于.net电影院售票系统 第一篇:基于ASP.NET的电影院售票管理系统 C#+XML 第二篇:.net 电影院售票系统源码 第三篇:asp.net电影院售票系统网站,采用了ASP.NET技术开发,是一款以电影售票为主的网站。 第四篇:.net影院售票系统完整版本源码

2018-03-28

scrapy 分布式爬虫全集

scrapy 9个G视频 其中包括爬虫入门,虚拟环境搭建,对scrapy的调试,对动态网站的爬取,scrapy与mysql的使用,scrapy-redis分布式爬虫的使用, elasticsearch搜索引擎的使用, scrapyd部署scrapy爬虫。等相关内容

2018-03-17

PID控制算法算法C语言描述

其中有关于pid牧户算法的五个资源 第一个:PID控制算法的C语言实现(完整版),适合简单的PID算法实现。 第二个:主要讲述了模糊PID算法在直流电机控制系统中的应用 第三个:可以直接在TC运行,用模糊控制的方法调试KP、KI、KD参数 第四个:模糊自整定PID控制c代码,三角隶属函数,输出最大隶属,增量式PID输出。 第五个:STM32实现PID算法,很实用,可以参考实际执行机构修改参数即可完成控制!

2018-03-16

es6入门课程_第三版_(阮一峰版)_网盘链接

第1章 ECMAScript 6简介 1 1.1 ECMAScript和JavaScript的关系 1 1.2 ES6与ECMAScript 2015的关系 1 1.3 语法提案的批准流程 2 1.4 ECMAScript的历史 3 1.5 部署进度 4 1.6 Babel 转码器 4 1.6.1 配置文件.babelrc 5 1.6.2 命令行转码babel-cli 6 1.6.3 babel-node 7 1.6.4 babel-register 8 1.6.5 babel-core 8 1.6.6 babel-polyfill 9 1.6.7 浏览器环境 10 1.6.8 在线转换 10 1.6.9 与其他工具的配合 11 1.7 Traceur转码器 11 1.7.1 直接插入网页 12 1.7.2 在线转换 13 1.7.3 命令行转换 14 1.7.4 Node环境的用法 15 第2章 let和const命令 17 2.1 let 命令 17 2.1.1 基本用法 17 2.1.2 不存在变量提升 19 2.1.3 暂时性死区 19 2.1.4 不允许重复声明 21 2.2 块级作用域 22 2.2.1 为什么需要块级作用域 22 2.2.2 ES6的块级作用域 23 2.2.3 块级作用域与函数声明 24 2.2.4 do表达式 27 2.3 const命令 28 2.3.1 基本用法 28 2.3.2 本质 29 2.3.3 ES6声明变量的6种方法 30 2.4 顶层对象的属性 30 2.5 global对象 31 第3章 变量的解构赋值 33 3.1 数组的解构赋值 33 3.1.1 基本用法 33 3.1.2 默认值 35 3.2 对象的解构赋值 37 3.3 字符串的解构赋值 41 3.4 数值和布尔值的解构赋值 41 3.5 函数参数的解构赋值 42 3.6 圆括号问题 43 3.6.1 不能使用圆括号的情况 43 3.6.2 可以使用圆括号的情况 44 3.7 用途 44 第4章 字符串的扩展 49 4.1 字符的Unicode表示法 49 4.2 codePointAt() 50 4.3 String.fromCodePoint() 52 4.4 字符串的遍历器接口 52 4.5 at() 53 4.6 normalize() 53 4.7 includes()、startsWith()、endsWith() 54 4.8 repeat() 55 4.9 padStart()、padEnd() 56 4.10 模板字符串 57 4.11 实例:模板编译 60 4.12 标签模板 62 4.13 String.raw() 67 4.14 模板字符串的限制 68 第5章 正则的扩展 71 5.1 RegExp构造函数 71 5.2 字符串的正则方法 72 5.3 u修饰符 72 5.4 y修饰符 74 5.5 sticky属性 77 5.6 flags属性 77 5.7 s修饰符:dotAll模式 78 5.8 后行断言 79 5.9 Unicode属性类 80 5.10 具名组匹配 81 5.10.1 简介 81 5.10.2 解构赋值和替换 82 5.10.3 引用 83 第6章 数值的扩展 85 6.1 二进制和八进制表示法 85 6.2 Number.isFinite()、Number.isNaN() 86 6.3 Number.parseInt()、Number.parseFloat() 87 6.4 Number.isInteger() 88 6.5 Number.EPSILON 88 6.6 安全整数和Number.isSafeInteger() 89 6.7 Math对象的扩展 92 6.7.1 Math.trunc() 92 6.7.2 Math.sign() 92 6.7.3 Math.cbrt() 93 6.7.4 Math.clz32() 94 6.7.5 Math.imul() 95 6.7.6 Math.fround() 95 6.7.7 Math.hypot() 96 6.7.8 对数方法 96 6.7.9 双曲函数方法 98 6.8 Math.signbit() 98 6.9 指数运算符 99 6.10 Integer数据类型 99 6.10.1 简介 99 6.10.2 运算 100 第7章 函数的扩展 103 7.1 函数参数的默认值 103 7.1.1 基本用法 103 7.1.2 与解构赋值默认值结合使用 105 7.1.3 参数默认值的位置 107 7.1.4 函数的length属性 108 7.1.5 作用域 108 7.1.6 应用 111 7.2 rest参数 112 7.3 严格模式 113 7.4 name属性 115 7.5 箭头函数 116 7.5.1 基本用法 116 7.5.2 注意事项 118 7.5.3 嵌套的箭头函数 121 7.6 绑定this 123 7.7 尾调用优化 124 7.7.1 什么是尾调用 124 7.7.2 尾调用优化 125 7.7.3 尾递归 126 7.7.4 递归函数的改写 128 7.7.5 严格模式 129 7.7.6 尾递归优化的实现 129 7.8 函数参数的尾逗号 132 第8章 数组的扩展 133 8.1 扩展运算符 133 8.1.1 含义 133 8.1.2 替代数组的apply方法 134 8.1.3 扩展运算符的应用 136 8.2 Array.from() 139 8.3 Array.of() 142 8.4 数组实例的copyWithin() 143 8.5 数组实例的find()和findIndex() 144 8.6 数组实例的fill() 145 8.7 数组实例的entries()、keys()和values() 145 8.8 数组实例的includes() 146 8.9 数组的空位 147 第9章 对象的扩展 151 9.1 属性的简洁表示法 151 9.2 属性名表达式 154 9.3 方法的name属性 156 9.4 Object.is() 157 9.5 Object.assign() 158 9.5.1 基本用法 158 9.5.2 注意点 160 9.5.3 常见用途 161 9.6 属性的可枚举性 163 9.7 属性的遍历 165 9.8 __proto__ 属性、Object.setPrototypeOf()、Object.getPrototypeOf() 166 9.8.1 __proto__ 属性 166 9.8.2 Object.setPrototypeOf() 167 9.8.3 Object.getPrototypeOf() 168 9.9 Object.keys()、Object.values()、Object.entries() 169 9.9.1 Object.keys() 169 9.9.2 Object.values() 170 9.9.3 Object.entries 171 9.10 对象的扩展运算符 173 9.11 Object.getOwnPropertyDescriptors() 177 9.12 Null传导运算符 181 第10章 Symbol 183 10.1 概述 183 10.2 作为属性名的Symbol 185 10.3 实例:消除魔术字符串 188 10.4 属性名的遍历 189 10.5 Symbol.for()、Symbol.keyFor() 191 10.6 实例:模块的Singleton模式 192 10.7 内置的Symbol值 194 10.7.1 Symbol.hasInstance 194 10.7.2 Symbol.isConcatSpreadable 195 10.7.3 Symbol.species 196 10.7.4 Symbol.match 197 10.7.5 Symbol.replace 197 10.7.6 Symbol.search 198 10.7.7 Symbol.split 198 10.7.8 Symbol.iterator 199 10.7.9 Symbol.toPrimitive 200 10.7.10 Symbol.toStringTag 201 10.7.11 Symbol.unscopables 202 第11章 Set和Map数据结构 205 11.1 Set 205 11.1.1 基本用法 205 11.1.2 Set实例的属性和方法 207 11.1.3 遍历操作 208 11.2 WeakSet 212 11.2.1 含义 212 11.2.2 语法 212 11.3 Map 214 11.3.1 含义和基本用法 214 11.3.2 实例的属性和操作方法 218 11.3.3 遍历方法 220 11.3.4 与其他数据结构的互相转换 222 11.4 WeakMap 225 11.4.1 含义 225 11.4.2 WeakMap的语法 227 11.4.3 WeakMap示例 228 11.4.4 WeakMap的用途 229 第12章 Proxy 233 12.1 概述 233 12.2 Proxy实例的方法 237 12.2.1 get() 237 12.2.2 set() 241 12.2.3 apply() 243 12.2.4 has() 244 12.2.5 construct() 246 12.2.6 deleteProperty() 247 12.2.7 defineProperty() 248 12.2.8 getOwnPropertyDescriptor() 248 12.2.9 getPrototypeOf() 249 12.2.10 isExtensible() 249 12.2.11 ownKeys() 250 12.2.12 preventExtensions() 254 12.2.13 setPrototypeOf() 255 12.3 Proxy.revocable() 255 12.4 this问题 256 12.5 实例:Web服务的客户端 258 第13章 Reflect 259 13.1 概述 259 13.2 静态方法 261 13.2.1 Reflect.get(target, name, receiver) 262 13.2.2 Reflect.set(target, name, value, receiver) 263 13.2.3 Reflect.has(obj, name) 264 13.2.4 Reflect.deleteProperty(obj, name) 265 13.2.5 Reflect.construct(target, args) 265 13.2.6 Reflect.getPrototypeOf(obj) 265 13.2.7 Reflect.setPrototypeOf(obj, newProto) 266 13.2.8 Reflect.apply(func, thisArg, args) 267 13.2.9 Reflect.defineProperty(target, propertyKey, attributes) 267 13.2.10 Reflect.getOwnPropertyDescriptor (target, propertyKey) 268 13.2.11 Reflect.isExtensible (target) 268 13.2.12 Reflect.preventExtensions(target) 269 13.2.13 Reflect.ownKeys (target) 269 13.3 实例:使用Proxy实现观察者模式 270 第14章 Promise对象 273 14.1 Promise的含义 273 14.2 基本用法 274 14.3 Promise.prototype.then() 278 14.4 Promise.prototype.catch() 279 14.5 Promise.all() 285 14.6 Promise.race() 287 14.7 Promise.resolve() 288 14.8 Promise.reject() 290 14.9 两个有用的附加方法 291 14.9.1 done() 291 14.9.2 finally() 292 14.10 应用 292 14.10.1 加载图片 292 14.10.2 Generator函数与Promise的结合 293 14.11 Promise.try() 294 第15章 Iterator和for...of循环 297 15.1 Iterator(遍历器)的概念 297 15.2 默认Iterator接口 300 15.3 调用Iterator接口的场合 305 15.4 字符串的Iterator接口 307 15.5 Iterator接口与Generator函数 308 15.6 遍历器对象的return()、throw() 309 15.7 for...of循环 310 15.7.1 数组 310 15.7.2 Set和Map结构 311 15.7.3 计算生成的数据结构 312 15.7.4 类似数组的对象 313 15.7.5 对象 314 15.7.6 与其他遍历语法的比较 315 第16章 Generator函数的语法 317 16.1 简介 317 16.1.1 基本概念 317 16.1.2 yield表达式 319 16.1.3 与Iterator接口的关系 322 16.2 next方法的参数 323 16.3 for...of循环 325 16.4 Generator.prototype.throw() 328 16.5 Generator.prototype.return() 334 16.6 yield*表达式 335 16.7 作为对象属性的Generator函数 342 16.8 Generator函数this 342 16.9 含义 345 16.9.1 Generator与状态机 345 16.9.2 Generator与协程 346 16.10 应用 347 16.10.1 异步操作的同步化表达 347 16.10.2 控制流管理 348 16.10.3 部署Iterator接口 351 16.10.4 作为数据结构 352 第17章 Generator函数的异步应用 355 17.1 传统方法 355 17.2 基本概念 355 17.2.1 异步 355 17.2.2 回调函数 356 17.2.3 Promise 356 17.3 Generator函数 357 17.3.1 协程 357 17.3.2 协程的Generator函数实现 358 17.3.3 Generator函数的数据交换和错误处理 359 17.3.4 异步任务的封装 360 17.4 Thunk函数 361 17.4.1 参数的求值策略 361 17.4.2 Thunk函数的含义 362 17.4.3 JavaScript语言的Thunk函数 362 17.4.4 Thunkify模块 364 17.4.5 Generator函数的流程管理 365 17.4.6 Thunk函数的自动流程管理 367 17.5 co模块 368 17.5.1 基本用法 368 17.5.2 co模块的原理 369 17.5.3 基于Promise对象的自动执行 369 17.5.4 co模块的源码 371 17.5.5 处理并发的异步操作 372 17.6 实例:处理 Stream 373 第18章 async函数 375 18.1 含义 375 18.2 用法 377 18.3 语法 379 18.3.1 返回Promise对象 379 18.3.2 Promise对象的状态变化 379 18.3.3 await命令 380 18.3.4 错误处理 382 18.3.5 使用注意点 383 18.4 async函数的实现原理 386 18.5 其他异步处理方法的比较 387 18.6 实例:按顺序完成异步操作 388 18.7 异步遍历器 390 18.7.1 异步遍历的接口 390 18.7.2 for await...of 392 18.7.3 异步Generator函数 393 18.7.4 yield*语句 398 第19章 Class的基本语法 399 19.1 简介 399 19.2 严格模式 403 19.3 constructor方法 403 19.4 类的实例对象 404 19.5 Class表达式 406 19.6 不存在变量提升 407 19.7 私有方法 408 19.8 私有属性 409 19.9 this的指向 410 19.10 name属性 412 19.11 Class的取值函数(getter)和存值函数(setter) 412 19.12 Class的Generator方法 413 19.13 Class的静态方法 414 19.14 Class的静态属性和实例属性 415 19.14.1 Class的实例属性 416 19.14.2 Class的静态属性 417 19.15 new.target属性 418 第20章 Class的继承 421 20.1 简介 421 20.2 Object.getPrototypeOf() 423 20.3 super关键字 423 20.4 类的prototype属性和 __proto__ 属性 429 20.4.1 extends的继承目标 430 20.4.2 实例的 __proto__ 属性 432 20.5 原生构造函数的继承 432 20.6 Mixin模式的实现 436 第21章 修饰器 439 21.1 类的修饰 439 21.2 方法的修饰 442 21.3 为什么修饰器不能用于函数 444 21.4 core-decorators.js 446 21.5 使用修饰器实现自动发布事件 449 21.6 Mixin 450 21.7 Trait 453 21.8 Babel转码器的支持 456 第22章 Module的语法 457 22.1 概述 457 22.2 严格模式 458 22.3 export命令 459 22.4 import命令 462 22.5 模块的整体加载 464 22.6 export default命令 465 22.7 export与import的复合写法 468 22.8 模块的继承 469 22.9 跨模块常量 470 22.10 import() 471 22.10.1 简介 471 22.10.2 适用场合 472 22.10.3 注意点 473 第23章 Module的加载实现 475 23.1 浏览器加载 475 23.1.1 传统方法 475 23.1.2 加载规则 476 23.2 ES6模块与CommonJS模块的差异 477 23.3 Node加载 481 23.3.1 概述 481 23.3.2 import命令加载CommonJS模块 482 23.3.3 require命令加载ES6模块 484 23.4 循环加载 485 23.4.1 CommonJS模块的加载原理 485 23.4.2 CommonJS模块的循环加载 486 23.4.3 ES6模块的循环加载 488 23.5 ES6模块的转码 492 23.5.1 ES6 module transpiler 492 23.5.2 SystemJS 492 第24章 编程风格 495 24.1 块级作用域 495 24.1.1 let取代var 495 24.1.2 全局常量和线程安全 496 24.2 字符串 497 24.3 解构赋值 497 24.4 对象 498 24.5 数组 500 24.6 函数 501 24.7 Map结构 503 24.8 Class 503 24.9 模块 504 24.10 ESLint的使用 506 第25章 读懂ECMAScript规格 509 25.1 概述 509 25.2 相等运算符 510 25.3 数组的空位 511 25.4 数组的map方法 513 第26章 ArrayBuffer 517 26.1 ArrayBuffer对象 518 26.1.1 概述 518 26.1.2 ArrayBuffer.prototype.byteLength 520 26.1.3 ArrayBuffer.prototype.slice() 520 26.1.4 ArrayBuffer.isView() 520 26.2 TypedArray视图 521 26.2.1 概述 521 26.2.2 构造函数 522 26.2.3 数组方法 524 26.2.4 字节序 526 26.2.5 BYTES_PER_ELEMENT属性 528 26.2.6 ArrayBuffer与字符串的互相转换 528 26.2.7 溢出 529 26.2.8 TypedArray.prototype.buffer 531 26.2.9 TypedArray.prototype.byteLength、TypedArray. prototype.byteOffset 531 26.2.10 TypedArray.prototype.length 531 26.2.11 TypedArray.prototype.set() 532 26.2.12 TypedArray.prototype.subarray() 532 26.2.13 TypedArray.prototype.slice() 532 26.2.14 TypedArray.of() 533 26.2.15 TypedArray.from() 533 26.3 复合视图 534 26.4 DataView视图 535 26.5 二进制数组的应用 537 26.5.1 AJAX 537 26.5.2 Canvas 538 26.5.3 WebSocket 539 26.5.4 Fetch API 539 26.5.5 File API 539 26.6 SharedArrayBuffer 541 26.7 Atomics对象 543

2018-03-15

第三版——Linux命令行与shell脚本编程大全——百度链接

第1章 初识Linux shell  2 1.1 什么是Linux  2 1.1.1 深入探究Linux内核  3 1.1.2 GNU工具  6 1.1.3 Linux桌面环境  8 1.2 Linux发行版  12 1.2.1 核心Linux发行版  13 1.2.2 特定用途的Linux发行版  13 1.2.3 Linux LiveCD  14 1.3 小结  15 第2章 走进shell  16 2.1 进入命令行  16 2.1.1 控制台终端  17 2.1.2 图形化终端  17 2.2 通过Linux控制台终端访问CLI  18 2.3 通过图形化终端仿真访问CLI  20 2.4 使用GNOME Terminal仿真器  21 2.4.1 访问GNOME Terminal  21 2.4.2 菜单栏  22 2.5 使用Konsole Terminal仿真器  25 2.5.1 访问Konsole Terminal  25 2.5.2 菜单栏  26 2.6 使用xterm终端仿真器  29 2.6.1 访问xterm  30 2.6.2 命令行参数  30 2.7 小结  32 第3章 基本的bash shell命令  33 3.1 启动shell  33 3.2 shell提示符  34 3.3 bash手册  34 3.4 浏览文件系统  37 3.4.1 Linux文件系统  37 3.4.2 遍历目录  40 3.5 文件和目录列表  42 3.5.1 基本列表功能  42 3.5.2 显示长列表  44 3.5.3 过滤输出列表  45 3.6 处理文件  46 3.6.1 创建文件  47 3.6.2 复制文件  47 3.6.3 制表键自动补全  50 3.6.4 链接文件  50 3.6.5 重命名文件  52 3.6.6 删除文件  54 3.7 处理目录  55 3.7.1 创建目录  55 3.7.2 删除目录  55 3.8 查看文件内容  58 3.8.1 查看文件类型  58 3.8.2 查看整个文件  59 3.8.3 查看部分文件  61 3.9 小结  63 第4章 更多的bash shell命令  64 4.1 监测程序  64 4.1.1 探查进程  64 4.1.2 实时监测进程  70 4.1.3 结束进程  72 4.2 监测磁盘空间  73 4.2.1 挂载存储媒体  73 4.2.2 使用df命令  76 4.2.3 使用du命令  77 4.3 处理数据文件  78 4.3.1 排序数据  78 4.3.2 搜索数据  81 4.3.3 压缩数据  83 4.3.4 归档数据  84 4.4 小结  85 第5章 理解shell  86 5.1 shell的类型  86 5.2 shell的父子关系  88 5.2.1 进程列表  91 5.2.2 别出心裁的子shell用法  93 5.3 理解shell的内建命令  96 5.3.1 外部命令  96 5.3.2 内建命令  97 5.4 小结  101 第6章 使用Linux环境变量  103 6.1 什么是环境变量  103 6.1.1 全局环境变量  104 6.1.2 局部环境变量  105 6.2 设置用户定义变量  106 6.2.1 设置局部用户定义变量  106 6.2.2 设置全局环境变量  107 6.3 删除环境变量  109 6.4 默认的shell环境变量  110 6.5 设置PATH环境变量  113 6.6 定位系统环境变量  114 6.6.1 登录shell  115 6.6.2 交互式shell进程  119 6.6.3 非交互式shell  120 6.6.4 环境变量持久化  121 6.7 数组变量  121 6.8 小结  122 第7章 理解Linux文件权限  124 7.1 Linux的安全性  124 7.1.1 /etc/passwd文件  124 7.1.2 /etc/shadow文件  126 7.1.3 添加新用户  127 7.1.4 删除用户  129 7.1.5 修改用户  130 7.2 使用Linux组  132 7.2.1 /etc/group文件  133 7.2.2 创建新组  133 7.2.3 修改组  134 7.3 理解文件权限  135 7.3.1 使用文件权限符  135 7.3.2 默认文件权限  136 7.4 改变安全性设置  138 7.4.1 改变权限  138 7.4.2 改变所属关系  139 7.5 共享文件  140 7.6 小结  142 第8章 管理文件系统  143 8.1 探索Linux文件系统  143 8.1.1 基本的Linux文件系统  143 8.1.2 日志文件系统  145 8.1.3 写时复制文件系统  147 8.2 操作文件系统  147 8.2.1 创建分区  147 8.2.2 创建文件系统  151 8.2.3 文件系统的检查与修复  153 8.3 逻辑卷管理  154 8.3.1 逻辑卷管理布局  154 8.3.2 Linux中的LVM  155 8.3.3 使用Linux LVM  156 8.4 小结  162 第9章 安装软件程序  163 9.1 包管理基础  163 9.2 基于Debian的系统  164 9.2.1 用aptitude管理软件包  164 9.2.2 用aptitude安装软件包  166 9.2.3 用aptitude更新软件  168 9.2.4 用aptitude卸载软件  169 9.2.5 aptitude仓库  169 9.3 基于Red Hat的系统  171 9.3.1 列出已安装包  171 9.3.2 用yum安装软件  173 9.3.3 用yum更新软件  174 9.3.4 用yum卸载软件  174 9.3.5 处理损坏的包依赖关系  175 9.3.6  yum软件仓库  176 9.4 从源码安装  177 9.5 小结  180 第10章 使用编辑器  181 10.1 vim编辑器  181 10.1.1 检查vim软件包  181 10.1.2 vim基础  183 10.1.3 编辑数据  185 10.1.4 复制和粘贴  185 10.1.5 查找和替换  186 10.2 nano编辑器  187 10.3 emacs编辑器  188 10.3.1 检查emacs软件包  189 10.3.2 在控制台中使用emacs  190 10.3.3 在GUI环境中使用emacs  195 10.4 KDE系编辑器  196 10.4.1 KWrite编辑器  196 10.4.2 Kate编辑器  200 10.5 GNOME编辑器  202 10.5.1 启动gedit  203 10.5.2 基本的gedit功能  203 10.5.3 设定偏好设置  204 10.6 小结  206 第二部分 shell脚本编程基础 第11章 构建基本脚本  210 11.1 使用多个命令  210 11.2 创建shell脚本文件  211 11.3 显示消息  212 11.4 使用变量  214 11.4.1 环境变量  214 11.4.2 用户变量  215 11.4.3 命令替换  216 11.5 重定向输入和输出  218 11.5.1 输出重定向  218 11.5.2 输入重定向  219 11.6 管道  220 11.7 执行数学运算  222 11.7.1 expr命令  223 11.7.2 使用方括号  224 11.7.3 浮点解决方案  225 11.8 退出脚本  228 11.8.1 查看退出状态码  228 11.8.2 exit命令  229 11.9 小结  231 第12章 使用结构化命令  232 12.1 使用if-then语句  232 12.2 if-then-else语句  235 12.3 嵌套if  235 12.4 test命令  238 12.4.1 数值比较  240 12.4.2 字符串比较  242 12.4.3 文件比较  246 12.5 复合条件测试  254 12.6 if-then的高级特性  255 12.6.1 使用双括号  255 12.6.2 使用双方括号  256 12.7 case命令  257 12.8 小结  258 第13章 更多的结构化命令  260 13.1 for命令  260 13.1.1 读取列表中的值  261 13.1.2 读取列表中的复杂值  262 13.1.3 从变量读取列表  263 13.1.4 从命令读取值  264 13.1.5 更改字段分隔符  265 13.1.6 用通配符读取目录  266 13.2 C语言风格的for命令  268 13.2.1 C语言的for命令  268 13.2.2 使用多个变量  269 13.3 while命令  270 13.3.1 while的基本格式  270 13.3.2 使用多个测试命令  271 13.4 until命令  272 13.5 嵌套循环  274 13.6 循环处理文件数据  276 13.7 控制循环  277 13.7.1 break命令  277 13.7.2 continue命令  280 13.8 处理循环的输出  282 13.9 实例  283 13.9.1 查找可执行文件  284 13.9.2 创建多个用户账户  285 13.10 小结  286 第14章 处理用户输入  287 14.1 命令行参数  287 14.1.1 读取参数  287 14.1.2 读取脚本名  289 14.1.3 测试参数  291 14.2 特殊参数变量  292 14.2.1 参数统计  292 14.2.2 抓取所有的数据  294 14.3 移动变量  295 14.4 处理选项  296 14.4.1 查找选项  297 14.4.2 使用getopt命令  300 14.4.3 使用更高级的getopts  302 14.5 将选项标准化  305 14.6 获得用户输入  306 14.6.1 基本的读取  306 14.6.2 超时  307 14.6.3 隐藏方式读取  308 14.6.4 从文件中读取  309 14.7 小结  309 第15章 呈现数据  311 15.1 理解输入和输出  311 15.1.1 标准文件描述符  311 15.1.2 重定向错误  313 15.2 在脚本中重定向输出  315 15.2.1 临时重定向  315 15.2.2 永久重定向  316 15.3 在脚本中重定向输入  317 15.4 创建自己的重定向  317 15.4.1 创建输出文件描述符  318 15.4.2 重定向文件描述符  318 15.4.3 创建输入文件描述符  319 15.4.4 创建读写文件描述符  320 15.4.5 关闭文件描述符  321 15.5 列出打开的文件描述符  322 15.6 阻止命令输出  323 15.7 创建临时文件  324 15.7.1 创建本地临时文件  324 15.7.2 在/tmp目录创建临时文件  325 15.7.3 创建临时目录  326 15.8 记录消息  327 15.9 实例  328 15.10 小结  330 第16章 控制脚本  331 16.1 处理信号  331 16.1.1 重温Linux信号  331 16.1.2 生成信号  332 16.1.3 捕获信号  334 16.1.4 捕获脚本退出  335 16.1.5 修改或移除捕获  335 16.2 以后台模式运行脚本  338 16.2.1 后台运行脚本  338 16.2.2 运行多个后台作业  340 16.3 在非控制台下运行脚本  341 16.4 作业控制  342 16.4.1 查看作业  342 16.4.2 重启停止的作业  344 16.5 调整谦让度  345 16.5.1 nice命令  345 16.5.2 renice命令  346 16.6 定时运行作业  346 16.6.1 用at命令来计划执行作业  347 16.6.2 安排需要定期执行的脚本  349 16.6.3 使用新shell启动脚本  352 16.7 小结  353 第三部分 高级shell脚本编程 第17章 创建函数  356 17.1 基本的脚本函数  356 17.1.1 创建函数  357 17.1.2 使用函数  357 17.2 返回值  359 17.2.1 默认退出状态码  359 17.2.2 使用return命令  360 17.2.3 使用函数输出  361 17.3 在函数中使用变量  362 17.3.1 向函数传递参数  362 17.3.2 在函数中处理变量  364 17.4 数组变量和函数  366 17.4.1 向函数传数组参数  366 17.4.2 从函数返回数组  368 17.5 函数递归  369 17.6 创建库  370 17.7 在命令行上使用函数  371 17.7.1 在命令行上创建函数  372 17.7.2 在.bashrc文件中定义函数  372 17.8 实例  374 17.8.1 下载及安装  374 17.8.2 构建库  374 17.8.3 shtool库函数  376 17.8.4 使用库  376 17.9 小结  377 第18章 图形化桌面环境中的脚本编程  378 18.1 创建文本菜单  378 18.1.1 创建菜单布局  379 18.1.2 创建菜单函数  380 18.1.3 添加菜单逻辑  380 18.1.4 整合shell脚本菜单  381 18.1.5 使用select命令  382 18.2 制作窗口  384 18.2.1 dialog包  384 18.2.2 dialog选项  389 18.2.3 在脚本中使用dialog命令  391 18.3 使用图形  393 18.3.1 KDE环境  393 18.3.2 GNOME环境  396 18.4 小结  400 第19章 初识sed和gawk  401 19.1 文本处理  401 19.1.1 sed编辑器  401 19.1.2 gawk程序  404 19.2 sed编辑器基础  410 19.2.1 更多的替换选项  410 19.2.2 使用地址  411 19.2.3 删除行  414 19.2.4 插入和附加文本  415 19.2.5 修改行  417 19.2.6 转换命令  418 19.2.7 回顾打印  419 19.2.8 使用sed处理文件  421 19.3 小结  423 第20章 正则表达式  424 20.1 什么是正则表达式  424 20.1.1 定义  424 20.1.2 正则表达式的类型  425 20.2 定义BRE模式  426 20.2.1 纯文本  426 20.2.2 特殊字符  427 20.2.3 锚字符  428 20.2.4 点号字符  430 20.2.5 字符组  430 20.2.6 排除型字符组  432 20.2.7 区间  433 20.2.8 特殊的字符组  434 20.2.9 星号  434 20.3 扩展正则表达式  436 20.3.1 问号  436 20.3.2 加号  437 20.3.3 使用花括号  437 20.3.4 管道符号  438 20.3.5 表达式分组  439 20.4 正则表达式实战  439 20.4.1 目录文件计数  440 20.4.2 验证电话号码  441 20.4.3 解析邮件地址  443 20.5 小结  444 第21章 sed进阶  445 21.1 多行命令  445 21.1.1 next命令  446 21.1.2 多行删除命令  449 21.1.3 多行打印命令  449 21.2 保持空间  450 21.3 排除命令  451 21.4 改变流  454 21.4.1 分支  454 21.4.2 测试  455 21.5 模式替代  456 21.5.1 &符号  457 21.5.2 替代单独的单词  457 21.6 在脚本中使用sed  458 21.6.1 使用包装脚本  458 21.6.2 重定向sed的输出  459 21.7 创建sed实用工具  460 21.7.1 加倍行间距  460 21.7.2 对可能含有空白行的文件加倍行间距  460 21.7.3 给文件中的行编号  461 21.7.4 打印末尾行  462 21.7.5 删除行  463 21.7.6 删除HTML标签  466 21.8 小结  467 第22章 gawk进阶  469 22.1 使用变量  469 22.1.1 内建变量  469 22.1.2 自定义变量  474 22.2 处理数组  476 22.2.1 定义数组变量  476 22.2.2 遍历数组变量  477 22.2.3 删除数组变量  478 22.3 使用模式  478 22.3.1 正则表达式  478 22.3.2 匹配操作符  479 22.3.3 数学表达式  480 22.4 结构化命令  480 22.4.1 if语句  480 22.4.2 while语句  482 22.4.3 do-while语句  483 22.4.4 for语句  484 22.5 格式化打印  484 22.6 内建函数  487 22.6.1 数学函数  487 22.6.2 字符串函数  488 22.6.3 时间函数  490 22.7 自定义函数  490 22.7.1 定义函数  490 22.7.2 使用自定义函数  491 22.7.3 创建函数库  491 22.8 实例  492 22.9 小结  493 第23章 使用其他shell  495 23.1 什么是dash shell  495 23.2 dash shell的特性  496 23.2.1 dash命令行参数  496 23.2.2 dash环境变量  497 23.2.3 dash内建命令  499 23.3 dash脚本编程  500 23.3.1 创建dash脚本  500 23.3.2 不能使用的功能  500 23.4 zsh shell  502 23.5 zsh shell的组成  503 23.5.1 shell选项  503 23.5.2 内建命令  504 23.6 zsh脚本编程  508 23.6.1 数学运算  508 23.6.2 结构化命令  509 23.6.3 函数  510 23.7 小结  510 第四部分 创建实用的脚本 第24章 编写简单的脚本实用工具  514 24.1 归档  514 24.2 管理用户账户  523 24.2.1 需要的功能  523 24.2.2 创建脚本  530 24.2.3 运行脚本  535 24.3 监测磁盘空间  537 24.3.1 需要的功能  537 24.3.2 创建脚本  540 24.3.3 运行脚本  541 24.4 小结  542 第25章 创建与数据库、Web及电子 邮件相关的脚本  543 25.1 MySQL数据库  543 25.1.1 使用MySQL  543 25.1.2 在脚本中使用数据库  552 25.2 使用Web  555 25.2.1 安装Lynx  556 25.2.2 lynx命令行  557 25.2.3 Lynx配置文件  558 25.2.4 从Lynx中获取数据  559 25.3 使用电子邮件  561 25.4 小结  564 第26章 一些小有意思的脚本  565 26.1 发送消息  565 26.1.1 功能分析  565 26.1.2 创建脚本  568 26.2 获取格言  573 26.2.1 功能分析  574 26.2.2 创建脚本  577 26.3 编造借口  583 26.3.1 功能分析  583 26.3.2 创建脚本  586 26.4 小结  587 附录A bash命令快速指南  589 附录B sed和gawk快速指南  59

2018-03-02

TCP-IP协议详解_卷1-3:协议_(完整版)-PDF-网盘链接

第1章 概述1 1.1 引言1 1.2 分层1 1.3 TCP/IP的分层4 1.4 互联网的地址5 1.5 域名系统6 1.6 封装6 1.7 分用8 1.8 客户-服务器模型8 1.9 端口号9 1.10 标准化过程10 1.11 RFC10 1.12 标准的简单服务11 1.13 互联网12 1.14 实现12 1.15 应用编程接口12 1.16 测试网络13 1.17 小结13 第2章 链路层15 2.1 引言15 2.2 以太网和IEEE 802封装15 2.3 尾部封装17 2.4 SLIP:串行线路IP17 2.5 压缩的SLIP18 2.6 PPP:点对点协议18 2.7 环回接口20 2.8 最大传输单元MTU21 2.9 路径MTU21 2.10 串行线路吞吐量计算21 2.11 小结22 第3章 IP:网际协议24 3.1 引言24 3.2 IP首部24 3.3 IP路由选择27 3.4 子网寻址30 3.5 子网掩码32 3.6 特殊情况的IP地址33 3.7 一个子网的例子33 3.8 ifconfig命令35 3.9 netstat命令36 3.10 IP的未来36 3.11 小结37 第4章 ARP:地址解析协议38 4.1 引言38 4.2 一个例子38 4.3 ARP高速缓存40 4.4 ARP的分组格式40 4.5 ARP举例41 4.5.1 一般的例子41 4.5.2 对不存在主机的ARP请求42 4.5.3 ARP高速缓存超时设置43 4.6 ARP代理43 4.7 免费ARP45 4.8 arp命令45 4.9 小结46 第5章 RARP:逆地址解析协议47 5.1 引言47 5.2 RARP的分组格式47 5.3 RARP举例47 5.4 RARP服务器的设计48 5.4.1 作为用户进程的RARP服务器49 5.4.2 每个网络有多个RARP服务器49 5.5 小结49 第6章 ICMP:Internet控制报文协议50 6.1 引言50 6.2 ICMP报文的类型50 6.3 ICMP地址掩码请求与应答52 6.4 ICMP时间戳请求与应答53 6.4.1 举例54 6.4.2 另一种方法55 6.5 ICMP端口不可达差错56 6.6 ICMP报文的4.4BSD处理59 6.7 小结60 第7章 Ping程序61 7.1 引言61 7.2 Ping程序61 7.2.1 LAN输出62 7.2.2 WAN输出63 7.2.3 线路SLIP链接64 7.2.4 拨号SLIP链路65 7.3 IP记录路由选项65 7.3.1 通常的例子66 7.3.2 异常的输出68 7.4 IP时间戳选项69 7.5 小结70 第8章 Traceroute程序71 8.1 引言71 8.2 Traceroute 程序的操作71 8.3 局域网输出72 8.4 广域网输出75 8.5 IP源站选路选项76 8.5.1 宽松的源站选路的traceroute 程序示例78 8.5.2 严格的源站选路的traceroute 程序示例79 8.5.3 宽松的源站选路traceroute程序 的往返路由80 8.6 小结81 第9章 IP选路83 9.1 引言83 9.2 选路的原理84 9.2.1 简单路由表84 9.2.2 初始化路由表86 9.2.3 较复杂的路由表87 9.2.4 没有到达目的地的路由87 9.3 ICMP主机与网络不可达差错88 9.4 转发或不转发89 9.5 ICMP重定向差错89 9.5.1 一个例子90 9.5.2 更多的细节91 9.6 ICMP路由器发现报文92 9.6.1 路由器操作93 9.6.2 主机操作93 9.6.3 实现93 9.7 小结94 第10章 动态选路协议95 10.1 引言95 10.2 动态选路95 10.3 Unix选路守护程序96 10.4 RIP:选路信息协议96 10.4.1 报文格式96 10.4.2 正常运行97 10.4.3 度量98 10.4.4 问题98 10.4.5 举例98 10.4.6 另一个例子100 10.5 RIP版本2102 10.6 OSPF:开放最短路径优先102 10.7 BGP:边界网关协议103 10.8 CIDR:无类型域间选路104 10.9 小结105 第11章 UDP:用户数据报协议107 11.1 引言107 11.2 UDP首部107 11.3 UDP检验和108 11.3.1 tcpdump输出109 11.3.2 一些统计结果109 11.4 一个简单的例子110 11.5 IP分片111 11.6 ICMP不可达差错(需要分片)113 11.7 用Traceroute确定路径MTU114 11.8 采用UDP的路径MTU发现116 11.9 UDP和ARP之间的交互作用118 11.10 最大UDP数据报长度119 11.11 ICMP源站抑制差错120 11.12 UDP服务器的设计122 11.12.1 客户IP地址及端口号122 11.12.2 目标IP地址122 11.12.3 UDP输入队列122 11.12.4 限制本地IP地址124 11.12.5 限制远端IP地址125 11.12.6 每个端口有多个接收者125 11.13 小结126 第12章 广播和多播128 12.1 引言128 12.2 广播129 12.2.1 受限的广播129 12.2.2 指向网络的广播129 12.2.3 指向子网的广播129 12.2.4 指向所有子网的广播130 12.3 广播的例子130 12.4 多播132 12.4.1 多播组地址133 12.4.2 多播组地址到以太网地址的转换133 12.4.3 FDDI和令牌环网络中的多播134 12.5 小结134 第13章 IGMP:Internet组管理协议136 13.1 引言136 13.2 IGMP报文136 13.3 IGMP协议136 13.3.1 加入一个多播组136 13.3.2 IGMP报告和查询137 13.3.3 实现细节137 13.3.4 生存时间字段138 13.3.5 所有主机组138 13.4 一个例子138 13.5 小结141 第14章 DNS:域名系统142 14.1 引言142 14.2 DNS基础142 14.3 DNS的报文格式144 14.3.1 DNS查询报文中的问题部分146 14.3.2 DNS响应报文中的资源记录部分147 14.4 一个简单的例子147 14.5 指针查询150 14.5.1 举例151 14.5.2 主机名检查151 14.6 资源记录152 14.7 高速缓存153 14.8 用UDP还是用TCP156 14.9 另一个例子156 14.10 小结157 第15章 TFTP:简单文件传送协议159 15.1 引言159 15.2 协议159 15.3 一个例子160 15.4 安全性161 15.5 小结162 第16章 BOOTP: 引导程序协议163 16.1 引言163 16.2 BOOTP的分组格式163 16.3 一个例子164 16.4 BOOTP服务器的设计165 16.5 BOOTP穿越路由器167 16.6 特定厂商信息167 16.7 小结168 第17章 TCP:传输控制协议170 17.1 引言170 17.2 TCP的服务170 17.3 TCP的首部171 17.4 小结173 第18章 TCP连接的建立与终止174 18.1 引言174 18.2 连接的建立与终止174 18.2.1 tcpdump的输出174 18.2.2 时间系列175 18.2.3 建立连接协议175 18.2.4 连接终止协议177 18.2.5 正常的tcpdump输出177 18.3 连接建立的超时178 18.3.1 第一次超时时间178 18.3.2 服务类型字段179 18.4 最大报文段长度179 18.5 TCP的半关闭180 18.6 TCP的状态变迁图182 18.6.1 2MSL等待状态183 18.6.2 平静时间的概念186 18.6.3 FIN_WAIT_2状态186 18.7 复位报文段186 18.7.1 到不存在的端口的连接请求187 18.7.2 异常终止一个连接187 18.7.3 检测半打开连接188 18.8 同时打开189 18.9 同时关闭191 18.10 TCP选项191 18.11 TCP服务器的设计192 18.11.1 TCP服务器端口号193 18.11.2 限定的本地IP地址194 18.11.3 限定的远端IP地址195 18.11.4 呼入连接请求队列195 18.12 小结197 第19章 TCP的交互数据流200 19.1 引言200 19.2 交互式输入200 19.3 经受时延的确认201 19.4 Nagle算法203 19.4.1 关闭Nagle算法204 19.4.2 一个例子205 19.5 窗口大小通告207 19.6 小结208 第20章 TCP的成块数据流209 20.1 引言209 20.2 正常数据流209 20.3 滑动窗口212 20.4 窗口大小214 20.5 PUSH标志215 20.6 慢启动216 20.7 成块数据的吞吐量218 20.7.1 带宽时延乘积220 20.7.2 拥塞220 20.8 紧急方式221 20.9 小结224 第21章 TCP的超时与重传226 21.1 引言226 21.2 超时与重传的简单例子226 21.3 往返时间测量227 21.4 往返时间RTT的例子229 21.4.1 往返时间RTT的测量229 21.4.2 RTT估计器的计算231 21.4.3 慢启动233 21.5 拥塞举例233 21.6 拥塞避免算法235 21.7 快速重传与快速恢复算法236 21.8 拥塞举例(续)237 21.9 按每条路由进行度量240 21.10 ICMP的差错240 21.11 重新分组243 21.12 小结243 第22章 TCP的坚持定时器245 22.1 引言245 22.2 一个例子245 22.3 糊涂窗口综合症246 22.4 小结250 第23章 TCP的保活定时器251 23.1 引言251 23.2 描述252 23.3 保活举例253 23.3.1 另一端崩溃253 23.3.2 另一端崩溃并重新启动254 23.3.3 另一端不可达254 23.4 小结255 第24章 TCP的未来和性能256 24.1 引言256 24.2 路径MTU发现256 24.2.1 一个例子257 24.2.2 大分组还是小分组258 24.3 长肥管道259 24.4 窗口扩大选项262 24.5 时间戳选项263 24.6 PAWS:防止回绕的序号265 24.7 T/TCP:为事务用的TCP扩展265 24.8 TCP的性能267 24.9 小结268 第25章 SNMP:简单网络管理协议270 25.1 引言270 25.2 协议270 25.3 管理信息结构272 25.4 对象标识符274 25.5 管理信息库介绍274 25.6 实例标识276 25.6.1 简单变量276 25.6.2 表格276 25.6.3 字典式排序277 25.7 一些简单的例子277 25.7.1 简单变量278 25.7.2 get-next操作278 25.7.3 表格的访问279 25.8 管理信息库(续)279 25.8.1 system组279 25.8.2 interface组280 25.8.3 at组281 25.8.4 ip组282 25.8.5 icmp组285 25.8.6 tcp组285 25.9 其他一些例子288 25.9.1 接口MTU288 25.9.2 路由表288 25.10 trap290 25.11 ASN.1和BER291 25.12 SNMPv2292 25.13 小结292 第26章 Telnet和Rlogin:远程登录293 26.1 引言293 26.2 Rlogin协议294 26.2.1 应用进程的启动295 26.2.2 流量控制295 26.2.3 客户的中断键296 26.2.4 窗口大小的改变296 26.2.5 服务器到客户的命令296 26.2.6 客户到服务器的命令297 26.2.7 客户的转义符298 26.3 Rlogin的例子298 26.3.1 初始的客户-服务器协议298 26.3.2 客户中断键299 26.4 Telnet协议302 26.4.1 NVT ASCII302 26.4.2 Telnet命令302 26.4.3 选项协商303 26.4.4 子选项协商304 26.4.5 半双工、一次一字符、一次 一行或行方式304 26.4.6 同步信号306 26.4.7 客户的转义符306 26.5 Telnet举例306 26.5.1 单字符方式306 26.5.2 行方式310 26.5.3 一次一行方式(准行方式)312 26.5.4 行方式:客户中断键313 26.6 小结314 第27章 FTP:文件传送协议316 27.1 引言316 27.2 FTP协议316 27.2.1 数据表示316 27.2.2 FTP命令318 27.2.3 FTP应答319 27.2.4 连接管理320 27.3 FTP的例子321 27.3.1 连接管理:临时数据端口321 27.3.2 连接管理:默认数据端口323 27.3.3 文本文件传输:NVT ASCII 表示还是图像表示325 27.3.4 异常中止一个文件的传输: Telnet同步信号326 27.3.5 匿名FTP329 27.3.6 来自一个未知IP地址的匿名FTP330 27.4 小结331 第28章 SMTP:简单邮件传送协议332 28.1 引言332 28.2 SMTP协议332 28.2.1 简单例子332 28.2.2 SMTP命令334 28.2.3 信封、首部和正文335 28.2.4 中继代理335 28.2.5 NVT ASCII337 28.2.6 重试间隔337 28.3 SMTP的例子337 28.3.1 MX记录:主机非直接连到 Internet337 28.3.2 MX记录:主机出故障339 28.3.3 VRFY和EXPN命令340 28.4 SMTP的未来340 28.4.1 信封的变化:扩充的SMTP341 28.4.2 首部变化:非ASCII字符342 28.4.3 正文变化:通用Internet邮件 扩充343 28.5 小结346 第29章 网络文件系统347 29.1 引言347 29.2 Sun远程过程调用347 29.3 XDR:外部数据表示349 29.4 端口映射器349 29.5 NFS协议351 29.5.1 文件句柄353 29.5.2 安装协议353 29.5.3 NFS过程354 29.5.4 UDP还是TCP355 29.5.5 TCP上的NFS355 29.6 NFS实例356 29.6.1 简单的例子:读一个文件356 29.6.2 简单的例子:创建一个目录357 29.6.3 无状态358 29.6.4 例子:服务器崩溃358 29.6.5 等幂过程360 29.7 第3版的NFS360 29.8 小结361 第30章 其他的TCP/IP应用程序363 30.1 引言363 30.2 Finger协议363 30.3 Whois协议364 30.4 Archie、WAIS、Gopher、Veronica 和WWW366 30.4.1 Archie366 30.4.2 WAIS366 30.4.3 Gopher366 30.4.4 Veronica366 30.4.5 万维网WWW367 30.5 X窗口系统367 30.5.1 Xscope程序368 30.5.2 LBX: 低带宽X370 30.6 小结370 附录A tcpdump程序371 附录B 计算机时钟376 附录C sock程序378 附录D 部分习题的解答381 附录E 配置选项395 附录F 可以免费获得的源代码406 参考文献409 缩略语420·············································································卷二卷三省略

2018-02-27

Python编程:从入门到实践-PDF-网盘链接

1.1 搭建编程环境 2   1.1.1 Python 2和Python 3 2   1.1.2 运行Python代码片段 3   1.1.3 Hello World程序 3   1.2 在不同操作系统中搭建Python编程环境 3   1.2.1 在Linux系统中搭建Python编程环境 3   1.2.2 在OS X系统中搭建Python编程环境 6   1.2.3 在Windows系统中搭建Python编程环境 8   1.3 解决安装问题 12   1.4 从终端运行Python程序 13   1.4.1 在Linux和OS X系统中从终端运行Python程序 13   1.4.2 在Windows系统中从终端运行Python程序 13   1.5 小结 14   第2章 变量和简单数据类型 15   2.1 运行hello_world.py时发生的情况 15   2.2 变量 16   2.2.1 变量的命名和使用 16   2.2.2 使用变量时避免命名错误 17   2.3 字符串 18   2.3.1 使用方法修改字符串的大小写 19   2.3.2 合并(拼接)字符串 19   2.3.3 使用制表符或换行符来添加空白 20   2.3.4 删除空白 21   2.3.5 使用字符串时避免语法错误 22   2.3.6 Python 2中的print语句 23   2.4 数字 24   2.4.1 整数 24   2.4.2 浮点数 25   2.4.3 使用函数str()避免类型错误 25   2.4.4 Python 2中的整数 26   2.5 注释 27   2.5.1 如何编写注释 27   2.5.2 该编写什么样的注释 28   2.6 Python之禅 28   2.7 小结 30   第3章 列表简介 31   3.1 列表是什么 31   3.1.1 访问列表元素 32   3.1.2 索引从0而不是1开始 32   3.1.3 使用列表中的各个值 33   3.2 修改、添加和删除元素 33   3.2.1 修改列表元素 34   3.2.2 在列表中添加元素 34   3.2.3 从列表中删除元素 35   3.3 组织列表 39   3.3.1 使用方法sort()对列表进行永久性排序 39   3.3.2 使用函数sorted()对列表进行临时排序 40   3.3.3 倒着打印列表 41   3.3.4 确定列表的长度 41   3.4 使用列表时避免索引错误 42   3.5 小结 43   第4章 操作列表 44   4.1 遍历整个列表 44   4.1.1 深入地研究循环 45   4.1.2 在for循环中执行更多的操作 46   4.1.3 在for循环结束后执行一些操作 47   4.2 避免缩进错误 47   4.2.1 忘记缩进 48   4.2.2 忘记缩进额外的代码行 48   4.2.3 不必要的缩进 49   4.2.4 循环后不必要的缩进 49   4.2.5 遗漏了冒号 50   4.3 创建数值列表 51   4.3.1 使用函数range() 51   4.3.2 使用range()创建数字列表 51   4.3.3 对数字列表执行简单的统计计算 53   4.3.4 列表解析 53   4.4 使用列表的一部分 54   4.4.1 切片 54   4.4.2 遍历切片 56   4.4.3 复制列表 56   4.5 元组 59   4.5.1 定义元组 59   4.5.2 遍历元组中的所有值 59   4.5.3 修改元组变量 60   4.6 设置代码格式 61   4.6.1 格式设置指南 61   4.6.2 缩进 61   4.6.3 行长 61   4.6.4 空行 62   4.6.5 其他格式设置指南 62   4.7 小结 63   第5章 if语句 64   5.1 一个简单示例 64   5.2 条件测试 65   5.2.1 检查是否相等 65   5.2.2 检查是否相等时不考虑大小写 65   5.2.3 检查是否不相等 66   5.2.4 比较数字 67   5.2.5 检查多个条件 67   5.2.6 检查特定值是否包含在列表中 68   5.2.7 检查特定值是否不包含在列表中 69   5.2.8 布尔表达式 69   5.3 if语句 70   5.3.1 简单的if语句 70   5.3.2 if-else语句 71   5.3.3 if-elif-else结构 72   5.3.4 使用多个elif代码块 73   5.3.5 省略else代码块 74   5.3.6 测试多个条件 74   5.4 使用if语句处理列表 76   5.4.1 检查特殊元素 77   5.4.2 确定列表不是空的 78   5.4.3 使用多个列表 78   5.5 设置if语句的格式 80   5.6 小结 80   第6章 字典 81   6.1 一个简单的字典 81   6.2 使用字典 82   6.2.1 访问字典中的值 82   6.2.2 添加键—值对 83   6.2.3 先创建一个空字典 83   6.2.4 修改字典中的值 84   6.2.5 删除键—值对 85   6.2.6 由类似对象组成的字典 86   6.3 遍历字典 87   6.3.1 遍历所有的键—值对 87   6.3.2 遍历字典中的所有键 89   6.3.3 按顺序遍历字典中的所有键 91   6.3.4 遍历字典中的所有值 91   6.4 嵌套 93   6.4.1 字典列表 93   6.4.2 在字典中存储列表 95   6.4.3 在字典中存储字典 97   6.5 小结 99   第7章 用户输入和while循环 100   7.1 函数input()的工作原理 100   7.1.1 编写清晰的程序 101   7.1.2 使用int()来获取数值输入 102   7.1.3 求模运算符 103   7.1.4 在Python 2.7中获取输入 104   7.2 while循环简介 104   7.2.1 使用while循环 104   7.2.2 让用户选择何时退出 105   7.2.3 使用标志 106   7.2.4 使用break退出循环 107   7.2.5 在循环中使用continue 108   7.2.6 避免无限循环 109   7.3 使用while循环来处理列表和字典 110   7.3.1 在列表之间移动元素 110   7.3.2 删除包含特定值的所有列表元素 111   7.3.3 使用用户输入来填充字典 112   7.4 小结 113   第8章 函数 114   8.1 定义函数 114   8.1.1 向函数传递信息 115   8.1.2 实参和形参 115   8.2 传递实参 116   8.2.1 位置实参 116   8.2.2 关键字实参 118   8.2.3 默认值 118   8.2.4 等效的函数调用 119   8.2.5 避免实参错误 120   8.3 返回值 121   8.3.1 返回简单值 121   8.3.2 让实参变成可选的 122   8.3.3 返回字典 123   8.3.4 结合使用函数和while循环 124   8.4 传递列表 126   8.4.1 在函数中修改列表 126   8.4.2 禁止函数修改列表 129   8.5 传递任意数量的实参 130   8.5.1 结合使用位置实参和任意数量实参 131   8.5.2 使用任意数量的关键字实参 131   8.6 将函数存储在模块中 133   8.6.1 导入整个模块 133   8.6.2 导入特定的函数 134   8.6.3 使用as给函数指定别名 134   8.6.4 使用as给模块指定别名 135   8.6.5 导入模块中的所有函数 135   8.7 函数编写指南 136   8.8 小结 137   第9章 类 138   9.1 创建和使用类 138   9.1.1 创建Dog类 139   9.1.2 根据类创建实例 140   9.2 使用类和实例 142   9.2.1 Car类 143   9.2.2 给属性指定默认值 143   9.2.3 修改属性的值 144   9.3 继承 147   9.3.1 子类的方法__init__() 147   9.3.2 Python 2.7中的继承 149   9.3.3 给子类定义属性和方法 149   9.3.4 重写父类的方法 150   9.3.5 将实例用作属性 150   9.3.6 模拟实物 152   9.4 导入类 153   9.4.1 导入单个类 153   9.4.2 在一个模块中存储多个类 155   9.4.3 从一个模块中导入多个类 156   9.4.4 导入整个模块 157   9.4.5 导入模块中的所有类 157   9.4.6 在一个模块中导入另一个模块 157   9.4.7 自定义工作流程 158   9.5 Python标准库 159   9.6 类编码风格 161   9.7 小结 161   第10章 文件和异常 162   10.1 从文件中读取数据 162   10.1.1 读取整个文件 162   10.1.2 文件路径 164   10.1.3 逐行读取 165   10.1.4 创建一个包含文件各行内容的列表 166   10.1.5 使用文件的内容 166   10.1.6 包含一百万位的大型文件 168   10.1.7 圆周率值中包含你的生日吗 168   10.2 写入文件 169   10.2.1 写入空文件 170   10.2.2 写入多行 170   10.2.3 附加到文件 171   10.3 异常 172   10.3.1 处理ZeroDivisionError异常 172   10.3.2 使用try-except 代码块 173   10.3.3 使用异常避免崩溃 173   10.3.4 else 代码块 174   10.3.5 处理FileNotFoundError异常 175   10.3.6 分析文本 176   10.3.7 使用多个文件 177   10.3.8 失败时一声不吭 178   10.3.9 决定报告哪些错误 179   10.4 存储数据 180   10.4.1 使用json.dump()和json.load() 180   10.4.2 保存和读取用户生成的数据 181   10.4.3 重构 183   10.5 小结 186   第11章 测试代码 187   11.1 测试函数 187   11.1.1 单元测试和测试用例 188   11.1.2 可通过的测试 188   11.1.3 不能通过的测试 190   11.1.4 测试未通过时怎么办 191   11.1.5 添加新测试 191   11.2 测试类 193   11.2.1 各种断言方法 193   11.2.2 一个要测试的类 194   11.2.3 测试AnonymousSurvey类 195   11.2.4 方法setUp() 197   11.3 小结 199   第二部分 项 目   项目1 外星人入侵 202   第12章 武装飞船 203   12.1 规划项目 203   12.2 安装Pygame 204   12.2.1 使用pip安装Python包 204   12.2.2 在Linux系统中安装Pygame 206   12.2.3 在OS X系统中安装Pygame 207   12.2.4 在Windows系统中安装Pygame 207   12.3 开始游戏项目 207   12.3.1 创建Pygame窗口以及响应用户输入 208   12.3.2 设置背景色 209   12.3.3 创建设置类 210   12.4 添加飞船图像 211   12.4.1 创建Ship类 212   12.4.2 在屏幕上绘制飞船 213   12.5 重构:模块game_functions 214   12.5.1 函数check_events() 214   12.5.2 函数update_screen() 215   12.6 驾驶飞船 216   12.6.1 响应按键 216   12.6.2 允许不断移动 217   12.6.3 左右移动 219   12.6.4 调整飞船的速度 220   12.6.5 限制飞船的活动范围 221   12.6.6 重构check_events() 222   12.7 简单回顾 223   12.7.1 alien_invasion.py 223   12.7.2 settings.py 223   12.7.3 game_functions.py 223   12.7.4 ship.py 223   12.8 射击 224   12.8.1 添加子弹设置 224   12.8.2 创建Bullet类 224   12.8.3 将子弹存储到编组中 226   12.8.4 开火 227   12.8.5 删除已消失的子弹 228   12.8.6 限制子弹数量 229   12.8.7 创建函数update_bullets() 229   12.8.8 创建函数fire_bullet() 230   12.9 小结 231   第13章 外星人 232   13.1 回顾项目 232   13.2 创建第一个外星人 233   13.2.1 创建Alien类 233   13.2.2 创建Alien实例 234   13.2.3 让外星人出现在屏幕上 235   13.3 创建一群外星人 236   13.3.1 确定一行可容纳多少个外星人 236   13.3.2 创建多行外星人 236   13.3.3 创建外星人群 237   13.3.4 重构create_fleet() 239   13.3.5 添加行 240   13.4 让外星人群移动 242   13.4.1 向右移动外星人 243   13.4.2 创建表示外星人移动方向的设置 244   13.4.3 检查外星人是否撞到了屏幕边缘 244   13.4.4 向下移动外星人群并改变移动方向 245   13.5 射杀外星人 246   13.5.1 检测子弹与外星人的碰撞 246   13.5.2 为测试创建大子弹 247   13.5.3 生成新的外星人群 248   13.5.4 提高子弹的速度 249   13.5.5 重构update_bullets() 249   13.6 结束游戏 250   13.6.1 检测外星人和飞船碰撞 250   13.6.2 响应外星人和飞船碰撞 251   13.6.3 有外星人到达屏幕底端 254   13.6.4 游戏结束 255   13.7 确定应运行游戏的哪些部分 255   13.8 小结 256   第14章 记分 257   14.1 添加Play 按钮 257   14.1.1 创建Button类 258   14.1.2 在屏幕上绘制按钮 259   14.1.3 开始游戏 261   14.1.4 重置游戏 261   14.1.5 将Play 按钮切换到非活动状态 263   14.1.6 隐藏光标 263   14.2 提高等级 264   14.2.1 修改速度设置 264   14.2.2 重置速度 266   14.3 记分 267   14.3.1 显示得分 267   14.3.2 创建记分牌 268   14.3.3 在外星人被消灭时更新得分 270   14.3.4 将消灭的每个外星人的点数都计入得分 271   14.3.5 提高点数 271   14.3.6 将得分圆整 272   14.3.7 最高得分 274   14.3.8 显示等级 276   14.3.9 显示余下的飞船数 279   14.4 小结 283   项目2 数据可视化 284   第15章 生成数据 285   15.1 安装matplotlib 285   15.1.1 在Linux系统中安装matplotlib 286   15.1.2 在OS X系统中安装matplotlib 286   15.1.3 在Windows系统中安装matplotlib 286   15.1.4 测试matplotlib 287   15.1.5 matplotlib画廊 287   15.2 绘制简单的折线图 287   15.2.1 修改标签文字和线条粗细 288   15.2.2 校正图形 289   15.2.3 使用scatter()绘制散点图并设置其样式 290   15.2.4 使用scatter()绘制一系列点 291   15.2.5 自动计算数据 292   15.2.6 删除数据点的轮廓 293   15.2.7 自定义颜色 293   15.2.8 使用颜色映射 294   15.2.9 自动保存图表 295   15.3 随机漫步 295   15.3.1 创建RandomWalk()类 296   15.3.2 选择方向 296   15.3.3 绘制随机漫步图 297   15.3.4 模拟多次随机漫步 298   15.3.5 设置随机漫步图的样式 299   15.3.6 给点着色 299   15.3.7 重新绘制起点和终点 300   15.3.8 隐藏坐标轴 301   15.3.9 增加点数 301   15.3.10 调整尺寸以适合屏幕 302   15.4 使用Pygal模拟掷骰子 303   15.4.1 安装Pygal 304   15.4.2 Pygal画廊 304   15.4.3 创建Die类 304   15.4.4 掷骰子 305   15.4.5 分析结果 305   15.4.6 绘制直方图 306   15.4.7 同时掷两个骰子 307   15.4.8 同时掷两个面数不同的骰子 309   15.5 小结 311   第16章 下载数据 312   16.1 CSV文件格式 312   16.1.1 分析CSV文件头 313   16.1.2 打印文件头及其位置 314   16.1.3 提取并读取数据 314   16.1.4 绘制气温图表 315   16.1.5 模块datetime 316   16.1.6 在图表中添加日期 317   16.1.7 涵盖更长的时间 318   16.1.8 再绘制一个数据系列 319   16.1.9 给图表区域着色 320   16.1.10 错误检查 321   16.2 制作世界人口地图:JSON格式 324   16.2.1 下载世界人口数据 324   16.2.2 提取相关的数据 324   16.2.3 将字符串转换为数字值 326   16.2.4 获取两个字母的国别码 327   16.2.5 制作世界地图 329   16.2.6 在世界地图上呈现数字数据 330   16.2.7 绘制完整的世界人口地图 331   16.2.8 根据人口数量将国家分组 333   16.2.9 使用Pygal设置世界地图的样式 334   16.2.10 加亮颜色主题 335   16.3 小结 337   第17章 使用API 338   17.1 使用Web API 338   17.1.1 Git和GitHub 338   17.1.2 使用API调用请求数据 339   17.1.3 安装requests 339   17.1.4 处理API响应 340   17.1.5 处理响应字典 340   17.1.6 概述最受欢迎的仓库 342   17.1.7 监视API的速率限制 343   17.2 使用Pygal可视化仓库 344   17.2.1 改进Pygal图表 346   17.2.2 添加自定义工具提示 347   17.2.3 根据数据绘图 349   17.2.4 在图表中添加可单击的链接 350   17.3 Hacker News API 350   17.4 小结 353   项目3 Web 应用程序 354   第18章 Django入门 355   18.1 建立项目 355   18.1.1 制定规范 355   18.1.2 建立虚拟环境 356   18.1.3 安装virtualenv 356   18.1.4 激活虚拟环境 357   18.1.5 安装Django 357   18.1.6 在Django中创建项目 357   18.1.7 创建数据库 358   18.1.8 查看项目 359   18.2 创建应用程序 360   18.2.1 定义模型 360   18.2.2 激活模型 362   18.2.3 Django管理网站 363   18.2.4 定义模型Entry 365   18.2.5 迁移模型Entry 366   18.2.6 向管理网站注册Entry 366   18.2.7 Django shell 367   18.3 创建网页:学习笔记主页 369   18.3.1 映射URL 369   18.3.2 编写视图 371   18.3.3 编写模板 372   18.4 创建其他网页 373   18.4.1 模板继承 373   18.4.2 显示所有主题的页面 375   18.4.3 显示特定主题的页面 378   18.5 小结 381   第19章 用户账户 382   19.1 让用户能够输入数据 382   19.1.1 添加新主题 382   19.1.2 添加新条目 386   19.1.3 编辑条目 390   19.2 创建用户账户 392   19.2.1 应用程序users 393   19.2.2 登录页面 394   19.2.3 注销 396   19.2.4 注册页面 397   19.3 让用户拥有自己的数据 400   19.3.1 使用@login_required限制访问 400   19.3.2 将数据关联到用户 402   19.3.3 只允许用户访问自己的主题 405   19.3.4 保护用户的主题 405   19.3.5 保护页面edit_entry 406   19.3.6 将新主题关联到当前用户 406   19.4 小结 408   第20章 设置应用程序的样式并对其进行部署 409   20.1 设置项目“学习笔记”的样式 409   20.1.1 应用程序django-bootstrap3 410   20.1.2 使用Bootstrap来设置项目“学习笔记”的样式 411   20.1.3 修改base.html 411   20.1.4 使用jumbotron设置主页的样式 414   20.1.5 设置登录页面的样式 415   20.1.6 设置new_topic页面的样式 416   20.1.7 设置topics页面的样式 417   20.1.8 设置topic页面中条目的样式 417   20.2 部署“学习笔记” 419   20.2.1 建立Heroku账户 420   20.2.2 安装Heroku Toolbelt 420   20.2.3 安装必要的包 420   20.2.4 创建包含包列表的文件requirements.txt 421   20.2.5 指定Python版本 422   20.2.6 为部署到Herohu而修改settings.py 422   20.2.7 创建启动进程的Procfile 423   20.2.8 为部署到Herohu而修改wsgi.py 423   20.2.9 创建用于存储静态文件的目录 424   20.2.10 在本地使用gunicorn服务器 424   20.2.11 使用Git跟踪项目文件 425   20.2.12 推送到Heroku 426   20.2.13 在Heroku上建立数据库 427   20.2.14 改进Heroku部署 428   20.2.15 确保项目的安全 429   20.2.16 提交并推送修改 430   20.2.17 创建自定义错误页面 431   20.2.18 继续开发 434   20.2.19 设置SECRET_KEY 434   20.2.20 将项目从Heroku删除 434   20.3 小结 435   附录A 安装Python 436   附录B 文本编辑器 441   附录C 寻求帮助 447   附录D 使用Git进行版本控制 451   后记 460[1]

2018-02-27

算法第四版-PDF-网盘链接

 第1章  基础 1   1.1 基础编程模型 4   1.1.1 Java程序的基本结构 4   1.1.2 原始数据类型与表达式 6   1.1.3  语句 8   1.1.4  简便记法 9   1.1.5  数组 10   1.1.6  静态方法 12   1.1.7  API 16   1.1.8  字符串 20   1.1.9  输入输出 21   1.1.10  二分查找 28   1.1.11  展望 30   1.2  数据抽象 38   1.2.1  使用抽象数据类型 38   1.2.2  抽象数据类型举例 45   1.2.3  抽象数据类型的实现 52   1.2.4  更多抽象数据类型的实现 55   1.2.5  数据类型的设计 60   1.3  背包、队列和栈 74   1.3.1  API 74   1.3.2  集合类数据类型的实现 81   1.3.3  链表 89   1.3.4  综述 98   1.4  算法分析 108   1.4.1  科学方法 108   1.4.2  观察 108   1.4.3  数学模型 112   1.4.4  增长数量级的分类 117   1.4.5  设计更快的算法 118   1.4.6  倍率实验 121   1.4.7  注意事项 123   1.4.8  处理对于输入的依赖 124   1.4.9  内存 126   1.4.10  展望 129   1.5  案例研究:union-find算法 136   1.5.1  动态连通性 136   1.5.2  实现 140   1.5.3  展望 148   第2章  排序 152   2.1  初级排序算法 153   2.1.1  游戏规则 153   2.1.2  选择排序 155   2.1.3  插入排序 157   2.1.4  排序算法的可视化 159   2.1.5  比较两种排序算法 159   2.1.6  希尔排序 162   2.2  归并排序 170   2.2.1  原地归并的抽象方法 170   2.2.2  自顶向下的归并排序 171   2.2.3  自底向上的归并排序 175   2.2.4  排序算法的复杂度 177   2.3  快速排序 182   2.3.1  基本算法 182   2.3.2  性能特点 185   2.3.3  算法改进 187   2.4  优先队列 195   2.4.1  API 195   2.4.2  初级实现 197   2.4.3  堆的定义 198   2.4.4  堆的算法 199   2.4.5  堆排序 205   2.5  应用 214   2.5.1  将各种数据排序 214   2.5.2  我应该使用哪种排序算法 218   2.5.3  问题的归约 219   2.5.4  排序应用一览 221   第3章 查找 227   3.1 符号表 228   3.1.1 API 228   3.1.2 有序符号表 230   3.1.3 用例举例 233   3.1.4 无序链表中的顺序查找 235   3.1.5 有序数组中的二分查找 238   3.1.6 对二分查找的分析 242   3.1.7 预览 244   3.2 二叉查找树 250   3.2.1 基本实现 250   3.2.2 分析 255   3.2.3 有序性相关的方法与删除操作 257   3.3 平衡查找树 269   3.3.1 2-3查找树 269   3.3.2 红黑二叉查找树 275   3.3.3 实现 280   3.3.4 删除操作 282   3.3.5 红黑树的性质 284

2018-02-27

java核心技术卷二-PDF-网盘链接

译者序前言第1章 流与文件 1.1 流 1.1.1 读写字节 1.1.2 完整的流家族 1.1.3 组合流过滤器 1.2 文本输入与输出 1.2.1 如何写出文本输出 1.2.2 如何读入文本输入 1.2.3 以文本格式存储对象 1.2.4 字符集 1.3 读写二进制数据 1.4 ZIP文档 1.5 对象流与序列化 1.5.1 理解对象序列化的文件格式 1.5.2 修改默认的序列化机制 1.5.3 序列化单例和类型安全的枚举 1.5.4 版本管理 1.5.5 为克隆使用序列化 1.6 文件管理 1.7 新I/O 1.7.1 内存映射文件 1.7.2 缓冲区数据结构 1.7.3 文件加锁机制 1.8 正则表达式 …… 第2章 XML 第3章 网络 第4章 数据库编程第5章 国际化 第6章 高级Swing第7章 高级AWT 第8章 JavaBean构件第9章 安全 第10章 分布式对象 第11章 脚本、编译与注解处理 第12章 本地方法

2018-02-27

从入门到精通java第四版——PDF——网盘链接

1.1 Java简介 3 1.1.1 什么是Java语言 3 1.1.2 Java的应用领域 3 1.1.3 Java的版本 4 1.1.4 怎样学好Java 5 1.1.5 Java API文档 6 1.2 Java语言的特性 7 1.2.1 简单 7 1.2.2 面向对象 7 1.2.3 分布性 7 1.2.4 可移植性 7 1.2.5 解释型 8 1.2.6 安全性 8 1.2.7 健壮性 8 1.2.8 多线程 8 1.2.9 高性能 8 1.2.10 动态 8[2] 1.3 搭建Java环境 9 1.3.1 JDK下载 9 1.3.2 Windows系统的JDK环境 11 1.4 第一个Java程序 14 1.5 小结 15 1.6 实践与练习 16 第2章 熟悉Eclipse开发工具 17 视频讲解:13分钟 2.1 熟悉Eclipse 18 2.1.1 Eclipse简介 18 2.1.2 下载Eclipse 18 2.1.3 安装Eclipse的中文语言包 20 2.1.4 Eclipse的配置与启动 23 2.1.5 Eclipse工作台 25 2.1.6 透视图与视图 25 2.1.7 菜单栏 26 2.1.8 工具栏 29 2.1.9 “包资源管理器”视图 30 2.1.10 “控制台”视图 30 2.2 使用Eclipse 31 2.2.1 创建Java项目 31 2.2.2 创建Java类文件 31 2.2.3 使用编辑器...[2]

2018-02-27

从入门到精通HTML5——PDF——网盘链接

第1篇 HTML基础   第1章 HTML基础 3   教学录像:22分钟   1.1 HTML的基本概念 4   1.2 HTML发展史 4   1.3 HTML的基本结构 5   1.3.1 HTML文件的编写方法 5   1.3.2 文件开始标签&lt;html&gt; 7   1.3.3 文件头部标签&lt;head&gt; 7   1.3.4 文件标题标签&lt;title&gt; 7   1.3.5 文件主体标签&lt;body&gt; 7   1.3.6 编写文件的注意事项 8   1.4 编写第一个HTML文件 8   1.4.1 HTML文件的编写方法 8   1.4.2 手工编写页面 9   1.4.3 使用可视化软件制作页面 10   1.4.4 使用浏览器浏览HTML文件 14   1.4.5 使用HTML开发的明日图书网 14   1.5 小结 15   1.6 习题 16   第2章 HTML文件基本标记 17   教学录像:44分钟   2.1 HTML头部标记 18   2.2 标题标记&lt;title&gt; 18   2.3 元信息标记&lt;meta&gt; 19   2.3.1 设置页面关键字 19   2.3.2 设置页面描述 20   2.3.3 设置编辑工具 20   2.3.4 设定作者信息 21   2.3.5 限制搜索方式 22   2.3.6 设置网页文字及语言 22   2.3.7 设置网页的定时跳转 23   2.3.8 设定有效期限 24   2.3.9 禁止从缓存中调用 24   2.3.10 删除过期的cookie 25   2.3.11 强制打开新窗口 25   2.3.12 设置网页的过渡效果 26   2.4 基底网址标记&lt;base&gt; 29   2.5 页面的主体标记&lt;body&gt; 30   2.5.1 设置文字颜色——text 31   2.5.2 背景颜色属性——bgcolor 32   2.5.3 背景图像属性——background 32   2.5.4 设置链接文字属性——link 35   2.5.5 设置边距——margin 37   2.6 页面的注释标记 38   2.7 实例演练——创建基本的HTML网页 38   2.8 小结 39   2.9 习题 40   第3章 设计网页文本内容 41   教学录像:29分钟   3.1 标题文字的建立 42   3.1.1 标题文字标记&lt;h&gt; 42   3.1.2 标题文字的对齐方式——align 43   3.2 设置文字格式 44   3.2.1 设置文字字体——face 44   3.2.2 设置字号——size 45   3.2.3 设置文字颜色——color 46   3.2.4 粗体、斜体、下划线——strong、em、u 46   3.2.5 上标与下标——sup、sub 47   3.2.6 设置删除线——strike 48   3.2.7 等宽文字标记——code 49   3.2.8 空格——&amp;nbsp; 49   3.2.9 其他特殊符号 50   3.3 设置段落格式 51   3.3.1 段落标记——p 51   3.3.2 取消文字换行标记——nobr 52   3.3.3 换行标记——br 53   3.3.4 保留原始排版方式标记——pre 53   3.3.5 居中对齐标记——center 54   3.3.6 向右缩进标记——blockquote 55   3.4 水平线标记 56   3.4.1 添加水平线——hr 56   3.4.2 设置水平线的宽度与高度   ——width、height 57   3.4.3 设置水平线的颜色——color 58   3.4.4 设置水平线的对齐方式——align 59   3.4.5 去掉水平线阴影——noshade 60   3.5 其他文字标记 60   3.5.1 文字标注标记——ruby 60   3.5.2 声明变量标记——var 61   3.5.3 忽视HTML标记   ——plaintext、xmp 62   3.6 小结 63   3.7 习题 63   第4章 使用列表 65   教学录像:35分钟   4.1 列表的标记 66   4.2 使用无序列表 66   4.2.1 无序列表标记——ul 66   4.2.2 无序列表的符号类型——type 67   4.3 使用有序列表 69   4.3.1 有序列表标记——ol 69   4.3.2 有序列表的属性——type 70   4.3.3 有序列表的起始数值——start 72   4.4 定义列表标记——dl 73   4.5 菜单列表标记——menu 74   4.6 目录列表——dir 75   4.7 使用嵌套列表 76   4.7.1 定义列表的嵌套 77   4.7.2 无序列表和有序列表的嵌套 78   4.8 小结 79   4.9 习题 80   第5章 超链接 81   教学录像:22分钟   5.1 超链接的基本知识 82   5.1.1 超链接 82   5.1.2 绝对路径 82   5.1.3 相对路径 82   5.2 超链接的建立 83   5.2.1 超链接标记的基本语法 83   5.2.2 建立文本超链接 83   5.2.3 设置超链接的目标窗口 85   5.3 内部链接 87   5.4 书签链接 89   5.4.1 建立书签 89   5.4.2 链接到同一页面的书签 91   5.4.3 链接到不同页面的书签 92   5.5 外部链接 93   5.5.1 通过HTTP协议 94   5.5.2 通过FTP 94   5.5.3 发送E-mail 95   5.5.4 下载文件 96   5.6 其他链接 98   5.6.1 脚本链接 98   5.6.2 空链接 99   5.7 小结 99   5.8 习题 100   第6章 使用图像 101   教学录像:35分钟   6.1 图像的基本格式 102   6.2 添加图像——img 102   6.3 设置图像属性 103   6.3.1 图像高度——height 103   6.3.2 图像宽度——width 104   6.3.3 图像边框——border 105   6.3.4 图像水平间距——hspace 107   6.3.5 图像垂直间距——vspace 108   6.3.6 图像相对于文字基准线的对齐方式   ——align 108   6.3.7 图像的提示文字——alt 110   6.4 图像的超链接 111   6.4.1 设置图像的超链接 111   6.4.2 设置图像热区链接 112   6.5 小结 116   6.6 习题 116   第7章 表格的应用 118   教学录像:48分钟   7.1 创建表格 119   7.1.1 表格的基本构成——table、tr、td 119   7.1.2 表格的标题——caption 120   7.1.3 表格的表头——th 121   7.2 设置表格基本属性 123   7.2.1 表格的宽度——width 123   7.2.2 表格的高度——height 125   7.2.3 表格的对齐方式——align 126   7.3 设置表格的边框 127   7.3.1 表格边框的宽度——border 127   7.3.2 表格边框的颜色——bordercolor 128   7.3.3 表格内框的宽度——cellspacing 130   7.3.4 表格内文字与边框的间距   ——cellpadding 131   7.4 设置表格背景 132   7.4.1 表格的背景颜色——bgcolor 132   7.4.2 表格的背景图像——background 133   7.5 设置表格的行属性 134   7.5.1 高度的控制——height 134   7.5.2 行的边框颜色——bordercolor 135   7.5.3 行的背景颜色——bgcolor、background 136   7.5.4 行文字的水平对齐方式——align 137   7.5.5 行文字的垂直对齐方式——valign 139   7.5.6 表格标题的垂直对齐方式——align 140   7.6 调整单元格属性 141   7.6.1 单元格大小——width、height 141   7.6.2 单元格水平跨度——colspan 142   7.6.3 单元格垂直跨度——rowspan 143   7.6.4 单元格对齐方式——align、valign 144   7.6.5 单元格的背景色 146   7.6.6 单元格的边框颜色——bordercolor 147   7.6.7 单元格的亮边框——bordercolorlight 148   7.6.8 单元格的暗边框——bordercolordark 150   7.6.9 单元格的背景图像——background 151   7.7 表格的结构 152   7.7.1 表格的表头标记——thead 153   7.7.2 表格的表主体标记——tbody 154   7.7.3 表格的表尾标记——tfoot 156   7.8 表格的嵌套 157   7.9 小结 159   7.10 习题 159   第8章 层标记——div 161   教学录像:33分钟   8.1 层 162   8.1.1 层的分类 162   8.1.2 定义数据块 162   8.2 &lt;div&gt;标签 163   8.2.1 &lt;div&gt;标签的简介 163   8.2.2 &lt;div&gt;标签的属性 164   8.2.3 &lt;span&gt;标签与&lt;div&gt;标签 170   8.3 &lt;iframe&gt;标签 172   8.3.1 &lt;iframe&gt;标签的简介 172   8.3.2 &lt;iframe&gt;标签的属性 172   8.4 &lt;layer&gt;标签和&lt;ilayer&gt;标签 174   8.4.1 标签层的使用 175   8.4.2 &lt;layer&gt;标签和&lt;ilayer&gt;标签的区别 176   8.5 应用div制作下拉菜单导航条 176   8.6 小结 179   8.7 习题 179   第9章 编辑表单 181   教学录像:26分钟   9.1 使用表单标签——form 182   9.1.1 处理动作——action 182   9.1.2 表单名称——name 183   9.1.3 传送方法——method 183   9.1.4 编码方式——enctype 184   9.1.5 目标显示方式——target 185   9.2 添加控件 185   9.3 输入类的控件 186   9.3.1 文字字段——text 186   9.3.2 密码域——password 187   9.3.3 单选按钮——radio 188   9.3.4 复选框——checkbox 189   9.3.5 普通按钮——button 190   9.3.6 提交按钮——submit 191   9.3.7 重置按钮——reset 192   9.3.8 图像域——image 193   9.3.9 隐藏域——hidden 195   9.3.10 文件域——file 195   9.4 列表/菜单标记 197   9.5 文本域标记——textarea 198   9.6 id标记 199   9.7 小结 200   9.8 习题 200   第10章 多媒体页面 202   视频讲解:18分钟   10.1 设置滚动文字 203   10.1.1 滚动文字标签——marquee 203   10.1.2 滚动方向属性——direction 203   10.1.3 滚动方式属性——behavior 204   10.1.4 滚动速度属性——scrollamount 205   10.1.5 滚动延迟属性——scrolldelay 206   10.1.6 滚动循环属性——loop 207   10.1.7 滚动范围属性——width、height 208   10.1.8 滚动背景颜色属性——bgcolor 209   10.1.9 滚动空间属性——hspace、vspace 209   10.2 添加背景音乐 211   10.2.1 设置背景音乐——bgsound 211   10.2.2 设置循环播放次数——loop 212   10.3 添加多媒体文件 213   10.3.1 添加多媒体文件标记——embed 213   10.3.2 设置自动运行——autostart 214   10.3.3 设置媒体文件的循环播放——loop 215   10.3.4 隐藏面板——hidden 216   10.3.5 添加其他类型的媒体文件 217   10.4 小结 217   10.5 习题 218   第2篇 HTML 5高级应用   第11章 HTML 5的新特性 221   视频讲解:6分钟   11.1 谁在开发HTML 5 222   11.2 HTML 5的新认识 222   11.2.1 兼容性 222   11.2.2 实用性和用户优先 222   11.2.3 化繁为简 223   11.3 无插件范式 223   11.4 HTML 5的新特性 224   11.5 小结 224   第12章 HTML 5与HTML 4的区别 225   视频讲解:51分钟   12.1 语法的改变 226   12.1.1 HTML 5的语法变化 226   12.1.2 HTML 5中的标记方法 226   12.1.3 HTML 5语法中的3个要点 227   12.1.4 标签实例 228   12.2 新增的元素和废除的元素 228   12.2.1 新增的结构元素 228   12.2.2 新增的块级的语义元素 230   12.2.3 新增的行内的语义元素 231   12.2.4 新增的嵌入多媒体元素与交互性元素 231   12.2.5 新增的input元素的类型 232   12.2.6 废除的元素 233   12.3 新增的属性和废除的属性 234   12.3.1 新增的属性 234   12.3.2 废除的属性 236   12.4 全局属性 237   12.4.1 contentEditable属性 237   12.4.2 designMode属性 238   12.4.3 hidden属性 239   12.4.4 spellcheck属性 239   12.4.5 tabindex属性 240   12.5 小结 240   12.6 习题 240   第13章 HTML 5的结构 242   视频讲解:20分钟   13.1 新增的主体结构元素 243   13.1.1 article元素 243   13.1.2 section元素 245   13.1.3 nav元素 247   13.1.4 aside元素 248   13.1.5 time元素 250   13.1.6 pubdate属性 250   13.2 新增的非主体结构元素 251   13.2.1 header元素 251   13.2.2 hgroup元素 252   13.2.3 footer元素 252   13.2.4 address元素 253   13.3 小结 253   13.4 习题 254   第14章 HTML 5中的表单 255   视频讲解:50分钟   14.1 新增表单元素与属性 256   14.1.1 新增的属性 256   14.1.2 增加与改良的input元素的种类 259   14.1.3 output元素的添加 264   14.1.4 应用新增元素制作注册表单 264   14.2 对表单的验证 266   14.2.1 自动验证 266   14.2.2 checkValidity显式验证法 267   14.2.3 避免验证 268   14.2.4 使用setCustomValidity方法自定义   错误信息 268   14.3 增加的页面元素 269   14.3.1 新增的figure元素 270   14.3.2 新增的details元素 271   14.3.3 新增的mark元素 272   14.3.4 新增的progress元素 274   14.3.5 新增的meter元素 275   14.3.6 改良的ol列表 276   14.3.7 改良的dl列表 276   14.3.8 加以严格限制的cite元素 277   14.3.9 重新定义的small元素 278   14.4 小结 278   14.5 习题 279   第15章 HTML 5中的文件与拖放 280   视频讲解:40分钟   15.1 选择文件 281   15.1.1 通过file对象选择文件 281   15.1.2 使用blob接口获取文件的类型与大小 282   15.1.3 通过类型过滤选择的文件 283   15.2 使用FileReader接口读取文件 285   15.2.1 检测浏览器是否支持FileReader接口 285   15.2.2 FileReader接口的方法 285   15.2.3 使用readAsDataURL方法预览图片 286   15.2.4 使用readAsText方法读取文本文件 287   15.2.5 FileReader接口中的事件 288   15.3 拖放API 290   15.3.1 实现拖放的步骤 290   15.3.2 通过拖放显示欢迎信息 291   15.4 dataTransfer对象应用详解 293   15.4.1 使用effectAllowed和dropEffect属性   设置拖放效果 293   15.4.2 使用setDragImage方法设置拖放图标 294   15.5 小结 295   15.6 习题 295   第16章 多媒体播放 296   视频讲解:35分钟   16.1 HTML 5多媒体的简述 297   16.1.1 HTML 4中多媒体的应用 297   16.1.2 HTML 5页面中的多媒体 297   16.2 多媒体元素基本属性 298   16.3 多媒体元素常用方法 302   16.3.1 媒体播放时的方法 302   16.3.2 canPlayType(type)方法 304   16.4 多媒体元素重要事件 304   16.4.1 事件处理方式 304   16.4.2 事件介绍 305   16.4.3 事件实例 306   16.5 小结 308   16.6 习题 309   第17章 绘制图形 310   视频讲解:1小时32分钟   17.1 canvas的基础知识 311   17.1.1 canvas是什么 311   17.1.2 在页面中放置canvas元素 311   17.1.3 绘制带边框的矩形 312   17.2 在画布中使用路径 314   17.2.1 使用arc方法绘制圆形 314   17.2.2 使用moveTo与lineTo路径绘制火柴人 316   17.2.3 贝塞尔和二次方曲线 317   17.3 运用样式与颜色 319   17.3.1 fillStyle 和 strokeStyle属性 319   17.3.2 透明度 globalAlpha 321   17.3.3 线型 Line styles 323   17.4 绘制渐变图形 325   17.4.1 绘制线性渐变 325   17.4.2 绘制径向渐变 326   17.5 绘制变形图形 328   17.5.1 坐标的变换 328   17.5.2 矩阵变换 330   17.6 组合多个图形 333   17.7 给图形绘制阴影 335   17.8 应用图像 336   17.8.1 绘制图像 336   17.8.2 图像的局部放大 338   17.8.3 图像平铺 339   17.8.4 图像裁剪 341   17.8.5 像素的处理 342   17.9 绘制文字 344   17.10 保存与恢复状态 345   17.11 文件的保存 346   17.12 对画布绘制实现动画 347   17.13 综合实例——桌面时钟 348   17.14 小结 350   17.15 习题 351   第18章 数据存储 352   视频讲解:50分钟   18.1 初识Web Storage 353   18.1.1 什么是Web Storage 353   18.1.2 使用Web Storage中的API 353   18.1.3 sessionStorage和localStorage的实例   ——计数器 355   18.1.4 Web Storage综合实例——留言本 357   18.1.5 JSON对象的存数实例——用户信息卡 359   18.2 本地数据库 361   18.2.1 Web SQL数据库简介 361   18.2.2 使用Web SQL Database API 362   18.2.3 本地数据库实例——用户登录 363   18.3 小结 367   18.4 习题 367   第19章 离线应用程序 368   视频讲解:13分钟   19.1 HTML 5离线Web应用概述 369   19.1.1 离线Web应用概述 369   19.1.2 本地缓存与浏览器网页缓存的区别 370   19.2 创建HTML 5离线应用 370   19.2.1 缓存清单(manifest) 370   19.2.2 配置IIS服务器 372   19.2.3 浏览缓存清单 372   19.3 浏览器与服务器的交互过程 373   19.4 applicationCache对象 374   19.4.1 swapCache方法 375   19.4.2 applicationCache对象的事件 376   19.5 小结 379   19.6 习题 379   第20章 使用Web Worker处理线程 380   视频讲解:25分钟   20.1 Web Worker概述 381   20.1.1 创建和使用Worker 381   20.1.2 Web Worker应用实例——求和运算 382   20.2 在Worker内部能做什么 383   20.3 多个JavaScript文件的加载与执行 384   20.4 线程嵌套 384   20.4.1 单层嵌套 385   20.4.2 在多个子线程中进行数据的交互 387   20.5 小结 390   20.6 习题 390   第21章 通信API 391   视频讲解:4分钟   21.1 跨文档消息通信 392   21.1.1 使用postMessageAPI 392   21.1.2 跨文档消息传输 392   21.2 小结 394   第22章 获取地理位置信息 395   视频讲解:12分钟   22.1 Geolocation API的概述 396   22.1.1 使用getCurrentPosition方法获取   当前地理位置 396   22.1.2 持续监视当前地理位置的信息 398   22.1.3 停止获取当前用户的地理位置信息 398   22.2 position对象 398   22.3 在google地图上显示“我在这里” 399   22.4 小结 401   22.5 习题 401   第3篇 HTML 5项目实战   第23章 旅游信息网前台页面 405   视频讲解:20分钟   23.1 概述 406   23.2 网站预览 406   23.3 关键技术 410   23.3.1 网站主体结构设计 410   23.3.2 HTML 5结构元素的使用 410   23.4 网站公共部分设计 411   23.4.1 设计网站公共header 411   23.4.2 设计网站公共footer 418   23.5 网站主页设计 419   23.5.1 显示网站介绍及相关图片 419   23.5.2 主页左侧导航的实现 421   23.6 留下足迹页面设计 424   23.6.1 播放音乐 424   23.6.2 添加留言功能的实现 425   23.7 小结 426   附录 习题参考答案 427   HTML 5从入门到精通   目 录   X   XI

2018-02-27

Python编程 从入门到实践_埃里克·马瑟斯_网盘链接

第1章 起步 2   1.1 搭建编程环境 2   1.1.1 Python 2和Python 3 2   1.1.2 运行Python代码片段 3   1.1.3 Hello World程序 3   1.2 在不同操作系统中搭建Python编程环境 3   1.2.1 在Linux系统中搭建Python编程环境 3   1.2.2 在OS X系统中搭建Python编程环境 6   1.2.3 在Windows系统中搭建Python编程环境 8   1.3 解决安装问题 12   1.4 从终端运行Python程序 13   1.4.1 在Linux和OS X系统中从终端运行Python程序 13   1.4.2 在Windows系统中从终端运行Python程序 13   1.5 小结 14   第2章 变量和简单数据类型 15   2.1 运行hello_world.py时发生的情况 15   2.2 变量 16   2.2.1 变量的命名和使用 16   2.2.2 使用变量时避免命名错误 17   2.3 字符串 18   2.3.1 使用方法修改字符串的大小写 19   2.3.2 合并(拼接)字符串 19   2.3.3 使用制表符或换行符来添加空白 20   2.3.4 删除空白 21   2.3.5 使用字符串时避免语法错误 22   2.3.6 Python 2中的print语句 23   2.4 数字 24   2.4.1 整数 24   2.4.2 浮点数 25   2.4.3 使用函数str()避免类型错误 25   2.4.4 Python 2中的整数 26   2.5 注释 27   2.5.1 如何编写注释 27   2.5.2 该编写什么样的注释 28   2.6 Python之禅 28   2.7 小结 30   第3章 列表简介 31   3.1 列表是什么 31   3.1.1 访问列表元素 32   3.1.2 索引从0而不是1开始 32   3.1.3 使用列表中的各个值 33   3.2 修改、添加和删除元素 33   3.2.1 修改列表元素 34   3.2.2 在列表中添加元素 34   3.2.3 从列表中删除元素 35   3.3 组织列表 39   3.3.1 使用方法sort()对列表进行永久性排序 39   3.3.2 使用函数sorted()对列表进行临时排序 40   3.3.3 倒着打印列表 41   3.3.4 确定列表的长度 41   3.4 使用列表时避免索引错误 42   3.5 小结 43   第4章 操作列表 44   4.1 遍历整个列表 44   4.1.1 深入地研究循环 45   4.1.2 在for循环中执行更多的操作 46   4.1.3 在for循环结束后执行一些操作 47   4.2 避免缩进错误 47   4.2.1 忘记缩进 48   4.2.2 忘记缩进额外的代码行 48   4.2.3 不必要的缩进 49   4.2.4 循环后不必要的缩进 49   4.2.5 遗漏了冒号 50   4.3 创建数值列表 51   4.3.1 使用函数range() 51   4.3.2 使用range()创建数字列表 51   4.3.3 对数字列表执行简单的统计计算 53   4.3.4 列表解析 53   4.4 使用列表的一部分 54   4.4.1 切片 54   4.4.2 遍历切片 56   4.4.3 复制列表 56   4.5 元组 59   4.5.1 定义元组 59   4.5.2 遍历元组中的所有值 59   4.5.3 修改元组变量 60   4.6 设置代码格式 61   4.6.1 格式设置指南 61   4.6.2 缩进 61   4.6.3 行长 61   4.6.4 空行 62   4.6.5 其他格式设置指南 62   4.7 小结 63   第5章 if语句 64   5.1 一个简单示例 64   5.2 条件测试 65   5.2.1 检查是否相等 65   5.2.2 检查是否相等时不考虑大小写 65   5.2.3 检查是否不相等 66   5.2.4 比较数字 67   5.2.5 检查多个条件 67   5.2.6 检查特定值是否包含在列表中 68   5.2.7 检查特定值是否不包含在列表中 69   5.2.8 布尔表达式 69   5.3 if语句 70   5.3.1 简单的if语句 70   5.3.2 if-else语句 71   5.3.3 if-elif-else结构 72   5.3.4 使用多个elif代码块 73   5.3.5 省略else代码块 74   5.3.6 测试多个条件 74   5.4 使用if语句处理列表 76   5.4.1 检查特殊元素 77   5.4.2 确定列表不是空的 78   5.4.3 使用多个列表 78   5.5 设置if语句的格式 80   5.6 小结 80   第6章 字典 81   6.1 一个简单的字典 81   6.2 使用字典 82   6.2.1 访问字典中的值 82   6.2.2 添加键—值对 83   6.2.3 先创建一个空字典 83   6.2.4 修改字典中的值 84   6.2.5 删除键—值对 85   6.2.6 由类似对象组成的字典 86   6.3 遍历字典 87   6.3.1 遍历所有的键—值对 87   6.3.2 遍历字典中的所有键 89   6.3.3 按顺序遍历字典中的所有键 91   6.3.4 遍历字典中的所有值 91   6.4 嵌套 93   6.4.1 字典列表 93   6.4.2 在字典中存储列表 95   6.4.3 在字典中存储字典 97   6.5 小结 99   第7章 用户输入和while循环 100   7.1 函数input()的工作原理 100   7.1.1 编写清晰的程序 101   7.1.2 使用int()来获取数值输入 102   7.1.3 求模运算符 103   7.1.4 在Python 2.7中获取输入 104   7.2 while循环简介 104   7.2.1 使用while循环 104   7.2.2 让用户选择何时退出 105   7.2.3 使用标志 106   7.2.4 使用break退出循环 107   7.2.5 在循环中使用continue 108   7.2.6 避免无限循环 109   7.3 使用while循环来处理列表和字典 110   7.3.1 在列表之间移动元素 110   7.3.2 删除包含特定值的所有列表元素 111   7.3.3 使用用户输入来填充字典 112   7.4 小结 113   第8章 函数 114   8.1 定义函数 114   8.1.1 向函数传递信息 115   8.1.2 实参和形参 115   8.2 传递实参 116   8.2.1 位置实参 116   8.2.2 关键字实参 118   8.2.3 默认值 118   8.2.4 等效的函数调用 119   8.2.5 避免实参错误 120   8.3 返回值 121   8.3.1 返回简单值 121   8.3.2 让实参变成可选的 122   8.3.3 返回字典 123   8.3.4 结合使用函数和while循环 124   8.4 传递列表 126   8.4.1 在函数中修改列表 126   8.4.2 禁止函数修改列表 129   8.5 传递任意数量的实参 130   8.5.1 结合使用位置实参和任意数量实参 131   8.5.2 使用任意数量的关键字实参 131   8.6 将函数存储在模块中 133   8.6.1 导入整个模块 133   8.6.2 导入特定的函数 134   8.6.3 使用as给函数指定别名 134   8.6.4 使用as给模块指定别名 135   8.6.5 导入模块中的所有函数 135   8.7 函数编写指南 136   8.8 小结 137   第9章 类 138   9.1 创建和使用类 138   9.1.1 创建Dog类 139   9.1.2 根据类创建实例 140   9.2 使用类和实例 142   9.2.1 Car类 143   9.2.2 给属性指定默认值 143   9.2.3 修改属性的值 144   9.3 继承 147   9.3.1 子类的方法__init__() 147   9.3.2 Python 2.7中的继承 149   9.3.3 给子类定义属性和方法 149   9.3.4 重写父类的方法 150   9.3.5 将实例用作属性 150   9.3.6 模拟实物 152   9.4 导入类 153   9.4.1 导入单个类 153   9.4.2 在一个模块中存储多个类 155   9.4.3 从一个模块中导入多个类 156   9.4.4 导入整个模块 157   9.4.5 导入模块中的所有类 157   9.4.6 在一个模块中导入另一个模块 157   9.4.7 自定义工作流程 158   9.5 Python标准库 159   9.6 类编码风格 161   9.7 小结 161   第10章 文件和异常 162   10.1 从文件中读取数据 162   10.1.1 读取整个文件 162   10.1.2 文件路径 164   10.1.3 逐行读取 165   10.1.4 创建一个包含文件各行内容的列表 166   10.1.5 使用文件的内容 166   10.1.6 包含一百万位的大型文件 168   10.1.7 圆周率值中包含你的生日吗 168   10.2 写入文件 169   10.2.1 写入空文件 170   10.2.2 写入多行 170   10.2.3 附加到文件 171   10.3 异常 172   10.3.1 处理ZeroDivisionError异常 172   10.3.2 使用try-except 代码块 173   10.3.3 使用异常避免崩溃 173   10.3.4 else 代码块 174   10.3.5 处理FileNotFoundError异常 175   10.3.6 分析文本 176   10.3.7 使用多个文件 177   10.3.8 失败时一声不吭 178   10.3.9 决定报告哪些错误 179   10.4 存储数据 180   10.4.1 使用json.dump()和json.load() 180   10.4.2 保存和读取用户生成的数据 181   10.4.3 重构 183   10.5 小结 186   第11章 测试代码 187   11.1 测试函数 187   11.1.1 单元测试和测试用例 188   11.1.2 可通过的测试 188   11.1.3 不能通过的测试 190   11.1.4 测试未通过时怎么办 191   11.1.5 添加新测试 191   11.2 测试类 193   11.2.1 各种断言方法 193   11.2.2 一个要测试的类 194   11.2.3 测试AnonymousSurvey类 195   11.2.4 方法setUp() 197   11.3 小结 199   第二部分 项 目   项目1 外星人入侵 202   第12章 武装飞船 203   12.1 规划项目 203   12.2 安装Pygame 204   12.2.1 使用pip安装Python包 204   12.2.2 在Linux系统中安装Pygame 206   12.2.3 在OS X系统中安装Pygame 207   12.2.4 在Windows系统中安装Pygame 207   12.3 开始游戏项目 207   12.3.1 创建Pygame窗口以及响应用户输入 208   12.3.2 设置背景色 209   12.3.3 创建设置类 210   12.4 添加飞船图像 211   12.4.1 创建Ship类 212   12.4.2 在屏幕上绘制飞船 213   12.5 重构:模块game_functions 214   12.5.1 函数check_events() 214   12.5.2 函数update_screen() 215   12.6 驾驶飞船 216   12.6.1 响应按键 216   12.6.2 允许不断移动 217   12.6.3 左右移动 219   12.6.4 调整飞船的速度 220   12.6.5 限制飞船的活动范围 221   12.6.6 重构check_events() 222   12.7 简单回顾 223   12.7.1 alien_invasion.py 223   12.7.2 settings.py 223   12.7.3 game_functions.py 223   12.7.4 ship.py 223   12.8 射击 224   12.8.1 添加子弹设置 224   12.8.2 创建Bullet类 224   12.8.3 将子弹存储到编组中 226   12.8.4 开火 227   12.8.5 删除已消失的子弹 228   12.8.6 限制子弹数量 229   12.8.7 创建函数update_bullets() 229   12.8.8 创建函数fire_bullet() 230   12.9 小结 231   第13章 外星人 232   13.1 回顾项目 232   13.2 创建第一个外星人 233   13.2.1 创建Alien类 233   13.2.2 创建Alien实例 234   13.2.3 让外星人出现在屏幕上 235   13.3 创建一群外星人 236   13.3.1 确定一行可容纳多少个外星人 236   13.3.2 创建多行外星人 236   13.3.3 创建外星人群 237   13.3.4 重构create_fleet() 239   13.3.5 添加行 240   13.4 让外星人群移动 242   13.4.1 向右移动外星人 243   13.4.2 创建表示外星人移动方向的设置 244   13.4.3 检查外星人是否撞到了屏幕边缘 244   13.4.4 向下移动外星人群并改变移动方向 245   13.5 射杀外星人 246   13.5.1 检测子弹与外星人的碰撞 246   13.5.2 为测试创建大子弹 247   13.5.3 生成新的外星人群 248   13.5.4 提高子弹的速度 249   13.5.5 重构update_bullets() 249   13.6 结束游戏 250   13.6.1 检测外星人和飞船碰撞 250   13.6.2 响应外星人和飞船碰撞 251   13.6.3 有外星人到达屏幕底端 254   13.6.4 游戏结束 255   13.7 确定应运行游戏的哪些部分 255   13.8 小结 256   第14章 记分 257   14.1 添加Play 按钮 257   14.1.1 创建Button类 258   14.1.2 在屏幕上绘制按钮 259   14.1.3 开始游戏 261   14.1.4 重置游戏 261   14.1.5 将Play 按钮切换到非活动状态 263   14.1.6 隐藏光标 263   14.2 提高等级 264   14.2.1 修改速度设置 264   14.2.2 重置速度 266   14.3 记分 267   14.3.1 显示得分 267   14.3.2 创建记分牌 268   14.3.3 在外星人被消灭时更新得分 270   14.3.4 将消灭的每个外星人的点数都计入得分 271   14.3.5 提高点数 271   14.3.6 将得分圆整 272   14.3.7 最高得分 274   14.3.8 显示等级 276   14.3.9 显示余下的飞船数 279   14.4 小结 283   项目2 数据可视化 284   第15章 生成数据 285   15.1 安装matplotlib 285   15.1.1 在Linux系统中安装matplotlib 286   15.1.2 在OS X系统中安装matplotlib 286   15.1.3 在Windows系统中安装matplotlib 286   15.1.4 测试matplotlib 287   15.1.5 matplotlib画廊 287   15.2 绘制简单的折线图 287   15.2.1 修改标签文字和线条粗细 288   15.2.2 校正图形 289   15.2.3 使用scatter()绘制散点图并设置其样式 290   15.2.4 使用scatter()绘制一系列点 291   15.2.5 自动计算数据 292   15.2.6 删除数据点的轮廓 293   15.2.7 自定义颜色 293   15.2.8 使用颜色映射 294   15.2.9 自动保存图表 295   15.3 随机漫步 295   15.3.1 创建RandomWalk()类 296   15.3.2 选择方向 296   15.3.3 绘制随机漫步图 297   15.3.4 模拟多次随机漫步 298   15.3.5 设置随机漫步图的样式 299   15.3.6 给点着色 299   15.3.7 重新绘制起点和终点 300   15.3.8 隐藏坐标轴 301   15.3.9 增加点数 301   15.3.10 调整尺寸以适合屏幕 302   15.4 使用Pygal模拟掷骰子 303   15.4.1 安装Pygal 304   15.4.2 Pygal画廊 304   15.4.3 创建Die类 304   15.4.4 掷骰子 305   15.4.5 分析结果 305   15.4.6 绘制直方图 306   15.4.7 同时掷两个骰子 307   15.4.8 同时掷两个面数不同的骰子 309   15.5 小结 311   第16章 下载数据 312   16.1 CSV文件格式 312   16.1.1 分析CSV文件头 313   16.1.2 打印文件头及其位置 314   16.1.3 提取并读取数据 314   16.1.4 绘制气温图表 315   16.1.5 模块datetime 316   16.1.6 在图表中添加日期 317   16.1.7 涵盖更长的时间 318   16.1.8 再绘制一个数据系列 319   16.1.9 给图表区域着色 320   16.1.10 错误检查 321   16.2 制作世界人口地图:JSON格式 324   16.2.1 下载世界人口数据 324   16.2.2 提取相关的数据 324   16.2.3 将字符串转换为数字值 326   16.2.4 获取两个字母的国别码 327   16.2.5 制作世界地图 329   16.2.6 在世界地图上呈现数字数据 330   16.2.7 绘制完整的世界人口地图 331   16.2.8 根据人口数量将国家分组 333   16.2.9 使用Pygal设置世界地图的样式 334   16.2.10 加亮颜色主题 335   16.3 小结 337   第17章 使用API 338   17.1 使用Web API 338   17.1.1 Git和GitHub 338   17.1.2 使用API调用请求数据 339   17.1.3 安装requests 339   17.1.4 处理API响应 340   17.1.5 处理响应字典 340   17.1.6 概述最受欢迎的仓库 342   17.1.7 监视API的速率限制 343   17.2 使用Pygal可视化仓库 344   17.2.1 改进Pygal图表 346   17.2.2 添加自定义工具提示 347   17.2.3 根据数据绘图 349   17.2.4 在图表中添加可单击的链接 350   17.3 Hacker News API 350   17.4 小结 353   项目3 Web 应用程序 354   第18章 Django入门 355   18.1 建立项目 355   18.1.1 制定规范 355   18.1.2 建立虚拟环境 356   18.1.3 安装virtualenv 356   18.1.4 激活虚拟环境 357   18.1.5 安装Django 357   18.1.6 在Django中创建项目 357   18.1.7 创建数据库 358   18.1.8 查看项目 359   18.2 创建应用程序 360   18.2.1 定义模型 360   18.2.2 激活模型 362   18.2.3 Django管理网站 363   18.2.4 定义模型Entry 365   18.2.5 迁移模型Entry 366   18.2.6 向管理网站注册Entry 366   18.2.7 Django shell 367   18.3 创建网页:学习笔记主页 369   18.3.1 映射URL 369   18.3.2 编写视图 371   18.3.3 编写模板 372   18.4 创建其他网页 373   18.4.1 模板继承 373   18.4.2 显示所有主题的页面 375   18.4.3 显示特定主题的页面 378   18.5 小结 381   第19章 用户账户 382   19.1 让用户能够输入数据 382   19.1.1 添加新主题 382   19.1.2 添加新条目 386   19.1.3 编辑条目 390   19.2 创建用户账户 392   19.2.1 应用程序users 393   19.2.2 登录页面 394   19.2.3 注销 396   19.2.4 注册页面 397   19.3 让用户拥有自己的数据 400   19.3.1 使用@login_required限制访问 400   19.3.2 将数据关联到用户 402   19.3.3 只允许用户访问自己的主题 405   19.3.4 保护用户的主题 405   19.3.5 保护页面edit_entry 406   19.3.6 将新主题关联到当前用户 406   19.4 小结 408   第20章 设置应用程序的样式并对其进行部署 409   20.1 设置项目“学习笔记”的样式 409   20.1.1 应用程序django-bootstrap3 410   20.1.2 使用Bootstrap来设置项目“学习笔记”的样式 411   20.1.3 修改base.html 411   20.1.4 使用jumbotron设置主页的样式 414   20.1.5 设置登录页面的样式 415   20.1.6 设置new_topic页面的样式 416   20.1.7 设置topics页面的样式 417   20.1.8 设置topic页面中条目的样式 417   20.2 部署“学习笔记” 419   20.2.1 建立Heroku账户 420   20.2.2 安装Heroku Toolbelt 420   20.2.3 安装必要的包 420   20.2.4 创建包含包列表的文件requirements.txt 421   20.2.5 指定Python版本 422   20.2.6 为部署到Herohu而修改settings.py 422   20.2.7 创建启动进程的Procfile 423   20.2.8 为部署到Herohu而修改wsgi.py 423   20.2.9 创建用于存储静态文件的目录 424   20.2.10 在本地使用gunicorn服务器 424   20.2.11 使用Git跟踪项目文件 425   20.2.12 推送到Heroku 426   20.2.13 在Heroku上建立数据库 427   20.2.14 改进Heroku部署 428   20.2.15 确保项目的安全 429   20.2.16 提交并推送修改 430   20.2.17 创建自定义错误页面 431   20.2.18 继续开发 434   20.2.19 设置SECRET_KEY 434   20.2.20 将项目从Heroku删除 434   20.3 小结 435   附录A 安装Python 436   附录B 文本编辑器 441   附录C 寻求帮助 447   附录D 使用Git进行版本控制 451

2018-02-26

GO语言程序设计_人民邮电出版_PDF_网盘链接

第1章 初识Go语言   1.1 Go语言简史   1.2 语言特性   1.3 “Hello, world!”   1.4 编译环境   1.5 开发工具   1.6 工程管理   1.7 问题追踪和调试   1.8 如何寻求帮助   本章小结   第2章 顺序编程   2.1 变量、常量和类型   2.1.1 变量   2.1.2 常量   2.1.3 类型   2.2 流程控制   2.2.1 条件语句   2.2.2 选择语句   2.2.3 循环   2.2.4 跳转语句   2.3 函数   2.3.1 函数调用   2.3.2 不定参数   2.3.3 多返回值   2.3.4 匿名函数与闭包   2.4 错误处理   2.4.1 error接口   2.4.2 defer   2.4.3 panic和recover   本章小结   第3章 面向对象编程   3.1 类型系统   3.1.1 给类型添加方法   3.1.2 值语义和引用语义   3.2 结构体   3.2.1 初始化   3.2.2 匿名组合   3.2.3 成员可访问性   3.3 接口   3.3.1 其他语言中的接口   3.3.2 非侵入式接口   3.3.3 接口赋值   3.3.4 接口查询   3.3.5 类型查询   3.3.6 Any类型   本章小结   第4章 工程管理   4.1 Go命令行工具   4.2 代码风格   4.3 工程组织   4.4 单元测试   4.5 文档管理   4.6 工程构建   4.7 包的管理与分发   4.8 跨平台开发   4.8.1 Go语言的跨平台能力   4.8.2 交叉编译   4.8.3 Android支持   本章小结   第5章 并发编程   5.1 初识Goroutine   5.1.1 基本用法   5.1.2 Goroutine通信   5.2 Channel   5.2.1 基本用法   5.2.2 关闭   5.2.3 变量的传递   5.2.4 单向Channel   5.2.5 超时处理   5.3 多核并行化   5.4 同步机制   5.4.1 sync包简介   5.4.2 同步锁   5.4.3 Once类型   本章小结   第6章 网络编程   6.1 HTTP编程   6.1.1 客户端编程   6.1.2 开发HTTP服务器   6.2 JSON   6.2.1 JSON简介   6.2.2 编码   6.2.3 解码   6.2.4 未知类型的解码   6.2.5 流式读写   6.3 网站开发   6.3.1 一个最简单的网站   6.3.2 开发一个相册网站   6.3.2.1 新建工程   6.3.2.2 实现网络服务   6.3.2.3 网页模板渲染   6.3.2.4 缓存   6.3.2.5 错误处理   6.3.2.6 防止程序崩溃   6.3.2.7 资源分离   6.3.2.8 重构   6.4 更多资源   本章小结   第7章 进阶话题   7.1 Go语言中的内存管理   7.2 反射   7.3 语言交互性CGO   7.4 链接符号   7.5 Goroutine实现机制   7.6 接口的奥秘   本章小结   第8章 开发工具   8.1 Go语言开发工具   8.2 gEdit   8.3 Goclipse - 使用Eclipse开发和调试Go程序   8.4 VIM   8.5 Nodepad++,Windows上的Go开发环境搭建   8.6 GolangIDE

2018-02-26

《PHP从入门到精通(第3版)》[PDF]高清

第1篇基础知识 第1章初识PHP 3 视频讲解:23分钟 1.1PHP概述 4 1.1.1什么是PHP 4 1.1.2PHP语言的优势 4 1.1.3PHP5的新特性 5 1.1.4PHP的发展趋势 5 1.1.5PHP的应用领域 6 1.2扩展库 7 1.3如何学好PHP 9 1.4学习资源 10 1.4.1常用软件资源 10 1.4.2常用网上资源 11 1.4.3主要图书网站 11 1.5网站建设的基本流程 12 1.6小结 12 第2章PHP环境搭建和开发工具 13 视频讲解:36分钟 2.1在Windows下使用AppServ 组合包 14 2.2在Linux下的安装配置 16 2.2.1安装Apache服务器 17 2.2.2安装MySQL数据库 18 2.2.3安装PHP5语言 18 2.3PHP常用开发工具 20 2.4第一个PHP实例 21 2.5小结 23 2.6练习与实践 23 第3章PHP语言基础 25 视频讲解:1小时55分钟 3.1PHP标记风格 26 3.2PHP注释的应用 27 3.3PHP的数据类型 28 3.3.1标量数据类型 28 3.3.2复合数据类型 33 3.3.3特殊数据类型 33 3.3.4转换数据类型 35 3.3.5检测数据类型 36 3.4PHP常量 37 3.4.1声明和使用常量 37 3.4.2预定义常量 38 3.5PHP变量 39 3.5.1变量声明及使用 39 3.5.2变量作用域 41 3.5.3可变变量 43 3.5.4PHP预定义变量 43 3.6PHP运算符 44 3.6.1算术运算符 44 3.6.2字符串运算符 45 3.6.3赋值运算符 46 3.6.4位运算符 46 3.6.5逻辑运算符 47 3.6.6比较运算符 48 3.6.7错误控制运算符 49 3.6.8三元运算符 49 3.6.9运算符的优先顺序和结合规则 50 3.7PHP的表达式 50 3.8PHP函数 51 3.8.1定义和调用函数 51 3.8.2在函数间传递参数 52 3.8.3从函数中返回值 54 3.8.4变量函数 54 3.8.5对函数的引用 55 3.8.6取消引用 55 3.9PHP编码规范 56 3.9.1什么是编码规范 56 3.9.2PHP书写规则 57 3.9.3PHP命名规则 58 3.10小结 60 3.11练习与实践 60 第4章流程控制语句 61 视频讲解:46分钟 4.1条件控制语句 62 4.1.1if语句 62 4.1.2if…else语句 63 4.1.3elseif语句 64 4.1.4switch…case多重判断语句 65 4.2循环控制语句 67[2] 4.2.1while循环语句 68 4.2.2do…while循环语句 68 4.2.3for循环语句 69 4.2.4foreach循环语句 70 4.2.5流程控制的另一种书写格式 71 4.2.6使用break/continue语句跳出循环 72 4.3小结 75 4.4练习与实践 75 第5章字符串操作 77 视频讲解:1小时13分钟 5.1字符串简介 78 5.2单引号和双引号的区别 78 5.3字符串的连接符 79 5.4字符串操作 80 5.4.1去除字符串首尾空格和特殊字符 80 5.4.2转义、还原字符串数据 82 5.4.3获取字符串的长度 85 5.4.4截取字符串 86 5.4.5比较字符串 87 5.4.6检索字符串 90 5.4.7替换字符串 91 5.4.8格式化字符串 94 5.4.9分割字符串 94 5.4.10合成字符串 95 5.5小结 96 5.6练习与实践 96 第6章正则表达式 97 视频讲解:43分钟 6.1什么是正则表达式 98 6.2正则表达式语法规则 98 6.2.1行定位符(^和$) 99 6.2.2单词定界符(\b、\B) 99 6.2.3字符类([]) 99 6.2.4选择字符(|) 100 6.2.5连字符(-) 100 6.2.6排除字符([^]) 101 6.2.7限定符(?*+{n,m}) 101 6.2.8点号字符(.) 101 6.2.9转义字符(\) 102 6.2.10反斜线(\) 102 6.2.11括号字符(()) 103 6.2.12反向引用 103 6.2.13模式修饰符 104 6.3POSIX扩展正则表达式函数 104 6.3.1ereg()函数和eregi()函数 105 6.3.2ereg_replace()函数和eregi_replace() 函数 105 6.3.3split()函数和spliti()函数 105 6.4PCRE兼容正则表达式函数 106 6.4.1preg_grep()函数 106 6.4.2preg_match()函数和preg_match_all() 函数 107 6.4.3preg_quote()函数 107 6.4.4preg_replace()函数 108 6.4.5preg_replace_callback()函数 109 6.4.6preg_split()函数 109 6.5应用正则表达式对用户注册信息 进行验证 109 6.6小结 112 6.7练习与实践 112 第7章PHP数组 113 视频讲解:1小时23分钟 7.1什么是数组 114 7.2声明数组 114 7.3数组的类型 116 7.3.1数字索引数组 116 7.3.2关联数组 116 7.4输出数组 117 7.5数组的构造 118 7.5.1一维数组 118 7.5.2二维数组 118 7.6遍历数组 119 7.7字符串与数组的转换 121 7.8统计数组元素个数 123 7.9查询数组中指定元素 124 7.10获取数组中最后一个元素 125 7.11向数组中添加元素 126 7.12删除数组中重复元素 127 7.13综合运用数组函数——实现多文件 上传 127 7.14小结 129 7.15练习与实践 129 第8章PHP与Web页面交互 131 视频讲解:58分钟 8.1表单 132 8.1.1创建表单 132 8.1.2表单元素 133 8.2在普通的Web页中插入表单 136 8.3获取表单数据的两种方法 138[2] 8.3.1使用POST()方法提交表单 138 8.3.2使用GET()方法提交表单 139 8.4PHP参数传递的常用方法 140 8.4.1$_POST[]全局变量 140 8.4.2$_GET[]全局变量 141 8.4.3$_SESSION[]变量 141 8.5在Web页中嵌入PHP脚本 141 8.5.1在HTML标记中添加PHP脚本 141 8.5.2对表单元素的value属性进行赋值 142 8.6在PHP中获取表单数据 142 8.6.1获取文本框、密码域、隐藏域、按钮、 文本域的值 142 8.6.2获取单选按钮的值 143 8.6.3获取复选框的值 144 8.6.4获取下拉列表框/菜单列表框的值 145 8.6.5获取文件域的值 148 8.7对URL传递的参数进行编/解码 149 8.7.1对URL传递的参数进行编码 149 8.7.2对URL传递的参数进行解码 150 8.8PHP与Web表单的综合应用 150 8.9小结 151 8.10练习与实践 152 第9章PHP与JavaScript交互 153 视频讲解:1小时05分钟 9.1了解JavaScript 154 9.1.1什么是JavaScript 154 9.1.2JavaScript的功能 154 9.2JavaScript语言基础 154 9.2.1JavaScript数据类型 155 9.2.2JavaScript变量 155 9.2.3JavaScript注释 156 9.3自定义函数 157 9.4JavaScript流程控制语句 158 9.4.1条件语句 158 9.4.2循环语句 162 9.4.3跳转语句 163 9.5JavaScript事件 165 9.6调用JavaScript脚本(JavaScript脚本 嵌入方式) 166 9.6.1在HTML中嵌入JavaScript脚本 166 9.6.2应用JavaScript事件调用自定义函数 167 9.6.3在PHP动态网页中引用JS文件 167 9.6.4解决浏览器不支持JavaScript的问题 168 9.7在PHP中调用JavaScript脚本 171 9.7.1应用JavaScript脚本验证表单元素是否 为空 171 9.7.2应用JavaScript脚本制作二级导航 菜单 172 9.7.3应用JavaScript脚本控制文本域和 复选框 174 9.8小结 176 9.9练习与实践 176 第10章日期和时间 177 视频讲解:30分钟 10.1系统时区设置 178 10.1.1时区划分 178 10.1.2时区设置 178 10.2PHP日期和时间函数 178 10.2.1获得本地化时间戳 179 10.2.2获取当前时间戳 180 10.2.3获取当前日期和时间 180 10.2.4获取日期信息 181 10.2.5检验日期的有效性 182 10.2.6输出格式化的日期和时间 183 10.2.7显示本地化的日期和时间 184 10.2.8将日期和时间解析为UNIX时间戳 187 10.3日期和时间的应用 188 10.3.1比较两个时间的大小 188 10.3.2实现倒计时功能 189 10.3.3计算页面脚本的运行时间 190 10.4小结 191 10.5练习与实践 191 第2篇核心技术 第11章Cookie与Session 195 视频讲解:1小时08分钟 11.1Cookie管理 196 11.1.1了解Cookie 196 11.1.2创建Cookie 197 11.1.3读取Cookie 198 11.1.4删除Cookie 199 11.1.5Cookie的生命周期 200[2] 11.2Session管理 200 11.2.1了解Session 200 11.2.2创建会话 201 11.2.3Session设置时间 203 11.2.4通过Session判断用户的操作权限 204 11.3Session高级应用 207 11.3.1Session临时文件 207 11.3.2Session缓存 208 11.3.3Session数据库存储 209 11.4小结 212 11.5练习与实践 212 第12章图形图像处理技术 213 视频讲解:46分钟 12.1在PHP中加载GD库 214 12.2Jpgraph的安装与配置 215 12.2.1Jpgraph的安装 215 12.2.2Jpgraph的配置 215 12.3图形图像的典型应用 216 12.3.1创建一个简单的图像 216 12.3.2使用GD2函数在照片上添加文字 216 12.3.3使用图像处理技术生成验证码 217 12.3.4使用柱形图统计图书月销售量 219 12.3.5使用折线图统计图书月销售额 220 12.3.6使用3D饼形图统计各类商品的年销售 额比率 222 12.4小结 223 12.5练习与实践 223 第13章文件系统 225 视频讲解:49分钟 13.1文件处理 226 13.1.1打开/关闭文件 226 13.1.2读写文件 227 13.1.3操作文件 232 13.2目录处理 233 13.2.1打开/关闭目录 233 13.2.2浏览目录 234 13.2.3操作目录 234 13.3文件处理的高级应用 235 13.3.1远程文件的访问 235 13.3.2文件指针 235 13.3.3锁定文件 237 13.4文件上传 238 13.4.1配置php.ini文件 238 13.4.2预定义变量$_FILES 238 13.4.3文件上传函数 239 13.4.4多文件上传 240 13.5小结 242 13.6练习与实践 242 第14章面向对象 243 视频讲解:27分钟 14.1面向对象的基本概念 244 14.1.1类 244 14.1.2对象 244 14.1.3面向对象编程的三大特点 245 14.2PHP与对象 245 14.2.1类的定义 245 14.2.2成员方法 246 14.2.3类的实例化 246 14.2.4成员变量 247 14.2.5类常量 248 14.2.6构造方法和析构方法 249 14.2.7继承和多态的实现 251 14.2.8“$this->”和“::”的使用 254 14.2.9数据隐藏 255 14.2.10静态变量(方法) 257 14.3PHP对象的高级应用 259 14.3.1final关键字 259 14.3.2抽象类 260 14.3.3接口的使用 261 14.3.4克隆对象 263 14.3.5对象比较 264 14.3.6对象类型检测 265 14.3.7魔术方法(__) 266 14.4面向对象的应用——中文字符串的 截取类 270 14.5小结 272 14.6练习与实践 272 第15章PHP加密技术 273 视频讲解:24分钟 15.1PHP加密函数 274 15.1.1使用crypt()函数进行加密 274 15.1.2使用md5()函数进行加密 275 15.1.3使用sha1()函数进行加密 277 15.2PHP加密扩展库 278 15.2.1Mcrypt扩展库 278 15.2.2Mhash扩展库 280 15.3小结 282 15.4练习与实践 282 第16章MySQL数据库基础 283

2018-02-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除