参考head first Python整理html
列表:(相似数组)编号从0开始,数据类型不那么重要。它在内存中相似堆栈结构,从底到上。python
movies = []nginx
numbers = ["one","two","three"] # 定义一个列表,能够直接printgit
numbers[1] # 中括号访问列表github
len(numbers) # 计算列表长度sql
numbers.append("four") # 在列表末尾增长一个数据项django
numbers.pop() # 在列表末尾删除数据项编程
numbers.extend("five") # 在列表末尾增长一个数据项json
numbers.remove("two") # 在列表中找到并删除一个特定的数据项python3.x
numbers.insert(0 , "zero") # 在某个特定的位置前面增长一个数据项
类表能够包含混合类型的数据,好比字符串和数字,任意类型也能够。
迭代处理列表,利用内置的for循环,例如:
numbers = ["one","two","three","four","five"]
for num in numbers:
print(num) ----> 组
for循环:能够处理任意大小的类表
列表是动态的,可是访问一个不存在的数据项,python会产生一个IndexError,表示越界。
字符串可使用双引号,也可使用单引号。
标识符规则:字母或“_”开头,不容许%$&开头
大小写敏感:msg ≠ MSG
列表能够嵌套列表,能够嵌套任意多层的列表
numbers = ["one","two","three",["four","five","six",["seven","eight","nine"]]]
numbers[3][3][1] = eight
python内置函数(BIF):
isinstance() # 检查某个特定标识符是否包含某个特定类型的数据。
numbers = ["one","two","three"]
isinstance(numbers,list) # 判断numbers是不是列表
语法:
if xxx:
true组
else:
false组
def functionName(params):
function code suite ----> 函数代码组
suite组:python代码块,经过缩进指示分组。
BIF内置函数:
input() 、isinstance()、len()、print()、open()、range()、type()、dir()..........
注释:
多行注释 ''' '''
单行注释 #
import sys;
sys.path # 查看模块路径
range()用法:
for num in range(4): # 返回一个迭代器,根据须要生成一个指定范围的数字列表
print(num)
文件操做
_file = open("fileName")
_file.readLine() # 从文件读取一行
_file.seek(0) # 返回文件开头处
for eachLine in _file:
eachLine.trip().split(":") # 去掉空白符;以":"为符号分隔符分割字符串,返回字符串列表
eachLine.trip().split(":",1) # 去掉空白符;以":"为符号分隔符分割字符串,数字1表示把字符串分解为两个部分,返回字符串列表
eachLine.find("python") # 查找“python”字符串,不存在则返回-1,若是存在则返回在原字符串的索引位置
异常处理
try:
code
except:
fail recovery code
finally:
release
或者
try:
with xxx as xx: # 上下文管理协议
xxxx
except xxx as xx: # 给异常起个名字
xxxx
遇到的Exception:
ValueError/IOError
两种类型的列表:
①能够改变类型的列表 ----> 中括号 ----> 可变列表
②一旦建立就不能改变的列表 ----> 小括号 ----> 不可变列表(元组)
OS模块:
import os
os.path.exists("fileName") # 判断文件是否存在
os.getcwd() # 获取当前地工做目录
python中的字符串是不可变的,一旦建立一个字符串,它就不会再改变了。
内存管理技术???
变量 ----> 引用 ----> 数据对象 ----> 字符串
not # 取反
in # 测试成员关系
locals() # 返回当前做用域中定义的全部名的一个集合
print() # 默认是输出到屏幕,能够经过指定sys.stdout输出到一个指定的文件
pickle标准库
dump() # 保存数据
load() # 恢复数据
函数缺省值问题:
print(value,sep='',end='\n',file=sys.stdout) # 屏幕
print('abc',file='temp.txt') #文件
方法串链:从左往右
函数串链:从右往左
排序:
原地排序(in-place sort)
sort() # 排序后替换原来的数据,原来的数据的顺序会丢失
复制排序(copied sort)
sorted() # 排序后返回一个原来数据的有序副本,原来的数据的顺序不会丢失,默认是升序排序
列表推导???
去重:
思路一:建立一个新的列表,从原来的列表中取出一个元素,判断一个元素是否在新的列表中,若是不存在则添加,若是存在则去掉。
思路二:使用BIF set(),建立一个空集合
工厂函数???
字典:将数据值和键关联。维护关联关系,而不是顺序。
定义字典:numbers ={} 或者numbers = dict()
访问字典中的元素:使用中括号,指定键
面向对象编程模型
基础概念:类的方法,类的属性,实例
class Numbers:
def __init__(self):
# coding here
由关键字class建立对象
初始化对象机制:__init__()[能够用来定制对象的初始化状态]
实现对象的建立:类名的调用赋值给相应的变量名,例如 num = Numbers()
定义一个类,即定义了一个定制工厂函数。
num = Numbers() 的调用python的内部转换:Numbers().__init__(num),num对象实例标识符赋值到self参数
目标标识符赋值到self参数,self参数能够帮助标识要处理哪一个对象实例的数据(self指向当前对象实例);每一个方法的第一个参数都是self(python要求每一个方法的第一个参数为调用对象实例???)
可使用点记法访问对象中的属性
自建立的类能够继承python内部的类
class numbers(list):
def __init__(self, n_name):
list.__init__([])
self.name = n_name
python标准模块:
string
http.server
glob
cgitb
cgi
pickle
json
urllib/urllib2
sys
os
sqlite3
time
unittest/doctest
===================我是分割线===================
2018-12-31 20:38:17
cmd install django
python2.7用以下命令,不指定版本号,默认会下载安装最新版本,最新版本支持python3.x,而后会发生冲突
pip install -i https://pypi.douban.com/simple/ django==1.11
python3.6用以下命令,不用指定版本号,默认会下载安装最新版本,最新版本支持python3.x
pip3 install django
建立虚拟环境
方式一:
pip install virtualenv
cd 某个目录
python2.x使用以下命令:
virtualenv 某某文件名
【等待片刻,安装成功会提示done】
python3.x使用以下命令:
virtualenv -p xxx\python3.exe 某某文件名
【等待片刻,安装成功会提示done,须要注意的是要指定python3的路径】
目录结构以下:
而后能够进入虚拟环境中的Scripts文件夹中,cmd中,执行文件activate.bat和deactivate.bat进行切换。
用以上的方法建立虚拟环境,每次都须要进入某个指定的位置,记住路径。采起如下的方法更方便,在任意位置集中管理各个虚拟环境。
方式二:
pip install virtualenvwrapper-win
安装成功后设置 Envs路径,在环境变量中加入WORKON_HOME。例如:WORKON_HOME=E:\Envs
启动cmd
workon 查看各个虚拟环境
mkvirtualenv xx 默认建立python2.x的虚拟环境,名字为xx
mkvirtualenv --python=python3.x的安装路径 xxx 建立python3.x的虚拟环境,名字为xxx
workon xxx 进入某个虚拟环境
deactivate 退出某个虚拟环境
以方式二尝试建立Scrapy的虚拟环境,以python2.7.x为主本:
打开cmd,
workon 查看当前各个虚拟环境
mkvirtualenv myPy2Scrapy 建立虚拟环境,成功后会提示done,而后自动进入所建立的虚拟环境。cmd左边会提示 (myPy2Scrapy)
pip install scrapy 安装Scrapy
安装过程当中提示error:
1 building 'twisted.test.raiser' extension 2 error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27 3 ---------------------------------------- 4 Failed building wheel for Twisted 5 Running setup.py clean for Twisted
http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 到这个网址下载对应版本的wisted。我下的是 Twisted‑18.9.0‑cp27‑cp27m‑win_amd64.whl
进入到下载了wisted 的位置
打开cmd
进入虚拟环境 workon myPy2Scrapy
安装wisted,pip install Twisted‑18.9.0‑cp27‑cp27m‑win_amd64.whl
安装成功后,从新安装scrapy,没有报错。
ps:
whl包:已经编译的包,相似于exe文件;
Twisted:用Python实现的基于事件驱动的网络引擎框架,Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。
whl,twisted更多内容参考博客:
https://blog.csdn.net/vitaminc4/article/details/76651313
http://www.javashuo.com/article/p-rwdamfyd-ex.html
2018-11-19 20:43:04
《Nginx开发从入门到精通》,淘宝核心系统服务器平台组所编写的一本关于Nginx的书籍。该书由rst格式的文件写成。可使用python模块sphinx将该书转换成html格式,方便离线阅读。RST与Python相似Javadoc与Java。不要使用高版本的sphinx去转化。下面使用1.1版本。转化成功。
https://pypi.org/project/Sphinx/1.1/
1 pip install Sphinx==1.1 #使用低版本1.1,能够成功转换成html格式 2 3 sphinx-build -b html source build # source 源目录,build 目标目录
sphinx官网:https://pypi.org/project/Sphinx/
sphinx手册官网:http://www.sphinx-doc.org/en/master/
sphinx最新版是1.8.2,能够经过下面命令安装:
1 pip install -U Sphinx