python序列类型举例说明_python基础(序列,元祖,列表,字典,对象,类)

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)

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

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

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

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

[ 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值