day02
#一:str基本使用
# 1 用途:记录的是描述性质的状态,比如名字,爱好,家庭地址
# 2 定义方式:在单引号、双引号、三引号内包含的一串字符
# msg="hello 'world'" #msg=str("hello 'world'")
# res1=str(1) # 可以将任意数据类型都转成字符串类型
# res2=str(1.2)
# res3=str([1,2,3])
# print(type(res1),type(res2),type(res3))
# 3 常用操作+内置的方法
#优先掌握的操作:(*****)
#1、按索引取值(正向取+反向取) :只能取
# msg="hello world"
# print(msg[1])
# print(msg[5])
# msg[1]='aaaa'
# print(msg[-1])
# print(msg[-3])
#2、切片:从一个大字符串中切除一个子字符串(顾头不顾尾,步长)
# msg="hello world"
# print(msg[1:3])
# print(msg[6:11])
# print(msg[6:11:2]) #world #wrd
# 倒着取值(了解):注意方向要一致
# print(msg[6:])
# print(msg[-1:-6:-1])
# print(msg[-1::-1])
# print(msg[::-1])
#3、长度len
# msg="hello world"
# print(len(msg)) # 长度是11,索引最大到10
#一:list基本使用
# 用途:存放多个值,记录人多个爱好,多个人名
# 定义方式:在[]内用逗号分隔开多个任意类型的值
l=[1,'aa',3.1,[1,2]] #l=list([1,'aa',3.1,[1,2]])
# list类型转换的工作原理:list(items)
#1、先造一个空列表
#2、类似调用了一个for循环,从items里取出一个值放入空列表中,循环往复直到取干净为止
# res=list('hello')
# print(res,type(res))
# print(list(range(1,5)))
# 常用操作+内置的方法
#优先掌握的操作:
#1、按索引存取值(正向存取+反向存取):即可以取也可以改
#ps:不能根据索引往列表里新加入值
l=['a','b','c','d']
# print(l[3])
# print(l[-1])
# l[3] = 'D'
#一:基本使用
# 用途:存多个种类不同的值
# 定义方式:在{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,key应该对value有描述性的功能
# 注意:value可以是任意类型,而key必须是不可变类型且唯一,
# 即字典的key可以是int、float、tuple、str,通常是字符串类型
d={3.1:1,(1,2,3):2222} #d=dict({3.1:1,(1,2,3):2222} )
# print(d[(1,2,3)])
# 了解
# d1=dict(x=1,y=2,z=3)
# print(d1)
# 了解
# d2=dict([('name','egon'),['age',18],('sex','male')])
# print(d2)
# 常用操作+内置的方法
#优先掌握的操作:
#1、按key存取值:可存可取
# d={'name':'egon','age':18}
# print(id(d))
# d['name']='EGON'
# print(id(d))
# print(d)
# l=['a','b']
# l[2]='c'
# d={'name':'egon','age':18}
# d['sex']='male'
# print(d)
#2、长度len
# d={'name':'egon','age':18,'age':19,'age':20}
# print(d)
# print(len(d))
#3、成员运算in和not in:判断的是字典的key
# d={'name':'egon','age':18}
# print('name' in d)
#4、删除
# d={'name':'egon','age':18}
# res=d.pop('sex',None)
# print(res)
# res=d.pop('name',None) # 删除key对应的元素,返回的是value值
# print(res)
# print(d)
#5、键keys(),值values(),键值对items()
#了解:python2中的格式
# >>> d={'name':'egon','age':18}
# >>>
# >>> d.keys()
# ['age', 'name']
# >>> d.values()
# [18, 'egon']
# >>>
# >>> d.items()
# [('age', 18), ('name', 'egon')]
#python3中的格式
d={'name':'egon','age':18}
# print(d.keys())
# print(d.values())
# print(d.items())
# print(list(d.keys()))
# print(list(d.values()))
# print(list(d.items()))
#6、循环
d={'name':'egon','age':18}
# for k in d.keys():
# print(k)
for k in d:
print(k,d[k])
# for v in d.values():
# print(v)
# for k,v in d.items(): #k,v=('name', 'egon')
# print(k,v)
#二:该类型总结
# 存一个值or存多个值
# 只能存一个值
# 可以存多个值,值都可以是什么类型
# 有序or无序
# 可变
# print(l)
# l[4]=5555
#2、切片:从一个大列表中切出一个子列表(顾头不顾尾,步长)
# l=['a','b','c','d']
# l1=l[1:3]
# print(l1)
#3、长度
# l=['a','b','c','d']
# print(len(l))
#4、成员运算in和not in
# names=['egon','alex','wxx',1,3,4]
#
# print(4 in names)
# print(5 not in names)
#5、追加、插入
# l=['a','b','c','d']
# l.append('aaa')
# print(l)
# l.insert(0,'B') #['B', 'a', 'b', 'c', 'd']
# l.insert(0,'egon')
# print(l)
#6、删除
# l=['a','b','alex','d']
# del l[2] # 非字符串独有的删除,是一种通用的删除方式
# print(l)
# res=l.remove('alex') # 单纯的删除,没有返回值
# print(l)
# print(res)
# 从列表中拿走一个值:
#1、删除一个元素
#2、将该元素当做返回值返回
# res=l.pop() # 默认从最后一个删除
# print(l)
# print(res)
# res=l.pop(2)
# print(res)
#7、循环
# l=['a','b','c']
# for item in l:
# print(item)
#二:该类型总结
# 存多个值
# 有序
# 可变
# l1=['a','b','c']
# print(id(l1))
# l1[0]='A'
# print(id(l1))
# 需要掌握的操作
l1=[1,2.3,'a','a','b','a']
# print(l1.count('a'))
# l2=[4,5,6]
# l1.append(l2[0])
# l1.append(l2[1])
# l1.append(l2[2])
# l1.extend(l2)
# print(l1)
# l1=[1,2.3,'a','a','b','a']
# l1.index('egon')
# print(l1.index('a',0,3))
# names=['alex','wxx','lxx']
# names.reverse()
# print(names)
# nums=[9,3,4,-1,5,100,98]
# nums.sort() # 默认从小到大排序
# nums.sort(reverse=True) # 从大到小排序
# print(nums)
# l1=['c','b','a']
# l1.sort()
# print(l1)
# s1='hello bbbsadf sadf sadf '
# s2='hezaaaaa'
# s3='z'
# print(s3 > s2 > s1)
# l1=[1,'egon',3.1,'lxx']
# l2=[1,'egon',4.3,'hello']
# l3=['a','egon',3.1,'lxx']
# print(l1 > l3)
# l1.clear()
# print(l1)
# l2=l1.copy()
# print(l2)
# 练习:
# 队列:先进先出
# 堆栈:先进后出
#4、成员运算in和not in:判断一个子字符串是否存在于一个大字符串中
# msg="hello world alex is SB"
# print('alex' in msg)
# print('SB' in msg)
# print('egon' not in msg)
# print(not 'egon' in msg)
#5、移除空白strip
# msg=' egon '
# res=msg.strip() # 默认去除的是字符串左右两边的空格
# print(msg)
# print(res)
# strip会从左往右开始吃空格,直到碰到一个非空格为止
# 右面相同的原理
#ps:strip并没有修改原值,是产生一个新值
# msg=' eg on '
# print(msg.strip())
# msg='******eg****on*****'
# print(msg.strip('*'))
# print(msg)
# name='* / , -egon -*='
# print(name.strip('*, /-='))
# name=input('>>>: ') #name='egon '
# name=input('>>>: ').strip()
# print(name)
#6、切分split
#7、循环
#二:该类型总结
# 1 存一个值or存多个值
# 只能存一个值
# 可以存多个值,值都可以是什么类型
#
# 2 有序or无序
#
# 3 可变or不可变
# !!!可变:值变,id不变。可变==不可hash
# !!!不可变:值变,id就变。不可变==可hash
# else的子代码块会在循环结束后并且没有被break打断的情况下执行
#while+else:
# n=1
# while True:
# if n == 3:
# break
# print(n)
# n+=1
# else:
# print('run.....')
# n=1
# while n <=3:
# print(n)
# n+=1
# else:
# print('run....')
#for+else
# for i in [1,2,3,4]:
# if i == 4:
# break
# print(i)
# else:
# print('run....')
# name=input('username>>: ').strip()
# pwd=input('password>>: ').strip()
# for line in 文件的内容:
# if name == line提取的用户名 and pwd == line提取的密码:
# print('认证成功')
# break
# else:
# print('用户名或者密码错误')
#
# for i in range(0,5,2): #0 2 4
# print(i)
# names=['egon','alex','wxx','lxx','cxx']
# i=0
# while i < len(names):
# print(names[i])
# i+=1
# for i in range(0,len(names)): #i=1
# print(i,names[i])
print(range(0,5))
#一:tuple基本使用
# 用途:不可变的列表
# 定义方式:()内用逗号分隔开多个任意类型的元素
# t=('a',1,3.3) #t=tuple(('a',1,3.3))
# print(t,type(t))
# t1=tuple('hello') # 任意可以被for循环的数据类型都可以被tuple转成元组
# print(t1,type(t1))
# 常用操作+内置的方法
#优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
#2、切片(顾头不顾尾,步长)
# t1=(1,2,3,4,5)
# print(t1[0:3])
#3、长度
#4、成员运算in和not in
#5、循环
# for item in t1:
# print(item)
#二:该类型总结
# 多个值
# 有序
# 不可变:
# 元组可变指的元组内索引对应的内存地址不变
# 列表可变指的列表内索引对应的内存地址可以改变
# l1=['a','b','c']
# print(id(l1[0]))
#
# l1[0]='A'
# print(id(l1[0]))
# t1=('a','b',[3.1,'bbb'])
# print(id(t1[0]),id(t1[1]),id(t1[2]))
#
# t1[2][0]=3.2
# print(id(t1[0]),id(t1[1]),id(t1[2]))
#
#
#
#
# 需要掌握的操作:
t=('a','b','a','a')
# t.index('c')
# print(t.index('a',5,7))
print(t.count('a'))
--------------------------------------------
#一:字典基本使用
# 用途:存多个种类不同的值
# 定义方式:在{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,key应该对value有描述性的功能
# 注意:value可以是任意类型,而key必须是不可变类型且唯一,
# 即字典的key可以是int、float、tuple、str,通常是字符串类型
d={3.1:1,(1,2,3):2222} #d=dict({3.1:1,(1,2,3):2222} )
# print(d[(1,2,3)])
# 了解
# d1=dict(x=1,y=2,z=3)
# print(d1)
# 了解
# d2=dict([('name','egon'),['age',18],('sex','male')])
# print(d2)
# 常用操作+内置的方法
#优先掌握的操作:
#1、按key存取值:可存可取
# d={'name':'egon','age':18}
# print(id(d))
# d['name']='EGON'
# print(id(d))
# print(d)
# l=['a','b']
# l[2]='c'
# d={'name':'egon','age':18}
# d['sex']='male'
# print(d)
#2、长度len
# d={'name':'egon','age':18,'age':19,'age':20}
# print(d)
# print(len(d))
#3、成员运算in和not in:判断的是字典的key
# d={'name':'egon','age':18}
# print('name' in d)
#4、删除
# d={'name':'egon','age':18}
# res=d.pop('sex',None)
# print(res)
# res=d.pop('name',None) # 删除key对应的元素,返回的是value值
# print(res)
# print(d)
#5、键keys(),值values(),键值对items()
#了解:python2中的格式
# >>> d={'name':'egon','age':18}
# >>>
# >>> d.keys()
# ['age', 'name']
# >>> d.values()
# [18, 'egon']
# >>>
# >>> d.items()
# [('age', 18), ('name', 'egon')]
#python3中的格式
d={'name':'egon','age':18}
# print(d.keys())
# print(d.values())
# print(d.items())
# print(list(d.keys()))
# print(list(d.values()))
# print(list(d.items()))
#6、循环
d={'name':'egon','age':18}
# for k in d.keys():
# print(k)
for k in d:
print(k,d[k])
# for v in d.values():
# print(v)
# for k,v in d.items(): #k,v=('name', 'egon')
# print(k,v)
#二:该类型总结
# 存一个值or存多个值
# 只能存一个值
# 可以存多个值,值都可以是什么类型
# 有序or无序
# 可变