python基本数据类型
1.整型
1.1 int
1.2 bit_lenght
# 当前数字的二进制位数,至少用n位表示
r = age.bit_length()
>>> a = 8
>>> a.bit_length()
4
2.字符串
1、capitalize()#第一个字母大写
>>> name = 'my name is zhuo'
>>> name.capitalize()
'My name is zhuo'
2、center()
>>> print(name.center(50,'-'))
-----------------my name is zhuo-----------------
3、format format_map,expandtabs,find,index,count,
a = 'abcabc'
print(a.count('a')) #默认在整个字符串中查找'a'出现的次数
#>>>2
print(a.count('a',2,6))#限定第2到第5个位置中查找
#>>>1
print(a.find('bca'))#find()、index() 找子字符串的索引,没有没找到,find返回-1,index会直接报错,一般用find
#>>>1
print(a.find('ab',2,6))##限定第2到第5个位置中查找'ab'第一次出现的索引
print(a.index('bca')) #format(将字符串中的占位符替换为指定的值,{}是占位符)
b = 'my name is {zhuo} do {you} know'
print(b.format(zhuo = 'sen',you = 'he'))
#>>>my name is sen do he know
4、isalnum()#判断是否纯数字或者字母,或者都有
>>> 'name123'.isalnum()
True
>>> 'name..'.isalnum()
False
5、isalpha()#判断纯字母
>>> 'name123'.isalpha()
False
>>> 'name'.isalpha()
True
6、isdigit#判断是否整数
>>> 'name123'.isdigit()
False
>>> ''.isdigit()
True
>>> '123.3'.isdigit()
False
7、isidentifier()#判断是不是一个合法的标识符
>>> 'name'.isidentifier()
True
>>> '2name'.isidentifier()
False
8、isnumeric()#判断是不是整数
>>> ''.isnumeric()
True
>>> '12.3'.isnumeric()
False
9、isspace#是否纯空格
>>> ' '.isspace()
True
>>> ' '.isspace()
True
>>> 's '.isspace()
False
10、istitle#是否title(每个单词首字母大写)
>>> 'My Name Is Zhuo'.istitle()
True
>>> 'my Name Is Zhuo'.istitle()
False
11、isprintable()#是否可以打印(字符串都可以打印,tty drive文件不可大打印)
12、isupper()#是否大写
13、print('+'.join(['','','']))#拼接
>>> print('+'.join(['','','','']))
1+2+3+4
>>> print('-'.join(['','','','']))
1-2-3-4
>>> print('*'.join(['','','','']))
1*2*3*4
14、print(name.ljust(50,'*'))#保证有50个字符,少的用*在后面补上
15、print(name.rjust(50,'*'))#保证有50个字符,少的用*在前面补上
16、lower()#转换为小写
17、upper()#转换为大写
18、print('\nzhuo'.lstrip())#去掉左边的空格和回车
19、print('\nzhuo'.rstrip())#去掉右边的空格和回车
20、print('\nzhuo'.strip())#去掉两边的空格和回车
21、replace()#替换
22、rfind('x')#找到最右边的x的角标(index)
23、print('my name is zhuo'.split())#默认带空格的换成列表,有把列表换成字符串的方法吗?
>>>['my', 'name', 'is', 'zhuo']
24、swapcase()#把大写变成小写,小写写成大写
25、title()#变成标题(每个首字母变成大写)
>>> 'my name is zhuo'.title()
'My Name Is Zhuo'
26、startswith('a')#判断是否以 a 开头
27、endswith('b')#判断是否以b结尾
28、'name'.split('a')#在a处左右分割,变成两个列表。['n','ame']
3.列表
names = ["zhangsan","lisi","wangwu","zhaoliu","laoqi"]
print(names)
#print(names[-3:-1])#切片
#print(names[-2:])
1,append、insert添加元素
names.append('zhoushi')#插入列表到最后
names.insert(0,'')#插入到指定位置
2,remove、del、pop删除元素
names.remove('')#删除元素
del names[0]#删除元素
names.pop()#默认删除最后一个元素
names.pop(1)#删除指定位置的元素
3,修改元素
names[0] = "" #修改元素
print(names.count('lisi'))#计算列表中某个元素的数量
print(names.index('lisi'))#打印'list'的位角标
4,反转列表 reverse (将原列表元素反转,并不是新生成一个反列表)
print(names)
names.reverse()
print("rever",names)
5,copy(浅copy,不独立文件)
names = ["zhangsan","lisi",['zhuo','sen'],"wangwu","zhaoliu","laoqi"]
names2 = names.copy()#把names复制给names2,两个列表的第一层是独立的,其中的列表元素是共用的内存地址
names[2][0] = ['z']#names和names2都会变化
names[1] = 'LISI'#只有names会变 补充:三种浅copy的方法
import copy
person = ['name',['a',100]]
p1 = copy.copy(person)
p2 = person[:]
p3 = list(person)
6,深copy:deepcopy(不要瞎用)
import copy
names = ["zhangsan","lisi",['zhuo','sen'],"wangwu","zhaoliu","laoqi"]
names2 = copy.deepcopy(names)#深copy,两个完全独立的列表
names[1] = 'LISI'
names[2][0] = 'z'
print(names)
print(names2) 3.2切片
>>> a = [1,2,3,4,5,6,7,8,9]
>>> a[0:9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[-8:-1]
[2, 3, 4, 5, 6, 7, 8]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
4.元组
5.字典
info = {
'stu1101':'zhuo',
'stu1102': 'sen',
'stu1103': 'bin',
}
info['stu1101'] = '卓'#修改
info['stu1104'] = 'wu'#新增
info.pop('stu1104')#标准删除姿势
del info['stu1101']#换个姿势删除
print(info.get('stu1103'))#查询、获取元素
print('stu1103' in info)#判断info中是否有‘stu1103’
print(info.values())#打印所有的values
b = {'ha':'hei',}
info.update(b)#把b的字典元素更新到info,有重复的key直接覆盖,没有的话就新增
dict.fromkeys([6,7,8],'test')
>>> dict.fromkeys([6,7,8],'test')#创建一个初始化字典
{6: 'test', 7: 'test', 8: 'test'}