标签:
在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)
结论:对象=属性+方法
在python中,把具有相同属性和方法的对象归为一个类(class)
比如人类,动物,植物等等,这些都是类的概念。
类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。
具有的功能:
1 | class int ( object ): |
(1).返回表示该数字的时占用的最少位数
1 2 3 4 | def bit_length( self ): 例: >>> bin ( 10 ) ‘0b1010‘ #0b是二进制,1010是所占位数 |
(2).返回绝对值
1 2 3 4 5 6 7 | def __abs__( self ): 例: >>> absolute = - 10 >>> absolute.__abs__() 10 >>> abs ( - 10 ) 10 |
(3).相除,得到商和余数组成的元组
1 2 3 4 5 6 | def __divmod__( self ) 例: >>> age = 21 >>> sb = age.__divmod__( 6 ) >>> print (sb) ( 3 , 3 ) |
(4).int转换为浮点类型
(5).__cmp__(self, y)比较两个数大小 注:在3.x版本被
(6).__coerce__(self, y)强制生成一个元组 注:在3.x版本被取消
(7).数值相加
1 2 3 4 5 6 7 8 | def __add__( self ,other) 例: >>> num1 = 15 >>> num2 = 20 >>> print (num1 + num2) 35 >>> print (num1.__add__(num2)) 35 |
1 2 3 4 5 6 | >>> bool = 0 >>> print ( bool .__bool__()) False >>> bool = 1 >>> print ( bool .__bool__()) True |
9. 判断是是否相等
1 2 3 4 | >>> zhi1 = 10 >>> zhi2 = 11 >>> print (zhi1.__eq__(zhi2)) False |
10. 返回浮点
1 2 3 | >>> zhi = 10 >>> print (zhi.__float__()) 10.0 |
11. 地板除
1 2 3 4 | >>> a= 10 >>> b= 3 >>> print(a.__floordiv__(b)) 3 |
12. 大于等于
1 2 3 4 | >>> a = 20 >>> b = 12 >>> print (a.__ge__(b)) True |
13. 大于
1 2 | >>> print (a.__gt__(b)) True |
14.哈希
1 | print (num.__hash__()) |
15.__invert__ :取反
1 2 3 | >>> a = 45 >>> print (a.__invert__()) - 46 |
16.小于等于
1 2 3 4 | >>> a = 10 >>> b = 20 >>> print (a.__lt__(b)) True |
17. __lshift__ :左移位
1 2 3 4 | >>> num1 = 10 >>> num2 = 10 >>> print (num1.__lshift__(num2)) 10240 |
18.求模
1 2 3 4 | >>> a = 20 >>> b = 11 >>> print (a.__mod__(b)) 9 |
19.相乘
1 2 3 4 | >>> a = 10 >>> b = 2 >>> print (a.__mul__(b)) 20 |
20.取反
1 2 3 | >>> a = 21 >>> print (a.__neg__()) - 21 |
21.不等于
1 2 3 4 | >>> a = 20 >>> b = 10 >>> print (a.__ne__(b)) True |
22.取正数
1 2 3 4 5 6 | >>> a = - 10 >>> print (a.__pos__()) - 10 >>> a = 10 >>> print (a.__pos__()) 10 |
23 乘方
1 2 3 | >>> a = 10 >>> print (a.__pow__( 10 )) 10000000000 |
24.右加(以下前缀为r的都是右;前缀为l的都是左)
1 | print (a.__radd__(b)) |
25.右或
1 | print (a.__repr__()) |
26.右除以左,返回商和余数
1 | print (a.__repr__()) |
27.转换为解释器可读取的形式
1 | print (a.__repr__()) |
28.转换为字符串
1 2 3 | >>> a = 10 >>> print (a.__pow__( 10 )) 10000000000 |
29.求差
1 2 3 | >>>num= 10 >>>num2= 20 print(num.__sub__(num2)) |
2、long型
具有的功能:
1class
long
(
object
):
同int型
3.float型
1.返回分子分母数构成的元祖
1 | as_integer_ratio() |
2.将十六进制数转换为浮点数
1 | print ( float .fromhex( ‘0x1.ffffp10‘ )) |
3.将浮点数转换为十六进制数
1 | print ( 2047.984375 . hex ()) |
4.判断浮点数是不是整数
123f1
=
10.2
f2
=
10.0
(f1.is_integer())
31print
(f2.is_integer())
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
二.字符串
具有的功能:
1 | class str ( basestring ): |
1.首字母变大写
1 2 3 4 5 | def capitalize( self ): 例: >>> name = ‘yaoyao‘ >>> print (name.capitalize()) Yaoyao |
2.内容居中
1 2 3 4 5 6 | def center( self , width, fillchar = None ): """ 内容居中,width:总长度;fillchar:空白处填充内容,默认无 """ 例: >>> name = ‘liuyao‘ >>> print (name.center( 20 , ‘*‘ )) * * * * * * * liuyao * * * * * * * |
3.查询个数
1234567count(
self
, sub, start
=
None
, end
=
None
)子序列个数 sub:要查询的子序列 start:开始位置 end:结束位置
例:
>>> cou
=
‘asdfghjasdfgjqweryuzxcvbnm‘
>>>
(cou.count(
‘as‘
))
2
>>>
(cou.count(
‘as‘
,
1
,
25
))
1
4.编码修改
123456encode(
self
, encoding
=
None
, errors
=
None
)编码,针对
unicode
encoding
=
‘解码的格式‘
例:
>>> name
=
‘刘耀‘
>>>
(name.encode(
‘gbk‘
))
b
‘\xc1\xf5\xd2\xab‘
>>>
5.endswith
1234567endswith(
self
, suffix, start
=
None
, end
=
None
)是否以xxx结尾 suffix:填入结尾的字符串 start
=
在第几个字符开始 end
=
在第几个字符结束
endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回
True
,否则返回
False
。可选参数
"start"
与
"end"
为检索字符串的开始与结束位置。
例:
>>> name
=
‘asdfghjklo‘
>>>
(name.endswith(
‘lo‘
,
0
,
6
))
False
>>>
6.expandtabs()
12345expandtabs() 方法把字符串中的 tab 符号(
‘\t‘
)转为空格,默认的空格数 tabsize 是
8
例:
>>> extab
=
‘one\ttwo‘
>>>
(extab.expandtabs())
one two
7.find
1234567find(
self
, sub, start
=
None
, end
=
None
)寻找子序列位置,如果没找到,返回
-
1
例:
>>> name
=
‘yaotwosiji‘
>>>
(name.find(
‘two‘
,
1
,
8
))
3
>>>
(name.find(
‘two‘
,
1
,
3
))
-
1
8.casefold
12casefold(
self
)大写转小写 注:
3.x
新增方法,
2.x
没有
例:
9.format格式化
123456format
(
*
args,
*
*
kwargs)字符串格式化
例:
>>> name
=
‘liuyao‘
>>> age
=
‘21‘
>>>
(
‘姓名{0},年龄{1}‘
.
format
(name,age))
姓名liuyao,年龄
21
10.index
123456789index(
self
, sub, start
=
None
, end
=
None
)子序列位置,如果没找到,报错
例:
>>> name
=
‘asdfghjklqwertyui‘
>>>
(name.index(
‘fg‘
))
3
>>>
(name.index(
‘fg‘
,
1
,
3
))
Traceback (most recent call last):
File
"<stdin>"
, line
1
,
in
<module>
ValueError: substring
not
found
11.isalnum
12345678isalnum(
self
)如果字符串至少有一个字符并且所有字符都是字母或数字则返回
True
,否则返回
False
例:
>>> zifu
=
‘yao1995‘
>>>
(zifu.isalnum())
True
>>> zifutab
=
‘yao 1995‘
>>>
(zifutab.isalnum())
False
12.isalpha
12345isalpha(
self
)如果字符串至少有一个字符并且所有字符都是字母则返回
True
,否则返回
False
例:
>>> zifutab
=
‘yao‘
>>>
(zifutab.isalpha())
True
13.isdigit
12345isdigit(
self
)如果字符串只包含数字则返回
True
否则返回
False
例:
>>> shuzi
=
‘1995‘
>>>
(shuzi.isdigit())
True
14.islower
12345islower(
self
)如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回
True
,否则返回
False
例:
>>> zifu
=
‘Liuyao‘
>>>
(zifu.islower())
False
15.isspace
12345isspace(
self
)如果字符串中只包含空格,则返回
True
,否则返回
False
例:
>>> kongge
=
‘ ‘
>>>
(kongge.isspace())
True
16.istitle
12345istitle(
self
)如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回
True
,否则返回
False
例:
>>> zifu
=
‘Liu Yao‘
>>>
(zifu.istitle())
True
17.isupper
12345isupper(
self
)如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回
True
,否则返回
False
例:
>>> zifu
=
‘LIU YAO‘
>>>
(zifu.isupper())
True
18.join
123456join(
self
, iterable)返回通过指定字符连接序列中元素后生成的新字符串
例:
>>> lj
=
‘^‘
>>> name
=
(
‘y‘
,
‘a‘
,
‘o‘
)
>>>
(lj.join(name))
y^a^o
19.ljust
12ljust(
self
, width, fillchar
=
None
)返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
例:
20.lower
1234lower(
self
)返回将字符串中所有大写字符转换为小写后生成的字符串
>>> name
=
‘LIUYAO‘
>>>
(name.lower())
liuyao
21.lstrip
1234lstrip(
self
, chars
=
None
)返回截掉字符串左边的空格或指定字符后生成的新字符串
>>> name
=
‘liuyaoliuyaoliuyao‘
>>>
(name.lstrip(
‘liu‘
))
yaoliuyaoliuyao
22.partition
1234partition(
self
, sep)返回一个
3
元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串
>>> who
=
‘wo shi liuyao‘
>>>
(who.partition(
‘shi‘
))
(
‘wo ‘
,
‘shi‘
,
‘ liuyao‘
)
23.replace
123456replace(
self
, old, new, count
=
None
)返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数
max
,则替换不超过
max
次
>>> str1
=
‘ni shi wo shi shei shi‘
>>>
(str1.replace(
‘shi‘
,
‘ta‘
))
ni ta wo ta shei ta
>>>
(str1.replace(
‘shi‘
,
‘ta‘
,
1
))
ni ta wo shi shei shi
24.split
123456split(
self
, sep
=
None
, maxsplit
=
None
)通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
>>> str1
=
‘a1 b2 c3 d4‘
>>>
(str1.split())
[
‘a1‘
,
‘b2‘
,
‘c3‘
,
‘d4‘
]
>>>
(str1.split(
‘ ‘
,
2
))
[
‘a1‘
,
‘b2‘
,
‘c3 d4‘
]
25.splitlines
12345678910111213splitlines(
self
, keepends
=
False
)按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行
>>> str1
=
‘\na1b2 c3 d4‘
>>> str1
=
‘\na1b2\nc3\nd4\n‘
>>>
(str1)
a1b2
c3
d4
>>>
(str1.splitlines())
[‘
‘, ‘
a1b2
‘, ‘
c3
‘, ‘
d4‘]
>>>
(str1.splitlines(
2
))
[
‘\n‘
,
‘a1b2\n‘
,
‘c3\n‘
,
‘d4\n‘
]
26.startswith
123456startswith(
self
, prefix, start
=
None
, end
=
None
)用于检查字符串是否是以指定子字符串开头,如果是则返回
True
,否则返回
False
。如果参数 beg 和 end 指定值,则在指定范围内检查
>>> name
=
‘LIUyao‘
>>>
(name.startswith(
‘LI‘
))
True
>>>
(name.startswith(
‘ya‘
))
False
27.swapcase
1234swapcase(
self
)用于对字符串的大小写字母进行转换
>>> name
=
‘LIUyao‘
>>>
(name.swapcase())
liuYAO
28.translate
1translate(
self
, table, deletechars
=
None
)根据参数table给出的表(包含
256
个字符)转换字符串的字符, 要过滤掉的字符放到
del
参数中,table
-
-
翻译表,翻译表是通过maketrans方法转换而来,deletechars
-
-
字符串中要过滤的字符列表。
29.upper
1234upper(
self
)将字符串中的小写字母转为大写字母
>>> name
=
‘yaoyao‘
>>>
(name.upper())
YAOYAO
30.zfill
123456zfill(
self
, width)返回指定长度的字符串,width
-
-
指定字符串的长度。原字符串右对齐,前面填充
0
。
>>> str1
=
‘a1 b2 c3 d4‘
>>>
(str1.zfill(
10
))
a1 b2 c3 d4
>>>
(str1.zfill(
15
))
0000a1
b2 c3 d4
三.列表
具有以下方法:
1、追加
12345append(
self
, p_object)用于在列表末尾添加新的对象,obj
-
-
添加到列表末尾的对象,该方法无返回值,但是会修改原来的列表。
>>> lie
=
[
1
,
2
,
3
,
4
,
5
]
>>> lie.append(
6
)
>>>
(lie)
[
1
,
2
,
3
,
4
,
5
,
6
]
2、统计
1234count(
self
, value)用于统计某个元素在列表中出现的次数,value
-
-
列表中统计的对象,返回元素在列表中出现的次数。
>>> lie
=
[
1
,
2
,
3
,
4
,
5
,
1
,
2
,
3
]
>>>
(lie.count(
2
))
2
3、合并
1 2 3 4 5 6 7 8 | extend( self , iterable)用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),seq - - 元素列表,该方法没有返回值,但会在已存在的列表中添加新的列表内容 >>> list1 [ 1 , 2 , 3 , 4 , 5 ] >>> list2 [ ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ , ‘f‘ ] >>> list1.extend(list2) >>> list1 [ 1 , 2 , 3 , 4 , 5 , ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ , ‘f‘ ] |
4、索引
12345index(
self
, value, start
=
None
, stop
=
None
)用于从列表中找出某个值第一个匹配项的索引位置,value
-
-
查找的对象,该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
>>> list1
[
1
,
2
,
3
,
4
,
5
,
‘a‘
,
‘b‘
,
‘c‘
,
‘d‘
,
‘f‘
]
>>>
(list1.index(
‘a‘
))
5
5、指定插入
1 2 3 4 5 6 | insert( self , index, p_object)用于将指定对象插入列表,index - - 对象obj需要插入的索引位置,obj - - 要插入列表中的对象,该方法没有返回值,但会在列表指定位置插 >>> list1 [ 1 , 2 , 3 , 4 , 5 , ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ ] >>> list1.insert( 2 , ‘6‘ ) >>> list1 [ 1 , 2 , ‘6‘ , 3 , 4 , 5 , ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ ] |
6、删除最后一个元素
1 2 3 4 5 | pop( self , index = None )用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,index - - 可选参数,要移除列表元素的对象,该方法返回从列表中移除的元素对象。 >>> list1.pop() ‘f‘ >>> list1 [ 1 , 2 , 3 , 4 , 5 , ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ ] |
7、指定删除
123456remove(
self
, value)用于移除列表中某个值的第一个匹配项,value
-
-
列表中要移除的对象,该方法没有返回值但是会移除两种中的某个值的第一个匹配项。
>>> list1
[
1
,
2
,
‘6‘
,
3
,
4
,
5
,
‘a‘
,
‘b‘
,
‘c‘
,
‘d‘
]
>>> list1.remove(
5
)
>>> list1
[
1
,
2
,
‘6‘
,
3
,
4
,
‘a‘
,
‘b‘
,
‘c‘
,
‘d‘
]
8、反向存放
123456reverse(
self
)用于反向列表中元素,该方法没有返回值,但是会对列表的元素进行反向排序。
>>> list1
[
1
,
2
,
‘6‘
,
3
,
4
,
‘a‘
,
‘b‘
,
‘c‘
,
‘d‘
]
>>> list1.reverse()
>>> list1
[
‘d‘
,
‘c‘
,
‘b‘
,
‘a‘
,
4
,
3
,
‘6‘
,
2
,
1
]
9、排序
1 2 3 4 5 | sort( self , cmp = None , key = None , reverse = False )用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数,该方法没有返回值,但是会对列表的对象进行排序。 >>> list1 = [ 1 , 2 , 3 , 4 , 5 , 7 , 8 , 6 , 5 ] >>> list1.sort() >>> list1 [ 1 , 2 , 3 , 4 , 5 , 5 , 6 , 7 , 8 ] |
10、反序
1sorted
内建函数:对序列进行反序,并返回一个列表
四.元祖
元组的意义:
元组可以在映射中当作键使用;
元组作为很多内建函数和方法的返回值存在。
元组的元素是不能被修改,但元素的元素能可以被被修改的
具有以下方法:
1.统计
12345>>> boy
=
(
‘kelin‘
,
‘yaoyao‘
,
‘liuyao‘
,
‘shabi‘
)
>>>
type
(boy)
<
class
‘tuple‘
>
>>> boy.count(
‘yaoyao‘
)
1
2.索引
12>>> boy.index(
‘liuyao‘
)
2
五.字典
当数据量达到上百万时,循环字典就不适合用dict.items(),因为首先会把一对对key和value转化为列表,然后在循环遍历输出,会增加内存使用。建议使用如下:
1234567>>> a
=
{
1
:
‘a‘
,
2
:
‘b‘
}
>>>
for
k
in
aa:
(k,aa[k])
(
1
,
‘a‘
)
(
2
,
‘b‘
)
>>>
for
k
in
aa.keys():
(k,aa[k])
(
1
,
‘a‘
)
(
2
,
‘b‘
)
具有以下方法:
1、删除字典内所有元素
1234567clear(
self
)用于删除字典内所有元素,该函数没有任何返回值。
>>> dic
=
{
‘k1‘
:
‘v1‘
,
‘k2‘
:
‘v2‘
}
>>> dic
{
‘k2‘
:
‘v2‘
,
‘k1‘
:
‘v1‘
}
>>> dic.clear()
>>> dic
{}
2、浅复制
12345copy(
self
)返回一个字典的浅复制。
>>> dic
=
{
‘k1‘
:
‘v1‘
,
‘k1‘
:
‘v2‘
}
>>> dic.copy()
{
‘k1‘
:
‘v2‘
}
>>>
3、get
12345get
(self, k, d=None)返回指定键的值,如果值不在字典中返回默认值,key -- 字典中要查找的键,
default
-- 如果指定键的值不存在时,返回该默认值值。
>>> dic = {
‘k1‘
:
‘v1‘
,
‘k2‘
:
‘v2‘
}
>>> dic.
get
(
‘k1‘
)
‘v1‘
>>>
4、has_key
1has_key(
self
, k)用于判断键是否存在于字典中,如果键在字典
dict
里返回true,否则返回false,k
-
-
要在字典中查找的键。注:
3.x
已删除该函数
5、items
1234items(
self
)以列表返回可遍历的(键, 值) 元组数组。
>>> dic
=
{
‘name‘
:
‘yaoyao‘
,
‘age‘
:
‘21‘
,
‘job‘
:
‘IT‘
}
>>> dic.items()
dict_items([(
‘age‘
,
‘21‘
), (
‘name‘
,
‘yaoyao‘
), (
‘job‘
,
‘IT‘
)])
6、iteritems
1iteritems(
self
)项可迭代。注:
3.x
已删除该函数
7、iterkeys
1iterkeys(
self
)key可迭代。注:
3.x
已删除该函数
8、itervalues
1itervalues(
self
)value可迭代。注:
3.x
已删除该函数
9、keys
1234keys(
self
)以列表返回一个字典所有的键。
>>> dic
=
{
‘name‘
:
‘yaoyao‘
,
‘age‘
:
‘21‘
,
‘job‘
:
‘IT‘
}
>>> dic.keys()
dict_keys([
‘age‘
,
‘name‘
,
‘job‘
])
10、删除键
123456pop(self, k, d=None)获取并在字典中移除,k -- 要在字典中查找的键。
>>> dic={
‘name‘
:
‘yaoyao‘
,
‘age‘
:
‘21‘
,
‘job‘
:
‘IT‘
}
>>> dic.pop(
‘job‘
)
‘IT‘
>>> dic
{
‘age‘
:
‘21‘
,
‘name‘
:
‘yaoyao‘
}
11、popitem
1 2 3 4 5 6 | popitem( self )获取并在字典中移除 >>> dic = { ‘name‘ : ‘yaoyao‘ , ‘age‘ : ‘21‘ , ‘job‘ : ‘IT‘ } >>> dic.popitem() ( ‘age‘ , ‘21‘ ) >>> dic { ‘name‘ : ‘yaoyao‘ , ‘job‘ : ‘IT‘ } |
12、setdefault
12345setdefault(
self
, k, d
=
None
)如果key不存在,则创建,如果存在,则返回已存在的值且不修改
>>> dic
=
{
‘name‘
:
‘yaoyao‘
,
‘age‘
:
‘21‘
,
‘job‘
:
‘IT‘
}
>>> dic.setdefault(
‘sex‘
)
>>> dic
{
‘sex‘
:
None
,
‘age‘
:
‘21‘
,
‘name‘
:
‘yaoyao‘
,
‘job‘
:
‘IT‘
}
13、更新
1 2 3 4 5 6 | update( self , E = None , * * F)更新 >>> dic = { ‘name‘ : ‘yaoyao‘ , ‘age‘ : ‘21‘ , ‘job‘ : ‘IT‘ } >>> dic_1 = { ‘sex‘ : ‘man‘ } >>> dic.update(dic_1) >>> dic { ‘sex‘ : ‘man‘ , ‘age‘ : ‘21‘ , ‘name‘ : ‘yaoyao‘ , ‘job‘ : ‘IT‘ } |
14、values
1234values(
self
)以列表返回字典中的所有值。
>>> dic
=
{
‘name‘
:
‘yaoyao‘
,
‘age‘
:
‘21‘
,
‘job‘
:
‘IT‘
}
>>> dic.values()
dict_values([
‘21‘
,
‘yaoyao‘
,
‘IT‘
])
15、viewitems
1viewitems(
self
)所有项,只是将内容保存至view对象中。注:
3.x
已删除该函数
标签:
原文地址:http://www.cnblogs.com/liu-yao/p/5145876.html