数据类型:数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示,人们对数据进行分类,便于电脑识别

种类 6种 数字,布尔,字符串,列表,字典,集合

数字Int

数字主要用于运算

int相关方法 查询十进制转化成二进制占用的最小位数

bit_length()

print(i.bit_length()) # 查询十进制转化成二进制占用的最小位数

 布尔值

True,False。就是反应条件的正确与否。

真   1   True。

假   0   False。    

字符串

1,字符串的索引与切片

索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚

a = 'ABCDEFGHIJK'
print(a[0:3])
print(a[2:5])
print(a[0:]) #默认到最后
print(a[0:-1]) # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长

字符串的14种常用方法:

与元素相关的可以切片find,startswith,find,count找元素找到的是该字符在原字符串的索引

切割和替换可以限定次数

大小写相关3种:
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)

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
a4 = "dkfjdkfasf54"
ret6 = a4.find("dk",2,6)#切片返回的是元素在原字符串的索引
print(ret6)

print(a[2:-3].find('4'))返回的是新字符串中的元素的索引

# 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)
a='124347456'
print(a[:-3].split('4'))
 
#format的三种玩法 格式化输出
res='{} {} {}'.format('egon',18,'male')
res='{1} {0} {1}'.format('egon',18,'male')#打印res18 egon 18
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))
print(name[].replace('alex','SB',1))
#####is系列
name='jinxin123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成

 元组

元组只能用于查看,切片,儿子不能改顺子可以改

tup1=(1,2,[1,2,3,4])
tup1[2].append(5)
print(tup1)
#  元组:只读列表,只允许查询,不允许增删改
# tu1 = ('alex', 100, True, [1, 2, 3], {'name':'太白'},(22, 33))
# 索引,切片,切片+步长
# print(tu1[0])
# print(tu1[:3])
# # for 循环
# for i in tu1:
# print(i)
# index,len,count
# 应用场景: 一些非常重要的数据,不允许所有人修改的,放在元组中。
# tu1[3].append(666)
# tu1.append(666) 错的
# 元组 儿子不能改,孙子可能可以改。
# print(tu1)

 

列表

增 append,insert(,索引,元素), extend

l=[1,2,3]
l.insert(0,5)
print(l)
# 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)

删四种 pop(index)有返回值 del 按切片删 , remove 按元素删, clear清空

# l1 = li.pop(1) #按照位置去删除,有返回值
# print(l1)

# del li[1:3] #按照位置去删除,也可切片删除没有返回值。
# print(li)

# li.remove('a') #按照元素去删除
# print(li)

# li.clear() #清空列表

# 按照索引改
# l1[2] = '男神'
# l1[-1] = '泰迪'
# 按照切片(加步长)
    # 按照切片
# l1[:2] = 'sbsbsb'
# l1[:4] = [11,22,33,44,55,66,77]
    #按照切片 + 步长  一一对应
# l1[:3:2] = 'af'
# print(l1)

#
# 索引,切片,切片+步长
# for 循环
# for i in l1:
#     print(i)

其他 len count index sort  reverse 5种

# print(len(l1))  # 查询总个数
# print(l1.count('alex')) # 某个元素出现的次数
# index 通过元素找索引
# print(l1.index('taibai'))
# l2 = [5, 6, 7, 1, 4, 3, 2, 9]
# sort
# l2.sort()  # 从小到大
# print(l2)

# l2.sort(reverse=True)  # 从大到小
# print(l2)

# l2.reverse()  # 反转
# print(l2)

字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据

字典的增 2种 dic[key]=' ',dic.setdefault(key,v)

# dic['li'] = ["a","b","c"]
# print(dic)
# setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
# dic.setdefault('k','v')
# print(dic)  # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
# dic.setdefault('k','v1')  # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
# print(dic)

dic={'name':1,"age":2}
dic.setdefault('a')
print(dic)

字典的删

# dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
# print(dic_pop)
# del dic["name"]  # 没有返回值。
# print(dic)

# dic_pop1 = dic.popitem()  # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
# print(dic_pop1)  # ('name','jin')

# dic_clear = dic.clear()  # 清空字典
# print(dic,dic_clear)  # {} None

字典的改dic[key]=v,或update

#
# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic)  # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
# print(dic2)

查dic['key'] dic.get()

# value1 = dic["name"]  # 没有会报错
# print(value1)
#
# value2 = dic.get("djffdsafg","默认返回值")  # 没有可以返回设定的返回值
# print(value2)

字典的其他操作 及循环

# dic = {"name":"jin","age":18,"sex":"male"}
# for key in dic:
#     print(key)
# for item in dic.items():
#     print(item)
# for key,value in dic.items():
#     print(key,value) 
# for i in dic.values():
# print(i)
 

 

posted on 2018-08-25 17:44  代码=猫  阅读(103)  评论(0)    收藏  举报