Python学习笔记1
1Python的数据结构:
1:序列: 列表(可改变)
元祖 (不可改变)
2:映射:字典
3:无序:集合
ASCII:八位 Unicode:16位
2Python的函数
abs:绝对值
match.sqrt:开方
match.ceil:上入
match.floor:下入
pow:幂
repr:字符串
str:字符串
round:四舍五入
help:帮助
input:输入
raw_input:原始输入
camtch.sqrt:负数开方
3Python的运行
(1)命令行运行程序:Python hello.py
(2)把脚本像普通程序一样运行:#!/usr/bin/env python放在程序首行
再运行:hello.py 或者 ./hello.py
模块:一组函数的集合用于程序的扩展
(1)import match
match.sqrt(25)
(2):from match import sqrt
sqrt(25)
+号只能连接字符串,不能连接字符串和数字
要先把数字变成字符串:三种方式:str repr ``
例:temp=32
>>>print "I am chennan"+`temp`
I am chennan 32
即可
4字符串是不可变
split:分割字符串
strip:去除两侧的空格,不包含内部
5列表:list函数,可改变序列
>>>x=[1,2,3,4,5]
1:删除元素: del x[1]
2:分片元素: x[2:]=[1,1,1,1]
3:追加:元素:append
列表:extend
4:插入:insert x.insert(3,‘5')
5:计数:count
6:索引:index
7:移除:pop:返回值 x.pop()
8:排序: x.sort()
9:反向:reverse x.reverse ()
6元祖:tuple函数,不可改变序列
(4,2,1,2,5,3,7)
>>>tuple([1,3,4,5,2])
(1,3,4,5,2)
tuple函数可以将列表改成元祖
7字典:键值对的形式
1:x={"chen":"12", "liu":"32", "xu":"42" }
2:>>>item=[("name",chen""),("age","12")]
>>> x=dict(item)
x={"name":"chen", "age":"12", }
字典的方法:clear:清空
copy:复制get:访问fromkeys:根据给定的键建立字典has_key:判断是否有键items:将字典转换成列表popitem:随机删除元素
8集合:由序列构建 无序
set([1,2,3,4,5,6,7])
9函数
print语句打印由多个逗号隔开的值
import ..... as.....导入函数并进行局重命名部
exec:执行语句
eval:计算表达式
pass:什么也不做
del:删除
判断语句:if
elif 检查多个条件语句:else if 的简写
else
10:模块:
模块是程序
模块用于定义函数
包是模块的集合
模块中的标准库:
1:sys:
path:路径
stdin:标准输入流
stdout:标准输出流
argv:命令行参数
exit:退出信息
modules:映射模块名称到模块载入的字典
stderr:标准错误流
2:OS:
envior:对于环境变量进行映射
sep:路径中的分隔符
pathsep:分割路径的路径符
linesep:行分隔符
3:fileinput
filename:名称
close:关闭序列
nextfile:下一个
4:time
sleep:休眠
time:当前时间
astime([tuple]):将时间元祖转化成字符串
mktime(tuple):将时间元祖转化成本地时间
localtime([sec]):将秒数转化成时间元祖
5: random:随机函数
6:re:正则式
match
compile
search
split
findall
sub
escape
7:shelve:创建持续性映射,同时将映射的美容保存在给定文件名的数据库。
网络编程:
socket编程:套接字主要是两个进程之间的信息通道,程序可能分布在不同的计算机上,通过套接字互相接收信息。
一个小型服务器:
import socket
s=socket.socket()
host=socket.gethostname()
port=1234
s.bind((host,port))
s.listen(5)
while true:
c.addr=s.accept()
print "I am chen nan",addr
c.send("hello boy")
c.close()
一个小型客户机:
import socket
s=socket.socket()
host=socket.gethostname()
port=1234
s.connect((host,port))print s.recvz(1024)
urllib和urllib2模块
1:打开远程文件
from urllib import urlopen
webpage=urlopen("http://www.baidu.com")
2:获取远程文件
urlretrieve("http://www.baidu.com","C\chennan.xml")
Socketserver框架:同步网络服务器基类:很容易编写服务器,可以用分叉和线程来处理混入类。
包含四个基类:
1:TCPServer
2:UDPServer
3:UnixStreamServer
4:UnixDatagramServer
编写一个socketserver服务器程序
大部分代码会在请求处理程序中:requesthandler
如果使用的是流,可以使用StreamRequestHandler
self.rfile用于读取
self.wfile用于写入
from socketserver import TCPServer,StreamRequestHandler
class Handler(StreamRequestHandler)
def handle(self)
addr=self.request.getpeername(0
print "I am chennan",addr
self.wfile.write("Hello boy")
server=TCPServer(("",1234),Handler)
server.server_forver()
SQLite数据库
先需要下载PySQLite的Windows版和SQLite
import sqlite3
conn=sqlite3.connect("somedatabase.db")
curs=conn.cursor() //获得游标
conn.cmmmit()//提交
conn.close()//关闭
游标cursor():通过游标执行sql查询并检验结果
结果可以一个一个获得,也可以很多个一起获得。
Python和万维网
urllib和urlopen和re正则表达式抓取网页
Beautiful Soup是个小模块用来解析和检查看到的那些不规范的HTML
CGI:通用网关接口,它是网络服务器可以将查询结果(一般是web表单)传递到专门的程序,比如Python程序,并在网页上显示结果的标准机制。
cgi模块和cgitab模块对于编写CGI脚步有用
mod_python:处理程序框架让在Python中编写Apache框架变为可能
有三个标准处理程序
1:CGI处理程序
2:PSP处理程序
3: 发布处理程序
Web应用程序框架:Django框架
厚积薄发,行胜于言@飞鸟各投林