首页 > 编程语言 > 详细

python基础(序列,元祖,列表,字典,对象,类)

时间:2014-07-21 15:14:17      阅读:615      评论:0      收藏:0      [点我收藏+]

1、标准的序列操作:

索引、分片、乘法、判断成员资格、求长度、取最大值和最小值

2、python之删除命令的区别:

>>> x

[‘or‘, ‘not‘, ‘to‘, ‘be‘, ‘or‘, ‘be‘]

del:删除指定索引的值

>>> del x[0]

>>> x

[‘not‘, ‘to‘, ‘be‘, ‘or‘, ‘be‘]

pop:默认删除最后一个值

>>> x.pop()

‘be‘

>>> x

[‘not‘, ‘to‘, ‘be‘, ‘or‘]

除to:

>>> x.pop(1)

‘to‘

>>> x

[‘not‘,‘be‘,‘or‘]

remove:用于移除列表中某个值的第一个匹配项

>>> x.remove(‘not‘)

>>> x

[‘to‘, ‘be‘, ‘or‘]

3、内建的callable函数可以用来判断函数是否可调用。

4、内建的help函数可以得到关于函数包括它的文档字符串的信息

5、任何不知道对象到底是什么类型,但是又要对对象“做点什么”的时候,都会用到多态

6、如果想要查看一个类是否是另一个的子类,可以使用内建的issubclass函数

>>>issubclass(SPAMFilter,Filter)

7、如果想要知道已知类的基类(们),可以直接使用它的特殊特性__bases__;

>>> SPAMFilter.__bases__

8、还可以使用isinstance方法检查一个对象是否是另一个类的实例

>>>s  =  SPAMFilter()

>>>isinstance(s, SPAMFilter)

9、如果只想知道一个对象属于哪个类,可以只要__class__特性

>>>s.__class__

10、为了让代码可用,请将它模块化

11、探究模块:

---->1、导入模块:>>>import copy

---->2、查看模块包含的内容:dir

---->3、__all__变量:copy.__all__  all中会过滤一大堆其他程序不需要活不想要的变量、类和函数,如果没有设定__all__,用import * 语句默认将会输出模块中所以不以下划线开头的全局名称。

---->4、help函数:help(copy)

---->5、查看模块路径:print copy.__file__

12、我们在文件中加入了一个或两个函数,如果还希望能以脚本方式运行,则需要加入特定的if __name__ == "__main__"

13、python 脚本中声明中文

#!/usr/bin/python

#coding:utf8              这两种声明中文显示的都可以

#-*- coding:utf8-*-    这两种声明中文显示的都可以


input()  获取数字

raw_input()  获取字符串


random 随机数:

random.randint()


打印0-10:

>>> range(10)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


当元祖中只有一个值的时候,该元祖的类型为该值的类型

>>> type(t1)

<type ‘int‘>

如果想要该值的类型为元祖类型,在值的后面加逗号就可以。



序列:列表、元组、字符串 

序列的通用操作:索引、切片


列表推倒式:当从一个列表生成一个新的列表的时候使用列表推倒式

[ i*2 for i in range(1,10,2) ]



>>> sum([i for i in range(1000) if i % 3 == 0 or i % 5 == 0])

233168


生成器:

[i for i in range(1000) if i % 3 == 0 or i % 5 == 0] 

把[]变成()就 成为了生成器:

(i for i in range(1000) if i % 3 == 0 or i % 5 == 0)



文件写入:

写入文件后,如果要查看是否写入,可以f.close() 或 f.flush()


导入模块而不执行模块中的函数:

if __name__ == ‘__main__‘:

 pass


字典定义:

>>> d1 = {"terry":"27","huanhuan":"26"}

>>> d1

{‘huanhuan‘: ‘26‘, ‘terry‘: ‘27‘}

生成:

    空字典{}

    带值的字典{‘key‘:‘value‘}

    dict(list)

    dict(**keywords)

fromkeys

>>> ddict = {}.fromkeys((‘x‘, ‘y‘), -1)

>>> ddict

{‘y‘: -1, ‘x‘: -1}

>>>

>>> edict = {}.fromkeys((‘foo‘, ‘bar‘))

>>> edict

{‘foo‘: None, ‘bar‘: None}

