python对象类型之概述

来源:互联网 发布:linux mv移动多个文件 编辑:程序博客网 时间:2024/05/29 19:15

1、几个问题:

      (1)python的对象是什么?

          在我们应用python时,我们常常使用一些东西来做一些事儿,事儿包括像加法这样的操作形式,东西就是操作对象,亦即是python的对象。

      (2)python的全景: 

           程序由模块组成,

           模块由语句组成,

           语句由表达式组成,

           表达式建立处理对象。

      (3)内置类型?内置类型好处?

           内置类型即是python里默认的数据类型,不用用户进行对象实现;

           好处:程序易编写;

                       内置类型是扩展的基础;

                       效率更高;

                       内置类型是语言标准的一部分。

      (4)python都有社么核心数据类型?

            数字、字符串、列表、字典、元组、文件等。

2、核心类型之数字

      (1)表达式:
      >>>123+234     #加法运算

      >>>1.2*5            #单星号浮点数乘法

      >>>2**10           #双星号乘方运算

      (2)常用数学模块:math模块

      >>>import math

      >>>math.pi

      >>>math.sqrt(81)   #开方运算

         常用数学模块: random模块

      >>>import random

      >>>random.random()

      >>>random.choice([1,2,3,4,5])

3、核心类型之字符串:(单个字符串的序列)

      (1)序列操作:

          len函数验证序列长度:

          >>>s='spam'

          >>>len(s)

          4

         索引得到各元素:(如何索引?索引是按照从最前面开始进行正偏移量而得到;从最后一个开始进行负的偏移量得到)

          >>>s[0]

          's'

         >>>s[1]

         'p'

         >>>s[-1]         #最后一个

         ‘m'

         >>>s[len(s)-1]

         'm'

         分片操作:(一般形式:X[i:j];表示取出在X中从偏移为i,直到但不包括j的内容,左边界缺省默认为0,右边界默认为序列长

         >>>s

         'spam'

         >>>s[1:3]

         'pa'

         >>>s[:-1]

          'spa'

         >>>s[:]

          'spam'

         字符串的合并与重复:
         >>>s

         'spam'

         >>>s+'xyz'

         'spamxyz'

         >>>s

         'spam'

         >>>s*3

         'spamspamspam'

       (2)字符串的不可变性:(字符串一旦创建就不能对其值再进行任何修改,任何对字符串的操作都只是创建了一个新的字符串,数字、元组都是不可变的,列表和字典是可变的)

       (3)字符串的特定方法:(以上方法实质上是对序列的操作,任何序列都可以使用的通用操作,而字符串有一些独有的操作

            find()函数(查找,返回一个传入字符的偏移量

            >>>s

            'spam'

             >>>s.find('pa')

             1

            replace()(全局查找并替换

            >>>s.replace('pa','hhhhhh')

            'shhhhhm'

            dir()函数(获取更多字符串方法

             >>>dir(s)

             ['_add_',..'zfill']

             >>>help(s.index)(可以获取帮助内容)

       (4)模式匹配:

            参考博客:http://blog.csdn.net/smilelance/article/details/6529950

4、核心类型之列表

      (1)列表是一种序列,可以有序列的通用操作:长度验证len,索引,分片,连接等

      (2)列表特有操作:

           append()(在列表尾部添加一项):
           >>>L=[123,'spam',1.23]

           >>>L.append('NI')

           >>>L

           [123,'spam',1.23,'NI']

           pop()(移除给定偏移量的一项):
            >>>L.pop(2)

            1.23

           sort()(默认升序排列);

           reverse()(对列表进行翻转):
           >>>M=['bb','aa','cc']

           >>>M.sort()

           >>>M

           ['aa','bb','cc']

           >>>M.reverse()

           >>>M
           ['cc','bb','aa']

       (3)边界检查:当操作不存在的列表元素时,python会报错;

       (4)嵌套:python可以支持任意的嵌套:

           >>>M=[[1,2,3],[4,5,6],[7,8,9]]

        (5)列表解析:

            >>>col2=[row[1] for row in M]

            >>>col2

            [2,5,8]

            >>>[row[1]+1 for row in M]

            [3,6,9]

            >>>diag=[M[i][i] for i in [0,1,2]]

            >>>diag

            [1,5,9]

            >>>doubles=[c*2 for c in 'spam']

            >>>doubles

            ['ss','pp','aa','mm']

5、核心类型之字典:(字典就是一组键与值的映射)

      (1)映射操作:(作为常量编写时,字典写在大括号里,包含一系列“键:值“对

           >>>D={'food':'spam','quantity':4,'color':'pink'}

           我们可以通过对键进行索引来读取或改变键所关联的值:

           >>>D['food']

           'spam'

       (2)重访嵌套:

            >>>rec={'name':{'first':'Zhao','last':Long},'job':['dev','mgr'],'age':23}

            *值得注意的是,在python中,当最后一次引用对象后,此对象占用的内存空间将自动清理

       (3)键的排序:for循环

            keys()函数:(收集一个键的列表),sort()函数:(升序排列

            >>>D={’a':1;'b':2,'c':3}

            >>Ks=D.keys()    #得到一个键的列表

            >>>Ks.sort()        #升序排列

            >>>for key in keys:
                    print key,'=>',D[key]

             以上三步等价于下面一条语句:

             >>>for key in sorted(D):
                    print key,'=>',D[key]

       (3)迭代与优化:任何一个解析表达式都能改写成一个for循环。

       (4)if测试:has_key()函数,可以判断键的存在性

            >>>D

            {’a':1;'b':2,'c':3}

            >>>D.has_key('f')

            false

            >>>if not D.has_key('f'):

                    print 'no this key'

            no this key

6、核心类型之元组:(元组类似一个列表,但最重要的是元组一旦创建后就不能再改变

      >>>T=(1,2,3,4)

      则元组T具有不变性

7、核心类型之文件:(文件是python代码对电脑外部文件的主要接口,文件没有特定的常量语法进行创建,可用open函数进行创建)

      >>>f=open(‘data.txt’,'w')

      >>>f.write('Hello\n')

      >>>f.write('World\n')

      >>>f.close()

      类似字符串,可以用dir()函数查到更多的文件方法:

      >>>dir(file)

      [...]   #很多的文件方法

8、其他核心类型:

      集合、十进制数,布尔值,占位符对象None、用户定义的类

0 0
原创粉丝点击