python ---->学习笔记

参考head first Python整理

列表:(类似数组)编号从0开始,数据类型不那么重要。它在内存中类似堆栈结构,从底到上。

movies = []

numbers = ["one","two","three"] # 定义一个列表,可以直接print

numbers[1] # 中括号访问列表

len(numbers) # 计算列表长度

numbers.append("four") # 在列表末尾增加一个数据项

numbers.pop() # 在列表末尾删除数据项

numbers.extend("five") # 在列表末尾增加一个数据项

numbers.remove("two") # 在列表中找到并删除一个特定的数据项

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

https://www.cnblogs.com/misswangxing/p/7712318.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

 

转载于:https://www.cnblogs.com/mrray1105/p/9716082.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值