python 基础数据类型
int、str、list、tuple、dict
1、int
a. bit_length 返回表示该数字的时占用的最少位数
>>> a = 100
>>> print(a.bit_length())
7
>>> bin(a)
'0b1100100'
b. __abs__ 返回绝对值
>>> a = -10
>>> a.__abs__()
10
>>> abs(-10)
10
c. __add__ 加
>>> a = 10
>>> a.__add__(20)
30
>>>
>>> 10 + 20
30
d. __divmod__ 打印商和余数的元组
>>> a = 10
>>> a.__divmod__(3)
(3, 1)
>>> print(dir(a))
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delatt
r__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '_
_floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__g
t__', '__hash__', '__index__', '__init__', '__int__', '__invert__', '__le__', '_
_lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__o
r__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__',
'__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmu
l__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__
', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__'
, '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conj
ugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
...
2、str
>>> name
'eric'
>>>
>>>
>>> print(dir(name))
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '_
_eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs
__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__'
, '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__r
epr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subcl
asshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', '
expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isd
ecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'issp
ace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'pa
rtition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip
', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate
', 'upper', 'zfill']
>>>
a. capitalize 首字母大写
>>> name
'eric'
>>>
>>> name.capitalize()
'Eric'
b. center 居中
name = 'eric'
print( 8*'*')
print('********')
result = name.center(20)
print(result)
result = name.center(20,'*')
print(result)
********
********
eric
********eric********
c. count 子序列个数
>>> name = 'asdfsvasdfbhashkjpaposdfmkbm.nmn' >>> result = name.count('df') >>> print(result) 3 #前10个里找df出现的次数 >>> result = name.count('df',0,10) >>> print(result) 2
d. endwith 是否以xxx结尾
>>> name = 'alex' >>> name.endswith('e') False
# 前3个字母是否以e结尾 >>> name.endswith('e',0,3) True
e. expandtabs 将tab转换成空格,默认一个tab转换成8个空格
>>> name = 'a\tlex' >>> name.expandtabs() 'a lex'
f. find 寻找子序列位置,如果没找到,返回 -1
>>> name = 'alex' >>> name.find('e') 2 # [) 从0位置开始到2位置结束,2位置是不包含的,则没有找到,返回-1 >>> name.find('e',0,2) -1
g. index 子序列位置,如果没找到,报错
>>> name 'alex' >>> name.index('e') 2 >>> name.index('e',0,2) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found >>> >>> name.index('e',0,3) 2
h. format 字符串格式化,动态参数
>>> name = 'alex {0} as {1}' >>> name.format('nb','eric') 'alex nb as eric' >>> >>> name = 'alex {name} as {id}' >>> name.format(name='nb',id='eric') 'alex nb as eric'
i. isalnum 是否是字母和数字
>>> name = 'saup' >>> name.isalnum() True >>> >>> name = 'saup/' >>> name.isalnum() False
j. isalpha 是否是字母
>>> name = 'saup' >>> name.isalpha() True >>> name = 'saup123' >>> name.isalpha() False
k. isdigit 是否是数字
>>> num_id = 123 >>> num_id.isalnum() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'int' object has no attribute 'isalnum' >>> >>> num_id = '123' >>> num_id.isalnum() True
l. islower 是否小写
>>> name = 'saup' >>> name.islower() True >>> >>> name = 'sauP' >>> name.islower() False
m. join 连接
>>> li = ['s','a','u','p'] >>> "".join(li) 'saup' >>> >>> "_".join(li) 's_a_u_p'
n. lower 全部变小写
>>> name = 'SauP' >>> >>> name.lower() 'saup'
o. partition 分割,前、中、后三部分
>>> name = 'saupisnb' >>> name.partition('is') ('saup', 'is', 'nb')
p. replace 替换
>>> name = 'saupisnb' >>> name.replace('s','z') 'zaupiznb' >>> >>> name.replace('s','z',1) 'zaupisnb' >>> name.replace('s','z',2) 'zaupiznb' >>>
q. split 分割,maxsplit最多分割几次;splitlines 根据换行符分割
>>> name = """ak ... bb ... cc""" >>> >>> name.split('\n') ['ak', 'bb', 'cc'] >>> >>> name.splitlines() ['ak', 'bb', 'cc']
r. startwith 是否以xxx起始
>>> name = 'saup' >>> name.startswith('sa') True
s. strip 移除两段空白,字符串头尾的空白
>>> name = ' saup is nb! ' >>> name.strip() 'saup is nb!'
t. swapcase 大写变小写,小写变大写
>>> name = 'SauP' >>> >>> name.swapcase() 'sAUp'
u. title 首字符大写
>>> name = 'saup' >>> name.title() 'Saup'
v.upper 大写
>>> name = 'saup' >>> >>> name.upper() 'SAUP'
w.zfill 返回指定长度的字符串,原字符串右对齐,前面填充0
>>> name = 'saup' >>> >>> name.zfill(10) '000000saup'
3、list
>>> print(dir(li)) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__' , '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__' , '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__' , '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_e x__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__s izeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'ex tend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
a. append
>>> li = [11,22,33,'saup'] >>> li.append('test') >>> print(li) [11, 22, 33, 'saup', 'test']
b. count
>>> li [11, 22, 33, 'saup', 'test'] >>> >>> li.count(11) 1
c. index
>>> li.index(33)
2
d. insert
>>> li [11, 22, 33, 'saup', 'test'] >>> >>> li.insert(3,44) >>> li [11, 22, 33, 44, 'saup', 'test'] >>>
e. pop
>>> li [11, 22, 33, 44, 'saup', 'test'] >>> li.pop(4) 'saup' >>> li [11, 22, 33, 44, 'test'] >>>
f. remove
>>> li [11, 22, 33, 44, 'test'] >>> >>> li.remove('test') >>> li [11, 22, 33, 44]
g.reverse
>>> li [11, 22, 33, 44] >>> li.reverse() >>> li [44, 33, 22, 11]
h.sort
>>> li [44, 33, 22, 11] >>> >>> li.sort <built-in method sort of list object at 0x02564328> >>> >>> li.sort() >>> li [11, 22, 33, 44]
i. clear
>>> li [11, 22, 33, 44] >>> li.clear() >>> li []
j.copy
>>> li = [11,22,33,'saup'] >>> >>> li.copy() [11, 22, 33, 'saup'] >>> >>> >>> li_two=li.copy() >>> li_two [11, 22, 33, 'saup'] >>>
4、tuple
>>> tu = (11,22,33,'saup') >>> type(tu) <class 'tuple'>
>>> print(dir(tu)) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '_ _eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs __', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__' , '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__ rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'i ndex'] >>>
a.count
>>> tu (11, 22, 33, 'saup') >>> >>> tu.count(11) 1
b. index
>>> tu (11, 22, 33, 'saup') >>> tu.index(33) 2
5、dict 循环时,默认循环key
>>> dic = {'k1':'v1','k2':'v2'}
>>> type(dic)
<class 'dict'>
>>> print(dir(dic))
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__'
, '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__',
'__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '_
_new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__'
, '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get
', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
a. clear
>>> dic {'k1': 'v1', 'k2': 'v2'} >>> >>> dic.clear() >>> dic {} >>>
b. copy
>>> dic = {'k1':'v1','k2':'v2'}
>>> dic_two=dic.copy()
>>> dic_two
{'k1': 'v1', 'k2': 'v2'}
c. fromkeys 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
{'k1': 'v1', 'k2': 'v2'}
>>>
>>> seq = ('name','age','sex')
>>> dic.fromkeys(seq,10)
{'age': 10, 'sex': 10, 'name': 10}
d. get key不存在时,默认值为None
>>> dic {'k1': 'v1', 'k2': 'v2'} >>> dic.get('k1') 'v1' >>> dic.get('k2') 'v2' >>> dic.get('k3') None >>> dic['k1'] 'v1' >>> dic['k2'] 'v2' >>> dic['k3'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'k3'
e. items
dic = {'k1':'v1','k2':'v2'}
print(dic.keys())
print(dic.values())
print(dic.items())
for k in dic.keys():
print(k)
for v in dic.values():
print(v)
for k,v in dic.items():
print(k,v)
### 上面是代码,下面是结果
dict_keys(['k1', 'k2'])
dict_values(['v1', 'v2'])
dict_items([('k1', 'v1'), ('k2', 'v2')])
k1
k2
v1
v2
k1 v1
k2 v2
f. keys
>>> dic {'k1': 'v1', 'k2': 'v2'} >>> >>> dic.keys() dict_keys(['k1', 'k2'])
g. pop 删除指定
>>> dic = {'k1':'v1','k2':'v2'}
>>>
>>> dic.pop('k2')
'v2'
>>> dic
{'k1': 'v1'}
h. popitem 随机删除,因为dict无序的
>>> dic = {'k1':'v1','k2':'v2'}
>>>
>>> dic.popitem()
('k1', 'v1')
>>> dic
{'k2': 'v2'}
i. setdefault
>>> dic = {'k1':'v1','k2':'v2'}
>>>
>>> dic.setdefault('k1','good')
'v1'
>>> dic
{'k1': 'v1', 'k2': 'v2'}
>>> dic.setdefault('k3','good')
'good'
>>>
>>> dic
{'k3': 'good', 'k1': 'v1', 'k2': 'v2'}
j. update
>>> dic = {'k1':'v1','k2':'v2'}
>>>
>>> dic_two = {'k1':'vv1','k3':'v3'}
>>>
>>> dic.update(dic_two)
>>> dic
{'k3': 'v3', 'k1': 'vv1', 'k2': 'v2'}
>>>
>>> dic.update({'k10':'v10'})
>>> dic
{'k3': 'v3', 'k1': 'vv1', 'k10': 'v10', 'k2': 'v2'}
k. values
>>> dic = {'k1':'v1','k2':'v2'}
>>>
>>> dic.values()
dict_values(['v1', 'v2'])

浙公网安备 33010602011771号