Python(2)

发布时间:2019-08-28 09:07:10编辑:auto阅读(1686)

    一、python是强类型语言:

    1、两个对象比较:

    (1)、身份(内存地址):两个对象的引用是否相同。

     id(a)==id(b)或者a is b 

    (2)、值:两个对象的数据是否相等。

     a==b

    (3)、类型:两个对象的类型是否相同。

     type(a) is type(b)


    2、核心数据类型:

    (1)、数字:int,long,float,complex,bool

    (2)、字符:str,unicode

    字符串可以用用单引号、双引号、三引号来定义,只不过三引号支持换行。

    例:>>>str1=u"hello"

      >>>type(str1)

        unicode

    (3)、列表:list

       A、列表操作包含以下函数:

        a、cmp(list1, list2):比较两个列表的元素 

        b、len(list):列表元素个数 

        c、max(list):返回列表元素最大值 

        d、min(list):返回列表元素最小值 

        e、list(seq):将元组转换为列表 

       B、列表操作包含以下方法:

         a、list.append(obj):在列表末尾添加新的对象

        b、list.count(obj):统计某个元素在列表中出现的次数

        c、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值

        d、list.index(obj):从列表中找出某个值第一个匹配项的索引位置

        e、list.insert(index, obj):将对象插入列表

        f、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个),并且返回该元素的值

        g、list.remove(obj):移除列表中某个值的第一个匹配项

        h、list.reverse():反向列表中元素

        i、list.sort([func]):对原列表进行排序

    (4)、字典:dict

    (5)、元组:tuple

    (6)、文件:file

    (7)、集合:set

    (8)、类类型

    (9)、None


    3、类型转换:

    (1)、str(s),repr(s),format(s):将非字符型s转换为字符。

    (2)、int(s):将s转换为整数。

    (3)、float(s):将s转换为浮点数。

    (4)、list(s):将s转换为列表。

    (5)、tuple(s):将s转换为元组。

    (6)、set(s):将s转换为集合。

    (7)、dict(d):创建字典,其中d必须为(k,v)的元组序列。


    二、文档字符串:

    模块、类、函数的第一条语句是一个字符串的话,该字符串就成为文档字符串,可以使用__doc__属性引用。

    三、列表和字典复制操作:

    列表和字典都支持两种类型的复制操作,浅复制和深复制。


    1、浅复制:只复制引用。

    >>>l1=[1,2,3] 

    >>>l2=l1

    >>>l1.append(4)

    >>>print l2 

    [1,2,3,4]


    2、深复制:创建一个新的对象,可以使用copy模块中的deepcopy()实现。

    >>>l1=[1,2,3] 

    >>>l2=copy.deepcopy(l1)

    >>>l1.append(4)

    >>>print l2 

    [1,2,3]

    四、语句:

    1、赋值语句:

    (1)、隐式赋值:import,from,def,class,for,函数参数

    2)、多重目标复制:如n1=n2=n3=1

    3)、增强赋值:+=,-=,*=,/=,//=,%=

    4)、元组和列表分解赋值:当赋值符号=的左侧为元组或者列表时,Python会按照

        位置把右边的对象和左边的目标自左向右逐一进行配对,个数不同会触发异常。

    2、调用语句:


    3、print语句:

    例:

    >>>x=1

    >>>print x

     1

    >>>print type(x)

     int

        

    4、if语句:

      >>>if boolean_expression:

        ...

      >>>elif boolean_expression:

        ...

      >>>else:

        ...

    例:x=1,y=10

        if x<y:

          print x

        else:

          print y


    5、for循环:

     for expression in object:

        for_suite

        if boolean_expression:continue

        if boolean_expression:break

     else:

        else_suite

    备注:else是for正常结束时,最后执行一次。

    例1:>>>l1=[1,2,3,4]

        for i in l1:

          print i

    例2:>>>属于列表l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']

        但不属于列表l2=['Sun','Mon','Tue','Wed']

        l3=[]

        for i in l1:

          if i not in l2:

          l3.append(i)  


    6、while循环:

     

     while expression in object:

        while_suite

        if boolean_expression:continue

        if boolean_expression:break

     else:

        else_suite.


    >>>str1="shang hai"

    >>>while str1:

          print str1

          url=[1:]


    7、break

    8、continue


    9、def:定义函数


    10、return

    11、yield:生产器函数

    12、global:命名空间

    13、raise:手动触发异常

    14、import:模块导入

    15、from:模块属性访问

    16、class:定义类

    17、try/except/finally:捕捉异常

    18、del:删除引用

    19、assert:断言,调试检查

    20、with/as:环境管理器

    五、列表解析:

    列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置于[]中。

    语法:

    [expressioin for iter_var in iterable]

    [expressioin for iter_var in iterable if cond_expr]

    例1:

    >>>l=[x**2 for x in range(5)]

    >>>print l

    [0,1,4,9,16]

    例2:

    >>>l1=[1,2,3,4,5]

    >>>l=[x**2 for x in l1 if x>=3]

    >>>print l

    [9,16,25]

    例3:

    >>>for i in [i**2 for i in range(1,11)]:

    >>>   print i/2

    0 2 4 8 12 18 24 32 40 50

    例4、求/var/log下以.log结尾的文件列表:

    >>>filelist=[i for i in os.listdir('/var/log') if i.endswith('.log')]

    >>>print filelist

    ['anaconda.log','dracut.log','yum.log','boot.log']


    六、生成器表达式:

    生成器表达式并不创建数字列表,而是返回一个生成器对象,此对象在每次计算出一个条目后,把这个条目产生(yield)出来.

    序列过长,并且每次只需要获取一个元素时,应当考虑使用生成器表达式而不是使用列表解析。

    语法:

    (expre for iter_var in iterable)

    (expre for iter_var in iterable if cond_expr)

    例1:

    >>>g1=(i**2 for i in range(1,11))

    >>>g1.next()

    1

    >>>g1.next()

    4

    >>>g1.next()

    9

    >>>g1.next()

    16

    ...

    例2:

    >>>for i in (i**2 for i in range(1,11)):

    >>>   print i/2

    0 2 4 8 12 18 24 32 40 50


    七、Python中的真假:

    1、任何非0数字和非空对象都为真。

    2、数字0,空对象和特殊对象None都为假。

    例1:非空对象都为真

    >>>str1="shang hai"

    >>>while str1:

          print str1

          url=[1:]

    例2:非0数字都为真

    >>>x=1

    >>>if x<100:

       print x

       x=+1

      else:

       print "game over"

        

    八、Python的文件对象:

    1、open:python内置函数,用于打开文件和创建文件对象。

    (1)、语法:open(name[,mode[,bufsize]])

        open方法可以接收三个参数:文件名、模式和缓冲区参数,

         open函数返回的是一个文件对象。

    (2)、mode参数:指定文件的打开模式.

        r:只读

        w:写入

        a:追加

        在模式后附加+:表示同时支持输入、输出操作。

        在模式后附加b:表示以二进制方式打开。

    (3)、bufsize参数:定义输出缓存

     0表示无输出缓存。

     负数表示使用python默认设置。

     正数表示指定此正数大小的缓存。

    (4)、方法:

     >>>f1=open('/etc/passwd','r')

     >>>f1.next()//读取一行

     >>>f1.tell()//光标所在的位置(字节数)

     >>>f1.readline()//返回一行

     >>>f1.readlines()//返回文件所有行

     >>>f1.seek(offset[,whence])////指定光标到文件的位置。

       whence:起点

         0:从文件头部,默认为头部。

         1:从当前位置。

         2:从文件尾部。

       offset:偏移量。

      如:f1.seek(0)即f1.seek(0,0)指定光标到文件的头部。

     >>>f1.close()//关闭文件:操作结束要关闭文件。

     例:>>>l1=[i+'\n' for i in os.listdir('/etc') ]

        >>>f1=open('/tmp/test.txt','w+');

        >>>f1.writelines(l1)

    九、python的os模块:使用时要导入即import os,常用方法如下:

    1、目录相关的方法:

    (1)、mkdir()方法:创建目录。

      os.mkdir("/tmp/testdir1");

    (2)、mkdirs():创建多级目录即如果父目录不存会逐级创建。

    (3)、chdir():切换目录。

      os.chdir()

    (4)、chroot():设定当前进程的根目录。

      os.chroot()

    (5)、listdir():列出指定目录下的所有文件名。

    (6)、rmdir():删除目录

    (7)、removedirs():删除多级目录

    (8)、getcwd():获取当前所在目录


    2、文件相关的方法:

     (1)、mknod():创建设备文件。

     (2)、remove():删除文件

     (3)、unlink():删除连接为文件

     (4)、rename():重命名。

     (5)、os.stat():获取文件的相关信息。

        os.stat('t.txt');

     (6)、symlink():创建符号连接

     (7)、utime():更新时间戳

     (8)、tmpfile():创建并打开一个新的临时文件。

    3、访问权限相关的方法:

     (1)、access():判定指定用户对某文件是否有访问权限。

        例:os.access('/tmp/t1.txt',0),用户id=0的用户对/tmp/t1.txt是否有访问权限。

     (2)、chmod():修改权限。

        例:os.chmod('/tmp/t1.txt',0640),

     (3)、chown():修改属主属组。

    4、文件路径相关:os.path

    (1)、os.path.basename():路径基名

    (2)、os.path.dirname():路径目录名

    (3)、os.path.abspath():绝对路径

    (4)、os.path.join():合并文件名

    (5)、os.path.split():分隔文件名

    (6)、os.path.exists():判断文件是否存在。

    (7)、os.path.getsize():返回文件的大小。

    (8)、os.path.isdir():是否为目录

    (9)、os.path.isfile():是否为文件。


    例:import os

      import os.path

    filename="/tmp/test.txt"

    if os.path.isfile(filename):

      print filename +"is file."

    else:

      print filename +"is not file." 


    十、对象持久化模块pickle:

    >>>d1={'x':'hello','y':'world','z':'.'}

    >>>f1=open('/tmp/dfile.txt','a+')

    >>>f1.write(d1),将对象写到文件中会报错,这是需要借助pickle来实现。

    >>>pickle.dump(d1,f1)

    >>>f1.close()

    >>>f2=open('/tmp/dfile.txt','r');

    >>>d2=pickle.load(f2),将dfile.txt装载到f2

    >>>print d2,结果如下:

    {'x':'hello','y':'world','z':'.'}



关键字

上一篇: python的变量

下一篇: python EasyGui