引用字典数据:

    d[‘key‘]

>>> p1 = dict(name=1,age=2)

>>> p1

{‘age‘: 2, ‘name‘: 1}

修改:

    dict[‘key‘] = new value

    update  : 如果dict里没有,则增加,如果有,则更新

删除;

    del d[‘key‘]    !=  del d

字典的遍历:

for key in dict:

    print key

遍历方式1::

for key in dict:

    print dict[key]

遍历方式2:

for key, value in dict2.items():

print ‘key=%s, value=%s‘ % (key, value)

字典及列表的互相转换方式:

items(): dict.items() ------> list     dict(list)   -----> list 

>>> d1.items()

[(‘huanhuan‘, ‘26‘), (‘terry‘, ‘27‘)]

遍历方式2:

items方式遍历

>>> for key,value in d1.items():

...     print value

... 

26

27


字典的其他操作:

1、判定是否在字典当中:

>>> d1

{‘huanhuan‘: ‘26‘, ‘terry‘: ‘27‘}

>>> "terry" in d1

True

2、访问dict:Keyerror   异常处理,

使用get方式去访问,如果有key则返回值,如果没有key则返回None,降低错误几率。

使用get的优点,不用考虑异常

>>> d1.get("terry")

‘27‘

>>> d1.get(‘mail‘)

>>> d1.get(‘mail‘,‘28‘)   ----> 可以自定义返回值

‘28‘

3、help(dict) 可查看具体应用

**************************************************************

1、x,y = 1,2   其实就是(x,y)= (1,2)

2、在python中变量名就是指针

3、修改模块后,测试时可重新加载使用:reload(module)

**************************************************************

3、update()方法可以用来将一个字典的内容添加到另外一个字典中

dict1 = {‘x’:1,‘y‘:2}

dict2 = {‘x‘:1}

dict2.update(dict1)

对象:

1、python当中,一切都是对象。

2、类型 -----类

对象一定是某种类型的,可用type()判断

类型 ----该类型的实例 --- --对象

    方法(函数):行为

    属性(变量):特性

3、内置的类:

4、自定义类:

    类的定义:(成员级别、类级别、静态方法)

    class  Class_Name(父类列表):  #可以支持多重继承;类名的定义,首字符大写

        类体

    例子:

class Person(object):   新式类体,一般都加上object

    pass

    类的使用:实例化类 ---对象

    p1 = Person()

    组成:(类体中)

        成员方法(实例成员方法)(通过对象去调用):  成员方法实际上就是实例成员方法。

第一个形参:self   对象本身

        成员属性(实例成员属性):

 成员方法中

        self.属性名

初始化方法 __init__(self,……):

类实例化对象、生成对象,对象自动调用__init__()

不要加return

初始化成员属性

def __init__(self,…)

类属性(类成员属性):

类对象的属性:

位置:直接出现在类体中

class ClassName(object):

类属性

类对象可以调用 Person.count

实例对象是否可以调用类属性:

1、可以,仅限于实例对象没有同名的属性

2、修改操作,则创建了实例属性,

类方法(类成员方法):   作用范围?  

定义的形式:

@classmethod            #装饰器使用@操作符

def fun_name(cls):   #类方法中的第一个参数cls也是必须得。就像self

pass

实例对象是否可以调用类方法:

类名.类方法()

静态方法:

定义形式:

@staticmethod

def fun_name():      #不用加参数

pass

使用:

1、实例对象可调用静态方法

2、类对象也可调用静态方法

3、类内也可直接调用: 类名.静态方法()

**********************************************************************************************

成员方法只能被类实例调用

成员级别的可以去调用类级别的,类级别的不可以调用成员级别的。

静态方法:无法访问类属性、实例属性,相当于一个相对独立的方法,跟类其实没什么关系,换个角度来讲,其实就是放在一个类的作用域里的函数而已。

**********************************************************************************************

继承:

class Emp(Person):

    def __init__(self,name,sex,dept):

        Person.__init__(self,name,sex)

        self.dept = dept


本文出自 “muzinan的技术博客” 博客,请务必保留此出处http://muzinan110.blog.51cto.com/684213/1440896

python基础(序列,元祖,列表,字典,对象,类)

原文:http://muzinan110.blog.51cto.com/684213/1440896

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!