python学习笔记

简介: 队列:先进先出 list = ["apple", "banana", "grape"] list.

队列:先进先出

list = ["apple", "banana", "grape"]
list.append("orange")
print list
print "Pop:",list.pop(0)
print list

堆栈:先进后出

list = ["apple", "banana", "grape"]
list.append("orange")
print list
print "Pop:",list.pop()
print list

 

2. 切片

#! /usr/bin/env python
#coding=utf-8

tuple = ("apple", "banana", "grape", "orange")
print tuple[:3] #取开头到第三个元素
print tuple[3:] #取第四个元素到最后一个元素

print tuple[0, -1] #整个数组删除最后一个元素

 3. 合并

zip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。
①tuple的新序列
>>>>x=[1,2,3],y=['a','b','c']
>>>zip(x,y)
[(1,'a'),(2,'b'),(3,'c')]

②新的序列的长度以参数中最短的序列为准.
>>>>x=[1,2],y=['a','b','c']
>>>zip(x,y)
[(1,'a'),(2,'b')]

③(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。
>>>>x=[1,2,3],y=['a','b','c']
>>>>zip(*zip(x,y))
[(1,2,3),('a','b','c')]

 

4. 定义常量

在Python中没有提供定义常量的保留字,需要自己定义一个常量类来实现常量的功能!在此提供《Python Cookbook》一书中定义的常量模块const,代码如下:

   说明:此类是定义了一个方法__setattr__()和一个异常类型ConstError,主要是判断定义的常量是否在字典中,在则抛出异常,否则,给新创建的常量赋值


  1. class _const:  
  2.     class ConstError(TypeError):pass  
  3.     def __setattr__(self,name,value):  
  4.         if self.__dict__.has_key(name):  
  5.             raise self.ConstError,"Can't rebind const (%s)"% name  
  6.         self.__dict__[name]=value  
  7.   
  8. import sys  
  9. sys.modules[__name__]=_const()  

 5.range

http://hi.baidu.com/life_to_you/item/b31c8db8ba467fe84ec7fd04

print range(1, 5)

输出1,2,3,4

print range(1,5,1)

输出1234

print range(1,5,2)

输出1,3

print range(0,5,2)

输出0,2,4

6.正则表达式

import re

s = "HELLO WOLRD"
print re.findall(r"^hello", s, re.IGNORECASE)

 

7. 读取文件

#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w     以写方式打开,
a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+     以读写模式打开
w+     以读写模式打开 (参见 w )
a+     以读写模式打开 (参见 a )
rb     以二进制读模式打开
wb     以二进制写模式打开 (参见 w )
ab     以二进制追加模式打开 (参见 a )
rb+    以二进制读写模式打开 (参见 r+ )
wb+    以二进制读写模式打开 (参见 w+ )
ab+    以二进制读写模式打开 (参见 a+ )

f = file("hello.txt", "w+")
li = ["Sexy boy\n", "test\n"]
f.writelines(li)
f.close()

f = file("hello.txt", "a+")
new_context = "goodbye"
f.write(new_context)
f.close

 文件删除

import os

file("hello.txt", "w")
if os.path.exists("hello.txt"):
    os.remove("hello.txt")

 

os.path.split(path)

将path分割成目录和文件名二元组返回。

>>> os.path.split('c:\\csv\\test.csv')

('c:\\csv', 'test.csv')

>>> os.path.split('c:\\csv\\')

('c:\\csv', '')


os.path.join(path1[, path2[, ...]])

将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。

>>> os.path.join('c:\\', 'csv', 'test.csv')

'c:\\csv\\test.csv'

>>> os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')

'c:\\csv\\test.csv'

>>> os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c')

'/home/aa/bb/c'

8.批量修改文件名

import shutil
import os

files = os.listdir(".")
for filename in files:
    pos = filename.find(".")
    if filename[pos + 1:] == "html":
        newname = filename[:pos + 1] + "htm"
        os.rename(filename,newname)

files = os.listdir(".")
for filename in files:
    li = os.path.splitext(filename)
    if li[1] == ".html":
        newname = li[0] + ".htm"
        os.rename(filename, newname)

 

9. 在文件中查找内容

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import shutil
import os
import re

f1 = file("hello.txt", "r")
count = 0
for s in f1.readlines():
    li = re.findall("test", s)
    if len(li) > 0:
        count = count + li.count("test")
print "find " + str(count) + " test"

 

10.读取配置文件

import ConfigParser

config = ConfigParser.ConfigParser()

config.read(“ODBC.ini”)

#获取配置块

config.sections()

#获取配置项

config.options()

#获取配置内容

config.iteams()

#根据配置快和配置项返回内容

config.get()

 

写入配置文件

添加配置快

config.add_section()

设置配置项和配置内容

config.set

 

修改配置项和配置内容

config.set()

 

删除配置文件

删除配置项

remove_options

删除配置块

remove_section

 

11.目录的添加删除操作

import os

os.mkdir("hello")

os.rmdir("hello")

os.makedirs("hello/world")

os.removedirs("hello/world")

 

12. 目录的遍历

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os

def VisitDir(path):
    li = os.listdir(path)
    for p in li:
        pathname = os.path.join(path, p)
        if not os.path.isfile(pathname):
            VisitDir(pathname)
        else:
            print pathname
           
if __name__ == "__main__":
    path = r"C:\windows"
    VisitDir(path)

 

13. 文件流(输出流 输出到文件)

import sys

 

sys.stdout = open(r"./hello.txt", "a")

print "\ngoodbye\n"

sys.stdout.close()

 

输入流读取文件输入到屏幕设备上

import sys

 

sys.stdin = open(r"./hello.txt", "r")

for line in sys.stdin.readlines():

    print line

 

14. 类

定义私有变量用__定义

class Fruit:

     def __init__(self):

           self.__color = "red" #私有属性定义__

 

15. 私有变量访问方式

print _Fruit__color

 

16.抽象类使用

def abstract():
    raise NotImplementedError("abstract")

class Fruit:
    def __init__(self):
        if self.__class__ is Fruit:
            abstract()
        print "Fruit"

class Apple(Fruit):
    def __init__(self):
        Fruit.__init__(self)
        print "Apple"
   
if __name__ == "__main__":
    apple = Apple();

17.多态性

#!/usr/bin/python
# -*- coding: UTF-8 -*-

class Fruit:
    def __init__(self, color = None):
        self.color = color

class Apple(Fruit):
    def __init__(self, color = "red"):
        Fruit.__init__(self,color)
       
class Banana(Fruit):
    def __init__(self, color = "yellow"):
        Fruit.__init__(self,color)
       
class FruitShop:
    def sellFruit(self, fruit):
        if isinstance(fruit, Apple):
            print "sell apple"
       
   
if __name__ == "__main__":
    shop = FruitShop()
    apple = Apple("red")

    banana = Banana("yellow")
    shop.sellFruit(apple)

    shop.sellFruit(banana)

 18. python解析HTML

#! /usr/bin/env python
#coding=utf-8

import BeautifulSoup
import urllib2

page = urllib2.urlopen("http://www.baidu.com/index.html")
soup = BeautifulSoup.BeautifulSoup(page)
print soup

输出

> "C:\Python27\pythonw.exe" -u "C:\Users\Administrator\Desktop\python\pachong\pa.py"
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><title>\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93      </title><style>html,body{height:100%;}html{overflow-y:auto}#wrapper{position:relative;_position:;min-height:100%}#content{padding-bottom:100px;text-align:center;}#ftCon{height:100px;position:absolute;bottom:44px;text-align:center;width:100%;margin:0 auto;z-index:0;overflow:hidden;}#ftConw{width:720px;margin:0 auto;}body{font:12px arial;text-align:;background:#fff}body,p,form,ul,li{margin:0;padding:0;list-style:none}body,form,#fm{position:relative}td{text-align:left}img{border:0}a{color:#00c}a:active{color:#f60}#u{color:#999;padding:4px 10px 5px 0;text-align:right}#u a{margin:0 5px}#u .reg{margin:0}#m{width:720px;margin:0 auto;}#nv a,#nv b,.btn,#lk{font-size:14px}#fm{padding-left:110px;text-align:left;z-index:1;}input{border:0;padding:0}#nv{height:19px;font-size:16px;margin:0 0 4px;text-align:left;text-indent:137px;}.s_ipt_wr{width:418px;height:30px;display:inline-block;margin-right:5px;background:url(http://s1.bdstatic.com/r/www/img/i-1.0.0.png) no-repeat -304px 0;border:1px solid #b6b6b6;border-color:#9a9a9a #cdcdcd #cdcdcd #9a9a9a;vertical-align:top}.s_ipt{width:405px;height:22px;font:16px/22px arial;margin:5px 0 0 7px;background:#fff;outline:none;-webkit-appearance:none}.s_btn{width:95px;height:32px;padding-top:2px\9;font-size:14px;background:#ddd url(http://s1.bdstatic.com/r/www/img/i-1.0.0.png);cursor:pointer}.s_btn_h{background-position:-100px 0}.s_btn_wr{width:97px;height:34px;display:inline-block;background:url(http://s1.bdstatic.com/r/www/img/i-1.0.0.png) no-repeat -202px 0;*position:relative;z-index:0;vertical-align:top}#lg img{vertical-align:top;margin-bottom:3px}#lk{margin:33px 0}#lk span{font:14px "\xe5\xae\x8b\xe4\xbd\x93"}#lm{height:60px}#lh{margin:16px 0 5px;word-spacing:3px}.tools{position:absolute;top:-4px;*top:10px;right:7px;}#mHolder{width:62px;position:relative;z-index:296;display:none}#mCon{height:18px;line-height:18px;position:absolute;cursor:pointer;padding:0 18px 0 0;background:url(http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif) no-repeat right -134px;background-position:right -136px\9}#mCon span{color:#00c;cursor:default;display:block}#mCon .hw{text-decoration:underline;cursor:pointer}#mMenu a{width:100%;height:100%;display:block;line-height:22px;text-indent:6px;text-decoration:none;filter:none\9}#mMenu,#user ul{box-shadow:1px 1px 2px #ccc;-moz-box-shadow:1px 1px 2px #ccc;-webkit-box-shadow:1px 1px 2px #ccc;filter: progid:DXImageTransform.Microsoft.Shadow(Strength=2, Direction=135, Color="#cccccc")\9;}#mMenu{width:56px;border:1px solid #9b9b9b;list-style:none;position:absolute;right:27px;top:28px;display:none;background:#fff}#mMenu a:hover{background:#ebebeb}#mMenu .ln{height:1px;background:#ebebeb;overflow:hidden;font-size:1px;line-height:1px;margin-top:-1px}#cp,#cp a{color:#666666;}#seth{display:none;behavior:url(#default#homepage)}#setf{display:none;}#sekj{margin-left:14px;}</style>
<script type="text/javascript">function h(obj){obj.style.behavior='url(#default#homepage)';var a = obj.setHomePage('http://www.baidu.com/');}</script></head>
<body><div id="wrapper"><div id="content">
<div id="ie6tipcon"></div>
<div id="u"><a href="http://www.baidu.com/gaoji/preferences.html" name="tj_setting">\xe6\x90\x9c\xe7\xb4\xa2\xe8\xae\xbe\xe7\xbd\xae</a>|<a href="https://passport.baidu.com/v2/?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2F" name="tj_login" id="lb" onclick="return false;">\xe7\x99\xbb\xe5\xbd\x95</a><a href="https://passport.baidu.com/v2/?reg&amp;regType=1&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2F" target="_blank" name="tj_reg" class="reg">\xe6\xb3\xa8\xe5\x86\x8c</a></div>
<div id="m"><p id="lg"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" width="270" height="129" /></p>
<p id="nv"><a href="http://news.baidu.com">\xe6\x96\xb0&nbsp;\xe9\x97\xbb</a>\xe3\x80\x80<b>\xe7\xbd\x91&nbsp;\xe9\xa1\xb5</b>\xe3\x80\x80<a href="http://tieba.baidu.com">\xe8\xb4\xb4&nbsp;\xe5\x90\xa7</a>\xe3\x80\x80<a href="http://zhidao.baidu.com">\xe7\x9f\xa5&nbsp;\xe9\x81\x93</a>\xe3\x80\x80<a href="http://music.baidu.com">\xe9\x9f\xb3&nbsp;\xe4\xb9\x90</a>\xe3\x80\x80<a href="http://image.baidu.com">\xe5\x9b\xbe&nbsp;\xe7\x89\x87</a>\xe3\x80\x80<a href="http://video.baidu.com">\xe8\xa7\x86&nbsp;\xe9\xa2\x91</a>\xe3\x80\x80<a href="http://map.baidu.com">\xe5\x9c\xb0&nbsp;\xe5\x9b\xbe</a></p><div id="fm"><form name="f" action="/s"><span class="s_ipt_wr"><input type="text" name="wd" id="kw" maxlength="100" class="s_ipt" /></span><input type="hidden" name="rsv_bp" value="0" /><input type="hidden" name="rsv_spt" value="3" /><span class="s_btn_wr"><input type="submit" value="\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b" id="su" class="s_btn" onmousedown="this.className='s_btn s_btn_h'" onmouseout="this.className='s_btn'" /></span></form><span class="tools"><span id="mHolder"><div id="mCon"><span>\xe8\xbe\x93\xe5\x85\xa5\xe6\xb3\x95</span></div></span></span><ul id="mMenu"><li><a href="#" name="ime_hw">\xe6\x89\x8b\xe5\x86\x99</a></li><li><a href="#" name="ime_py">\xe6\x8b\xbc\xe9\x9f\xb3</a></li><li class="ln"></li><li><a href="#" name="ime_cl">\xe5\x85\xb3\xe9\x97\xad</a></li></ul></div>
<p id="lk"><a href="http://baike.baidu.com">\xe7\x99\xbe\xe7\xa7\x91</a>\xe3\x80\x80<a href="http://wenku.baidu.com">\xe6\x96\x87\xe5\xba\x93</a>\xe3\x80\x80<a href="http://www.hao123.com">hao123</a><span> | <a href="http://www.baidu.com/more/">\xe6\x9b\xb4\xe5\xa4\x9a&gt;&gt;</a></span></p><p id="lm"></p>
</div></div><div id="ftCon"><div id="ftConw"><p><a id="seth" onclick="h(this)" href="/" onmousedown="return ns_c({'fm':'behs','tab':'homepage','pos':0})">\xe6\x8a\x8a\xe7\x99\xbe\xe5\xba\xa6\xe8\xae\xbe\xe4\xb8\xba\xe4\xb8\xbb\xe9\xa1\xb5</a><a id="setf" href="http://www.baidu.com/cache/sethelp/index.html" onmousedown="return ns_c({'fm':'behs','tab':'favorites','pos':0})" target="_blank">\xe6\x8a\x8a\xe7\x99\xbe\xe5\xba\xa6\xe8\xae\xbe\xe4\xb8\xba\xe4\xb8\xbb\xe9\xa1\xb5</a><span id="sekj"><a href="http://www.baidu.com/search/baidukuaijie_mp.html" target="_blank" onmousedown="return ns_c({'fm':'behs','tab':'kuaijie','pos':1})">\xe6\x8a\x8a\xe7\x99\xbe\xe5\xba\xa6\xe6\xb7\xbb\xe5\x8a\xa0\xe5\x88\xb0\xe6\xa1\x8c\xe9\x9d\xa2</a></span></p><p id="lh"><a href="http://e.baidu.com/?refer=888" onmousedown="return ns_c({'fm':'behs','tab':'btlink','pos':2})">\xe5\x8a\xa0\xe5\x85\xa5\xe7\x99\xbe\xe5\xba\xa6\xe6\x8e\xa8\xe5\xb9\xbf</a> | <a href="http://top.baidu.com">\xe6\x90\x9c\xe7\xb4\xa2\xe9\xa3\x8e\xe4\xba\x91\xe6\xa6\x9c</a> | <a href="http://home.baidu.com">\xe5\x85\xb3\xe4\xba\x8e\xe7\x99\xbe\xe5\xba\xa6</a> | <a href="http://ir.baidu.com">About Baidu</a></p><p id="cp">&copy;2013 Baidu <a href="/duty/">\xe4\xbd\xbf\xe7\x94\xa8\xe7\x99\xbe\xe5\xba\xa6\xe5\x89\x8d\xe5\xbf\x85\xe8\xaf\xbb</a> <a href="http://www.miibeian.gov.cn" target="_blank">\xe4\xba\xacICP\xe8\xaf\x81030173\xe5\x8f\xb7</a> <img src="http://www.baidu.com/cache/global/img/gs.gif" /></p></div></div>
</div></body>
<script>var bds={se:{},comm : {ishome : 1,sid : "1758",user : "",username : "",sugHost : "http://suggestion.baidu.com/su",loginAction : []}}</script><script type="text/javascript" src="http://s1.bdstatic.com/r/www/cache/global/js/tangram-1.3.4c1.0.js"></script><script type="text/javascript" src="http://s1.bdstatic.com/r/www/cache/user/js/u-1.3.4.js"></script>
</html>
<!--640015f8e5e79ae7-->

目录
相关文章
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
375 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
153 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
172 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
69 1
|
2月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
106 1
|
2月前
|
索引 Python
Python学习笔记编程小哥令狐~持续更新、、、(上)
Python学习笔记编程小哥令狐~持续更新、、、(上)
52 2
|
2月前
|
存储 Python
Python学习笔记编程小哥令狐~持续更新、、、 (下)
Python学习笔记编程小哥令狐~持续更新、、、 (下)
34 1
|
2月前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
44 0
【免费分享编程笔记】Python学习笔记(二)
|
2月前
|
Java 编译器 Go
Python学习笔记--- day01计算机基础和环境搭建(一)
Python学习笔记--- day01计算机基础和环境搭建(一)
44 2
|
2月前
|
程序员 编译器 Python
Python学习笔记--- day01计算机基础和环境搭建(二)
Python学习笔记--- day01计算机基础和环境搭建(二)
49 1