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)
<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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。