Zoe_Zhangbobo的博客

纯属个人记录,希望对大家有用

python学习笔记

1.装饰器(相当于化妆)        
1)def outer("形参"func):
def inner(形参):
   if age<0
               age=0
            func()
        return inner
f=outer(func1"实参")
调用时 @outer
**********************************
2)通用装饰器
def outer("形参"func):
def inner(*args,**kwargs):
   #添加修饰功能
            func(*args,**kwargs)
        return inner


调用方法:
@outer
def say(name,age):
**********************************
2.#刷新缓冲区立刻写入文件,不用等待关闭或自动刷新缓冲区写入
f.fluse()
刷新缓冲区:手动;关闭文件;缓冲区满了自动刷新
**********************************
3.编码与解码(二进制需要)
encode()
decode()
**********************************
4.improt pickle   #数据持久性模块


myList=[1,2,3,4,5,"zoe is a girl"]
path="C:/"
f=open(path,"wb")
pickle.dump(myList,f)
f.close()


#读取
f1=open(path,"rd")
tempList=pickle.load(f1)
print(tempList)
f1.close()
**********************************
5.os模块
#获取操作系统类型 nt->windows  posix->Linux/Unix或Mac os x
print(os.name)
#打印操作系统详细信息(Windows不支持)
print(os.uname())
#获取操作系统中的所有环境变量
print(os.environ)
#获取指定环境变量
print(os.environ.get("hjhj"))
#获取当前目录
print(os.curdir)
#获取当前工作目录,即当前Python脚本所在目录
print(os.getcwd())
#以列表的形式返回指定目录下的所有文件
print(os.listdir("C:/"))
#在当前目录下创建新目录
os.mkdir("C:/")
os.mkdir("zoe")
#删除目录
os.rmdir("zoe")
#获取文件属性
print(os.stat("zoe"))
#重命名
os.rename("zoe","bo")
#删除普通文件
os.remove("file1.txt")
#运行shell命令
os.system("notepad")--打开记事本
os.system("write")--打开写字板
os.system("mspaint")--画板
os.system("msconfig")--系统设置
os.system("shutdown -s  -t 500")--关机
os.system("-shutdown -a")--取消关机
os.system("taskkill/f/im notepad.exe")--关闭应用
#有些方法存在os模块里,有些在os.path里
#查看当前的绝对路径
print(os.path.abspath("."))
#拼接路径
os.path.join(p1,p2)
注意:参数p2里开头不要有斜杠
#拆分路径
os.path.split(path)
#获取扩展名
os.path.splitext(path)
#判断是否是目录
os.path.isdir(path)
是true,不是false
#判断文件是否存在
os.path.isfile(path)
#获取文件大小
os.path.getsize(path)字节
#文件的目录
os.path.dirname(path)
#文件名
os.path.basename(path)
**********************************
6.窗体
**********************************
7.递归
递归调用:一个函数,调用了自身;
递归函数:一个会调用自身的函数。
凡是循环能干的事,递归都能干


方式:
1)写出临界条件
2)找这一次和上一次的关系
3)假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果


#模拟栈的结构
stack=[]


#压栈(向栈里存数据)
stack.append("a")


#出栈
stack.pop()


#创建一个队列
import collections


queue=collections.deque()


#出队
test=queue.popleft()


**********************************
8.时间表示形式
1)时间戳
以整型或浮点型表示时间的一个以秒为单位的时间间隔,这个时间间隔的基础值是从1970年1月1号开始算起。
2)元组
一种Python的数据结构表示,这个元组有9个整形内容
year/month/day/hours/minutes/seconds/weekday/julia day/flag(1,-1或0)
3)格式化字符串
%y、%z...


#返回当前时间的时间戳,浮点数形式,不需要参数
c=time.time()
#将时间戳转为UCT时间元组
t=time.gmtime()
#将时间戳转为本地时间元组
b=time.localtime(c)
#将本地时间元组转成时间戳
m=time.mktime(b)
#将时间元组转成字符串
time.asctime()
#将时间戳转成字符串
time.ctime()
#将时间元组转成给定形式的字符串,参数2为时间元组,如果没有参数2,默认转当前时间
q=time.strftime("%y-%m-%d %H:%M:%S",b)
#将时间字符串转为时间元组
time.strptime(q,"%Y-%m-%d %x")
#延迟一个时间,整型或浮点型
time.sleep(2.3)
#返回当前程序的CPU执行时间
#Unix形同返回全部的运行时间
#windows从第二次开始,都是以第一个调用此函数的开始
time.clock()


$datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了各位使用的函数,datatime模块的接口更直观,更容易调用


模块中的类
datetime      同时有时间和日期
timedelta     主要用于计算时间的跨度
tzinfo        时区相关
time          只关注时间
date          只关注日期
...


#获取当前时间
d1=datetime.datetime.now()
#获取指定时间
d2=datetime.datetime(1999,10,1,10,28,25,123456)
#将时间转为字符串
d3=d1.strftime("%y-%m-%d" %x)
#将格式化字符串转为datetime对象
#注意:转换的格式要与字符串一致
d4=datetime.datetime.strptime(d3,"%y-%m-%d" %x)


d5=datetime.datetime(1999,10,1,10,28,25,123456)
d6=datetime.datetime.now()
d7=d6-d5
print(d7)
print(type(d7))
#间隔的天数
print(d7.days)
#间隔天数除外的秒数
print(d7.seconds)




$日历模块
import calendar
#返回指定某年某月的日历
print(calendar.month(2017,7))
#返回指定年的日历
print(calendar.calendar(2017))
#闰年返回true,否则返回false
返回某个月的weekday的第一天和这个月的所有天数
print(calendar.monthrange(2017,5))
#返回某个月以每一周为元素的列表
print(calendar.monthcalendar(2017,7))


**********************************
9.模块的使用和面向对象
把相似功能的函数分组,分到不同的文件中,大致功能用文件名体现,一个.py就是一个模块


import sys


print(sys.argv)
#获取命令行参数的列表
for i in sys.argv:
print(i)


name=sys.argv[1]
print(name)


#自动查找所需模块的路径
print(sys.path)
**********************************
10.正则表达式
**********************************
11.爬虫


import urllib.request


#向指定的url地址发起请求,并返回服务器相应的数据(文件的对象)
response=urllib.request.urlopen("http://www.baidu.com")


#读取文件的全部内容,会把读取到的数据赋值给一个字符串变量
data=response.read()
print(data)
print(type(data))




#将爬取到的网页写入文件
with open(r"c:\Users\file.html","wb") as  f:
f.write(data)


#读取一行
data=response.readline()


#response属性
#返回当前环境的有关信息
print(response.info())


#返回状态码
print(response.getcode())


200表示成功 304表示已经执行了get,但文件未变化 400错误




#返回当前爬取的URL地址
print(response.geturl())


#解码
newurl=urllib.request.unquote(url)
#编码
newurl2=urllib.request.quote(newurl)




#爬取到的网页直接写入文件
urllib.request.urlretrieve("http://www.baidu.com",filename=r"c:\Users\file.html")


#urlretrieve在执行过程中,会产生一些缓存
#清除缓存
urllib.request.urlcleanup()




#模拟浏览器(为了防止反爬虫)


User-Agent--浏览器信息Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11




import urllib.request
url="http://www.baidu.com"




#模拟请求头




headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11"}




#设置一个请求体
req=urllib.request.Request(url,headers=headers)


#发起请求
reaponse=urllib.request.urlopen(req)
data=response.read().decode("utf-8")
print(data)







































































阅读更多
想对作者说点什么? 我来说一句

Python学习笔记

2010年02月23日 596KB 下载

python 学习笔记资料

2018年01月23日 1.67MB 下载

pyhthon学习笔记

2017年10月30日 41KB 下载

Python 学习笔记

2016年05月22日 1.49MB 下载

python资料大全

2009年01月13日 12.55MB 下载

Python核心编程笔记

2015年02月25日 692KB 下载

Python培训资料.zip

2010年08月03日 2.03MB 下载

Python 资料大全

2010年08月02日 12.36MB 下载

python3基础教程

2018年05月31日 4.28MB 下载

Python 学习笔记.pdf

2007年05月18日 2.15MB 下载

没有更多推荐了,返回首页

关闭
关闭