python 基础二 (基础数据类型)
一、基础数据类型
- int
表现类型:' 2,3,。。。' 主要用于计算,运算,
#bit_lenght() 当十进制用二进制表示时,最少使用的位 a = 12 data = a.bit_length() print(data) #return 4
2.str
‘hello’,‘NIHAO’,‘哦’...少量的数据用于存储
2.1、字符串的索引与切片
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推
a = 'qweerttyui' print(a[0]) print(a[1]) print(a[2]) print(a[3]) print(a[4]) print(a[5])
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾尾)
a = 'ABCDEFGHIJK' print(a[0:3]) print(a[2:5]) print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长 print(a[5:0:-2]) #反向加步长
2.2、字符串的常用方法
#captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='egon say hi' print(msg.title()) #每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret2 = a1.center(20,"*") print(ret2) #数字符串中的元素出现的个数。 # ret3 = a1.count("a",0,4) # 可切片 # print(ret3) a2 = "hqw " # 前面的补全 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。 ret4 = a2.expandtabs() print(ret4) a4 = "dkfjdkfasf54" #startswith 判断是否以...开头 #endswith 判断是否以...结尾 # ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚 # print(ret4) # 返回的是布尔值 # ret5 = a4.startswith("kfj",1,4) # print(ret5) #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6) # print(ret61) # 返回的找到的元素的索引,找不到报错。 #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。 # ret9 = 'title,Tilte,atre,'.split('t') # print(ret9) # ret91 = 'title,Tilte,atre,'.rsplit('t',1) # print(ret91) #format的三种玩法 格式化输出 res='{} {} {}'.format('egon',18,'male') res='{1} {0} {1}'.format('egon',18,'male') res='{name} {age} {sex}'.format(sex='male',name='egon',age=18) #strip name='*egon**' print(name.strip('*')) print(name.lstrip('*')) print(name.rstrip('*')) #replace name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1)) #####is系列 name='jinxin123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成
3.bool
真 1 True
假 0 Flase
----插语: 我喜欢35,我一直以为是pink呢,原来是紫红。。
#print输出,改变背景颜色 格式: 33[显示方式;前景色;背景色m 说明: 前景色 背景色 颜色
#增 li = [1,'a','b',2,3,'a'] # li.insert(0,55) #按照索引去增加 # print(li) # # li.append('aaa') #增加到最后 # li.append([1,2,3]) #增加到最后 # print(li) # # li.extend(['q,a,w']) #迭代的去增 # li.extend(['q,a,w','aaa']) # li.extend('a') # li.extend('abc') # li.extend('a,b,c') # print(li) #删 # l1 = li.pop(1) #按照位置去删除,有返回值 # print(l1) # del li[1:3] #按照位置去删除,也可切片删除没有返回值。 # print(li) # li.remove('a') #按照元素去删除 # print(li) # li.clear() #清空列表 #改 # li = [1,'a','b',2,3,'a'] # li[1] = 'dfasdfas' # print(li) # li[1:3] = ['a','b'] # print(li) #查 切片去查,或者循环去查
--------------------------------------- 30 40 黑色 31 41 红色 32 42 绿色 33 43 黄色 34 44 蓝色 35 45 紫红色 36 46 青蓝色 37 47 白色 显示方式 意义 ------------------------- 0 终端默认设置 1 高亮显示 4 使用下划线 5 闪烁 7 反白显示 8 不可见 例子: 033[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色--> 033[0m <!--采用终端默认设置,即取消颜色设置-->
二、列表
增删改查
#增 li = [1,'a','b',2,3,'a'] # li.insert(0,55) #按照索引去增加 # print(li) # # li.append('aaa') #增加到最后 # li.append([1,2,3]) #增加到最后 # print(li) # # li.extend(['q,a,w']) #迭代的去增 # li.extend(['q,a,w','aaa']) # li.extend('a') # li.extend('abc') # li.extend('a,b,c') # print(li) #删 # l1 = li.pop(1) #按照位置去删除,有返回值 # print(l1) # del li[1:3] #按照位置去删除,也可切片删除没有返回值。 # print(li) # li.remove('a') #按照元素去删除 # print(li) # li.clear() #清空列表 # 改 # li = [1,'a','b',2,3,'a'] # li[1] = 'dfasdfas' # print(li) # li[1:3] = ['a','b'] # print(li) #查 切片去查,或者循环去查。
其他操作
#通过元素找索引 # print(list.index(2)) #sort reverse # li = [1,2,3,4,7,9,6,5] # li.sort() # print(li) # li.sort(reverse=True) # print(li) #reverse 反向排列 #l1 = [1, 2, 'alex', 'wusir',['oldboy', 'ritian', 99], 'taibai'] #1 #第一种 # l1[2] = 'ALEX' # print(l1) # #第二种 # l1.pop(2) # l1.insert(2,'alex'.upper()) # print(l1) # l1[2] = l1[2].upper() #2 # l1[4].append('女神') # print(l1) #3 # l1[4][1] = l1[4][1].capitalize() # print(l1) #4 # l1[-2][-1] = str(l1[-2][-1] +1) # print(l1) #字符串拼接 # l1[-2][-1] = str(l1[-2][-1]) + '1' # print(l1)
三、元组
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")
四、字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
增删改查
#字典3.6版本之前,字典是无序的,暂定之后是有序的 dic = {'name':'taibai', 'age':21, 'habby':'gril'} #增 dic['name'] = 'ritian' print(dic) dic.setdefault() #有则不变,无则添加 dic.setdefault('high',180) dic.setdefault('name','ritian') print(dic) #删 print(dic.pop('name')) #返回对应的值 print(dic) print(dic.pop('name1',None)) dic.clear() #清空 print(dic) del dic print(dic) del dic['age'] print(dic) print(dic.popitem()) #3.6之前,随机删除,之后不确定 print(dic) #改 dic['name'] = '老男孩' dic2 = {'name':'alex','weight':75} dic2.update(dic) #将dic的建值对覆盖添加到dic2中,dic不变 print(dic) print(dic2) #查 print(dic['name']) print(dic.get('name','sb代')) #如果没有返回None,也可以设置返回值 #keys() values() items() print(dic.keys()) for i in dic.keys(): print(i) print(dic.values()) for i in dic.values(): print(i) print(dic.items()) for i in dic.items(): print(i) #分别赋值 a,b = 1,2 a,b,c = ['yoyo', 'xiaolou', 'rita'] #必须元素与变量数量一致 print(a,b,c) a = 1 b = 5 a,b = b,a print(a,b) for k, v in dic.items(): print(k, v) #len print(len(dic))
fromkeys与字典的嵌套使用
#fromkeys dic1 = dic.fromkeys('abc', '张三') dic2 = dic.fromkeys([1, 2, 3], '李四') print(dic2) dic3 = dic.fromkeys('abc', []) dic3['a'].append('老男孩') print(dic3) #字典的嵌套 dic = { 'name_list':['b哥', '张帝', '人帅', 'kitty'], '老男孩':{ 'name':'老男孩', 'age': 46, 'sex': 'ladyboy' }, } #1 dic['name_list']=dic['name_list'].append('骑兵') #2 dic['name_list'][-1] = dic['name_list'][-1].upper() # print(dic) #3 #dic.popitem() dic.setdefault('oldboy',{'name':'oldboy','age': 46, 'sex': 'ladyboy'}) #4 dic['oldboy']['sex'] = dic['oldboy']['sex'].capitalize() dic['老男孩'].setdefault('name','oldboy') print(dic)
五、其他(for,enumerate,range)
for循环:用户按照顺序循环可迭代对象的内容。
msg = '老男孩python是全国范围内最好的python培训机构' for item in msg: print(item) li = ['alex','银角','女神','egon','太白'] for i in li: print(i) dic = {'name':'太白','age':18,'sex':'man'} for k,v in dic.items(): print(k,v)
enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
li = ['alex','银角','女神','egon','太白'] for i in enumerate(li): print(i) for index,name in enumerate(li,1): print(index,name) for index, name in enumerate(li, 100): # 起始位置默认是0,可更改 print(index, name)
range:指定范围,生成指定数字。
for i in range(1,10): print(i) for i in range(1,10,2): # 步长 print(i) for i in range(10,1,-2): # 反向步长 print(i)
ps:这个知识点知道的人太多了,本来不想写的,最后还是抄了上来,迷之脑袋,基础搞差不多了,多撸撸代码,让这些知识变成自己的,都在努力中
----LDoctor