首页 > 代码库 > Python学习笔记

Python学习笔记

说明,该笔记不只是用来记录知识点,如果看完都知道在说什么,那就OK了,如果看了不知道写的什么,那就复习下。

1、代码注释用"#"号

2、print用逗号","隔开

3、格式化字符串:

  eyes=‘Blue‘

  hair=‘Brown‘

  print "He‘s got %s eyes and %s hair" %(eyes,hair)

4、print "."*10   #打印10个"."

5、自适应格式化%r

6、print "How old are you?", #最尾的逗号使print输出换行

   age = raw_input()

7、上例可以直接写成:

  age=raw_input("How old are you?")

8、三个引号"""可以定义多行字符串

9、传入参数:

  假设py文件名是ex20.py,内容如下

  from sys import argv
  script, input_file = argv

  ...

  则运行 python ex20.py text.txt 

  script等于ex20.py, input_file等于text.txt 

10、文件操作

  close,read,readline,truncate,write

11、函数:

  def print_two(*args):

    arg1,arg2=args

    print arg1,arg2

12、条件语句

  if a>b:

    print "a>b"

13、循环语句

  the_count=[1,2,3,4,5]

  for num in the_count:

    print "num = %d"%num

14、while i<b:

    print "i=%d"%i

    i=i+1

15、字典容器(可以认为是C++里面的map)

  stuff={‘name‘:‘Zed‘,‘age‘:36}

  print stuff[‘name‘]

16、字典容器可以放函数

  def fm(x,y):

    ....

  fun_map = {‘fun‘:‘xxx‘} #这句没什么意义

  fun_map[‘my_fun‘] = fm

  fun_map[‘my_fun‘] (x,y) #相当于调用fm函数

17、更灵活的循环

  1)for (index,char) in enumerate(s):

      print index,char  #同时得到下标和元素

  2)for (a,b,c) in zip(ta,tb,tc):

      print (a,b,c)

18、yield应用,例子:

  def fab(max):

    n,a,b = 0,0,1

    while n<max:

      yield b

      a,b=b,a+b

      n=n+1

  for n in fab(3):

    print n

  1

  1

  2

  yield作用其实是将一个函数变成一个generator,调fab(3)其实是返回了一个iterable对象

19、map()函数

  re=map((lambda x:x+3),[1,3,5,6]) #结果[4,6,8,9]

  re=map((lambda x,y:x+y),[1,2,3],[6,7,9]) #结果 [7,9,12]

20、filter函数

  def func(a):

    if a>10:

      return True

    return False

  filter(func,[2,100,32,9]) #结果[100,32]

21、reduce函数

  reduce((lambda x,y:x+y),[1,2,3,4]) #结果10

22、异常处理

  try:

    xxx

  except xxx:

    xxx:

  except xxx:

    xxx:

  else:

    xxx

  finally:  #不管是否有异常,最后都要做的事情

    xxx

23、Python标准库

  第一类 Python增强

  1)文字处理 string,re(正则表达式)

  2)数据对象,各种数据类型

  3)日期时间 time时间 datetime日期

  4)数学运算decimal,fractions,random,match

  5)存储 实际上Python可以输入输出任意对象,这些对象可以通过pickle包转成二进制格式,存于文件中,也可以反向对其读取

   sqlite3 XML csv有对应包

  第二类 系统互动

  1)Python运行控制

  2)操作系统

  3)线程和进程

  第三类 网络

  1)socket

  2)http等

24、序列方法  tuple,list,string都是序列

  len(s) min(s) max(s)

  all(s) #如果所有元素都为True,则返回True

  any(s) #如任一元素为True,则返回True

  sum(s) #返回所有元素的和,但不用于string

  s.count(x) #x在s中出现的次数

  s.index(x) #x在s中第一次出现的位置

  l.extend(l2) l.append(x) l.sort()排序 l.reverse()逆序 l.pop() del l[i]

25、datetime

  可以运算比较

  与字符串转换:

  format = "ot-%Y-%m-%d-%H%M%S.txt"

  str = "ot-1997-12-23-030000.txt"

  t=datetime.strptime(str,format)

  反过来:strftime(format)

26、路径和文件

  os.path glob 路径处理,很丰富 glob则主要等同于ls命令

27、subprocess包 用于执行外部命令和程序

  功能与shell类似

  call check_call check_output

  Repen PIPE.Popen.wait Popen.communicate

  可以极大的扩展Python功能,通过调用外部应用,并将应用结果输出给Python,并让Python继续处理

28、多线程

  threading Thread

29、多进程

  multiprocessing Process

  进程池

30、数学包 

  math random

31、socket HTTP

  一个简单的HTTP Server端很容易实现,搜Vamei博客,例子很清晰明了

32、技巧

  1)用__name__,__name__=‘__main__‘跳过测试语句

  2)python -i test.py  运行完进入命苦行

33、with...as...例子

  f=open("new.txt","w")

  f.closed()

  f.close()

  等同于:

  with open("new.txt","w") as f:

    f.closed()  #返回是否关闭

  #出了with...as...会自己关f

34、对象的属性 __dict__

  bird.__dict__   #查bird的属性对

35、Python支持生成即时属性

  class chicken(bird)

    fly=False

    def __init__(self,age):

      self.age=age

    def getAdult(self):

      if self.age>1.0:return True

      else:return False

    adult=property(getAdult)

  还可以:

  @property

  def getAdult(self):

    .....

36、函数装饰器 注,函数装饰器还可以带参数

  def dec(F):

    def nF(a,b):

      print ("input",a,b)

      return F(a,b)

    return nF

  @dec

  def addc(a,b):

    return a+b

37、还有装饰类,与装饰函数类似的应用

Python学习笔记