字符串:
# 字符串类型的一些操作(str)
st1='hello world '
print(st1[0]) # 根据字符串索引来取字符h 找不到直接崩
print(st1[-1]) # 根据索引倒取
st2='123'
print(st1+st2) # 字符串的拼接方法1
print('%s%s%s' % (st2,st1,st1)) #方法2
print(len(st1)) #取长度 字符串里面字符的个数也叫做字符串的长度
print(st1[0:2:]) #切片 根据索引来进行字符串切片的操作 0代表启示索引
# 2代表结束索引 取头不取尾 :代表步长默认为1
print(st1[-1:-6:-1]) #方向步长为1的字符串拼接操作
print('h' in st1) # 成员运算 判断是否'h'在字符串st1里面 是为 True
print('h' not in st1) # 'h'在字符串st1里面 判断为 False
for x in st1: #遍历 循环取值 把st1里面的字符循环取出赋值给X
print(x)
print(st1.index('o',6,10))# '0'取索引的对象 在索引 6,10 里面取 索引
print(st1.strip()) #除去左右两边的空格留白 空格可以替换为各种符号,默认删除空白符(包括'\n', '\r', '\t', ' ')
print(st1.lstrip()) #除去左边留白
print(st1.rstrip()) # 除去右边留白
print(st1.count('0')) #计算出对象在字符串里面的个数
print(st1.upper()) #把字符串转化成全大写
print(st1.lower()) #把字符串转化成全小写
print(st1.capitalize()) #字符串首字母大写
print(st1.title()) #每个单词首字母大写
print(st1.swapcase()) #大小写转换
print(st1.startswith('H')) #是否以某字符开头 是打印为Ture 不是打印为 False
print(st1.endswith('o')) # 是否以某字符结尾 是打印为Ture 不是打印为False
print(st1.replace('h','H',)) #替换字符串里面的字符 'h'需要替换的字符串 'H'替换的字符串
# ,后面count 需要替换的次数
s8='name : {},age : {}'
print(s8.format('owen',18)) # #格式化输出值
print('name : {1},age : {1}'.format('owen',18)) #可以通过索引给{}内赋值
print('name:{n},age:{a}'.format(n='kkk',a='18'))#可以通过指定赋值的方法给{}内赋值
print(st1.find('k')) #查找字符串的索引 无返还结果为-1
print(st1.center(20, )) #居中左右留白 总字符串的个数、
print(st1.ljust(20, )) #左对齐 右留白
print(st1.rjust(20, )) #右对齐 左留白
print(st1.expandtabs( )) #= \t规定所占空格数
print(st1.isdigit()) # 判断字符串是否为数字 只能判断正整数 转化成布尔类型
print(st1.isdecimal()) # 判断是否为数字
print(st1.isnumeric()) # 判断是否为数字 可以判断繁体数字 罗马数字 转化成布尔类型
print(st1.isalnum()) # 判断是否为字母数字组成 转化为布尔类型
print(st1.isalpha()) #判断是否为字母组成
print(st1.isidentifier()) # 是否为合法字符串 字符串只能右 字母 数字 下划线 不能数字开头 判断
print(st1.isspace()) #是否空白字符
print(st1.istitle()) #是否为单词首字母开头
列表
#列表类型数据操作(list)列表可以存放多个数据类型 可以重复存放多个数据 属于可变数据类型
ls1=[1,3,2]
print(ls1[0])
print(ls1[-1]) #可以通过索引正取 反取
ls2=['abc',[1,2,3],]
print(ls1+ls2) # 列表可以相加,
print(ls1*2) # 列表可以乘法
print(len(ls1))
print(len(ls2)) #列表的数据的长度
ls3=[3,2,3,4,5,6]
print(ls3[::]) #默认输出正切步长为1
print(ls3[1:3:1]) #根据索引1到索引3 正向切 取头不取尾巴
print(ls3[::-1])# 反向切
print(3 in ls3) # 成员运算判断是否数据在列表里面 在判断为真 不在判断为假
print( 3 not in ls3) #在判断为假 不在判断为真
for x in ls3:
print(x,type(x)) #遍历 ls3中的数据类型赋值给一一赋值给x 列表里面是什么类型 赋值为什么类型
if isinstance(x,int): # 判断 对象x的数据类型 是什么类型
print(x,end='') # x (int,str,list,dict,tuple,set)
print(ls3[0]) #可以根据索引来取出里面的值
ls3.append(0) #没有返回值 只能在原来的列表中 增加数据
print(ls3) #打印原列表
ls3.insert(0,666) #没有返回值 根据索引值来指定位置增加 新的数据类型
print(ls3) #打印原列表
ls3.insert(len(ls3),0)# 没有返回值 在列表的末尾增加 新的数据
print(ls3) # 打印原列表
ls3[0]='aaa' #根据索引指定更改列表里面的数据
print(ls3)
ls3.remove(3) #没有返回值 指定删除列表里面的数据
print(ls3)
ls3.pop() #默认删除列表中最后的数据
ls3.pop(1) #根据索引来删除数据
print(type(ls3.pop(1))) # 返还默认值 删除的是什么数据类型 返还的是什么类型
ls3.clear() #对列表进行清空处理
ls3.sort() #对列表进行默认正向排序 列表里面的数据类型必须为同以数据类型
print(ls3) # 没有返回值
ls3.sort(reverse=True) # 对列表进行反向排序
print(ls3)
ls3.reverse() # 按列表中的存储顺序 形成倒叙
ls3.count(1) #列表中1存在的个数
ls4='123' #整体添加 添加到末尾
ls3.extend(ls4)
print(ls3)
元组
# 元组类型的操作 可以理解为不可变的列表
#值可以为任意类型的值
#可以存放多个值
#可以存放重复的值
#有序存储 索引取值
t1=(1,'adc',['a',1])
t2=('a','c','b')
print(t1[0]) #元组可以通过索引 取值 所以元组是有序排列的
print(t1+t2) #元组之间可以相加
print(len(t1)) #元组的长度
print(t1[0:1:1]) #正向切
print(t1[::-1]) #反向切
print('a' in t1) #成员运算
for x in t1: #遍历循环取值
print(x)
print(t1.count(1))# 1在元组中存在的个数
print(t1.index(['a',1])) #对象的索引值
字典
# 字典类型的操
# 定义为一个存放多个值的容器
# 字典属于双列容器,以key:value 的形式存放 key为不可变类型的数据 value可以为任何的数据类型
dic={}#定义空字典
dic1=dict()# 定义空字典的另一种方式
dic2=({'name':'egon','age':18}) #map映射创建
dic3=dict(name='bob',age=18) # name=变量名 赋值的方式
print(dic3)
dic4={}.fromkeys(['name'],'boo') #对象只能是可迭代的 key只能指定一个
print(dic4)
dic5={'a':1,'b':2} #字典通过Key来取得value 如果key不在字典中 则新增key:value
dic5['c']=123 # 如果key存在 则可以修改key对应的value
print(dic5)
print(dic5['c']) # 取字典中的key 如果没有则报错
print(dic5['d']) #如果有可以取得key对应的
print(dic5.get('c','返还'))# 取字典中的KEY 如果有返还KEY的value 如果没有返还自定义的值
dic5.pop('a') #指定删除字典中KEY的VALUE 并能返还VALUE
print(dic5)
print(dic5.popitem())# 删除末尾的 并返还成(key,value)类型
dic6={'a':1,'b':20,'c':1} #更新dic6 如果dic7里面的相同的K dic6k的value则替换为dic7 kd的value
#如果dic7里面有新的K 则dic6里面加入新的k:value
dic7={'a':10,'b':20}
dic6.update(dic7)
print(dic6)
dic6.setdefault('a',100) #如果dic6有'a'存在啥事不干
print(dic6)
dic6.setdefault('d',100) #如果dic6没有'd'则添加 'd':100
print(dic6)
for x in dic6: #循环得到是dic6中key的值
print(x)
print(dic6.keys)
for x in dic6.keys(): #循环k的值
print(x)
print(dic6.values())
for x in dic6.values(): #循环k的value
print(x)
print(dic6.items()) #循环 k value 以元组的形式打印出来
for x in dic6.items():
print(x,type(x))
for k ,v in dic6.items(): #把字典中Key 的值给 k 字典中Value的值给v 打印出来
print(k,v,type(k),type(v))
集合
#集合的数据类型操作
s=set() #定义为空集合
print(s,type(s))
#set为可变类型 set只能存不可变类型的数据 但是不能有重复的数据出现
#set为随机存储 所以没有索引取值 也没有key取值 所以set不能取值 只能删值
s.add(1)
s.add('a')
print(s)
s1={'a',2}# 重复的剔除 新的新增
s.update(s1)
print(s)
s.pop() #随机删除
print(s)
s.remove('a') #指定删除对象
print(s)
s.clear() #清空集合
print(s)
se1={'a','b','c','egon'}
se2={'x','y','z','egon'}
print(se1.intersection(se2)) #两个集合的交集
print(se1.union(se2)) #两个集合的合集
print(se1.symmetric_difference(se2)) #除去共有的
print(se1.difference(se2)) # 独有的
se11={'a','b','c','egon'} #一定要包含的关系才能比较
se22={'egon'}
print(se11>se22)