列表操作:

names='崔海龙 杨帆 刘荣心.....'
# list 列表 数组 array

stu_name = ['崔海龙','杨帆','刘荣心','1','1.5']
#计算机里面起始都是从0开始的
print(stu_name)
#增删改查
stu_name.append('杨月')#在list的末尾添加元素
stu_name.insert(0,'小军')#在指定位置添加元素
stu_name.insert(0,'谭爱玲')#在指定位置添加元素
print('修改之前的',stu_name)
#改
stu_name[6]='孔垂顶'
print('修改之后的',stu_name)
#删
# stu_name.append('小军')
# print(stu_name)
# stu_name.remove('小军')
# print(stu_name)
# stu_name.pop() #删除最后一个元素
# stu_name.pop(5) #删除指定下标的元素
# stu_name.remove('小军')#删除指定的元素
# 如果有一样的元素,只会删除第一个
# stu_name.pop(18) #删除指定下标的元素
print(stu_name)
del stu_name[-1]
print(stu_name)

#查
my_list = ['小黑','小白',1,1,2,1.5]
print(stu_name[-1])
print(stu_name[0])
print(my_list.count(1)) #查询某个元素在list里面出现的次数
print('index方法: ',my_list.index(1)) #查找元素的下标,元素不存在会报错
print('reverse:',my_list.reverse())#reverse是反转list
print(my_list)
# my_list.clear()#清空整个list
# print(my_list)
nums =[9.23,9,3,6,1,0]
nums.sort()#排序升序
nums.reverse()#排序降序
nums.sort(reverse=True)#排序,如果制定了reverse=True,那么就是降序
# nums.extend(my_list)#把一个list里面的元素加入进去
print(nums)

new_list = nums+my_list
print(new_list)
print(new_list * 3) #复制几个

例子:
users = ['nhy','haha']

#校验手机号是否存在的
# for i in range(5):
# username = input('请输入用户名: ')
# #如果用户不存在的话,就说明可以注册,
# # if users.count(username)>0:
# if username in users: #in就是判断在不在里面
# print('用户已经被注册')
# else:
# print('用户未注册')
# users.append(username)

nums1=[1,2,3] #一维数组
nums2=[1,2,3,[4,56]] #二维数组
nums=[1,2,3,4,['a','b','c','d','e',['一','二','三']]] #三维数组
print(nums2[-1][-1])
# nums=[1,2,3,4,['a','b','c','d','e',['一','二','三',[1,2,3]]]] #四维数组

#多维数组


# passwords=['123456','123123','7891234','password']
# print(len(passwords)) #取长度,也就是list里面元素的个数
#循环这个list
# count = 0 #最原始list取值方式,是通过每次计算下标来获取元素的
# while count<len(passwords):
# s = passwords[count]
# print('每次循环的时候',s)
# count+=1

# passwords=['123456','123123','7891234','password']
# index = 0
# for p in passwords:#for循环直接循环一个list,那么循环的时候就是每次取它的值
# passwords[index] ='abc_'+p
# index+=1
# print(passwords)

passwords=['123456','123123','7891234','password']
for index,p in enumerate(passwords):#使用枚举函数,它会帮你计算下标和元素
# print('enumerate每次循环的时候',index,p)
passwords[index] ='abc_' + p
print(passwords)

切片操作:
#就是list取值的一种方式
# l = list(range(1,11))
l = ['a','b','c','d','e','j','k','l','m','n','o']
# print(l[2:8])#顾头不顾尾
# print(l[:5])#如果最前面没写的话,代表从0开始取的
# print(l[4:])#如果冒号后面的没写的话,代表取到最后
# print(l[:])#取全部
# print(l[::3])#步长,也就是代表隔几个取一次
# nums=list(range(1,101))
# print(nums[1::2]) #取偶数
# print(nums[::2]) #取奇数
# print(nums[::-2]) #倒着取偶数
#如果最后面的步长是正数的话,就从左到右开始取值
#如果最后面的步长是负数的话,就从右到左开始取值

#切片同样适用于字符串
words='中秋节要上课'
# print(words[::-2])
for index,w in enumerate (words):
print('每次打印的',index,w)

s='上海自然水来自海上'
#1232321
#回文算法,反过来倒过去都一样
#5678 8765

for i in range(10):
s = input('请输入一个字符串:')
if len(s)<1:
print('字符串长度必须大于1')
elif s==s[::-1]:
print('是回文')
else:
print('不是回文')
字典操作
# 小军  男 185  29 xxxx 1111 sss@qq.com 2387121
# 海龙 男 185 29 xxxx 1111 sss@qq.com 2387121
# 杨帆 男 185 29 xxxx 1111 sss@qq.com 2387121
# 杨月 男 185 29 xxxx 1111 sss@qq.com 2387121

all_sty = [ ['xioajun','xxx','x'],['xx'] ]
xiaojun = ['xioajun','xxx','x']
hailong = ['xxx']

#。。。。。
# k-v 形式
#字典也可以循环
'''
xiaojun = {
'name':'xiaojun',
'sex':'男',
'shengao':'185',
'age':18,
'email':'acb@qq.com',
'addr':'火星',
'id':1
}
#优点,速度快,好取值

hailong = {
'name':'hailong',
'sex':'男',
'shengao':'185',
'age':18,
'email':'acb@qq.com',
'addr':'火星',
'id':2
}


for i in hailong:
# print(i)
# if i =='name':
print(hailong[i])


# for k,v in hailong.items():
# print(k,v)




#增删改查

# print(hailong['name'])
# print(hailong.get('zhuzhi','火星')) # get查找-不报错,可以设置默认值

#add
# hailong['zhuzhi'] = '北京'
# hailong['age']=30
# print(hailong)

#delete
# hailong.pop('age')
# print('删除age',hailong)
# hailong.popitem() #随机删除
# print(hailong)

# del hailong['age'] #del 删除
# print(hailong)

# print(hailong.values())

# name = {'zhuzhi':"北京"}
# hailong.update(name) #字典合并
# print(hailong)
#
# print(hailong.keys())






# 1、设置默认值有啥用
# 2、
stus = {}
#增加
#
stus['name'] = '小军'
stus['name'] = '海龙'
stus.setdefault('name','杨帆')#如果这个key已经存在,那么就不修改它的值了
stus.setdefault('age',18)
stus.setdefault('sex','nan')
stus.setdefault('addr','北京')
stus.setdefault('phone','18612123123')

#修改
stus['name'] = '海龙'

#删除
# del stus['phone']
# stus.pop('phone')
# stus.popitem() #随机删除

#查询

# print(stus['qq'])
# print(stus.get('sex'))

print(stus.keys())
print(stus.values())
stus.update({'moeny':1000})
print(stus)

# for k in stus:
# print(k,'===>',stus.get(k))

for k,v in stus.items():
print(k,'===>',v)

# case = {
# 'url':'http://118.24.3.40',
# 'method':'get',
# }

# del stus
#
# print(stus['name'])

'''


#下面是字典嵌套多层取值:


all_stus = {
'xiaojun':
{
'sex': '男',
'shengao': '185',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 1,
'cars':['牧马人','911','野马','劳斯莱斯']
#五菱宏光
},
'hailong':{
'sex': '男',
'shengao': '185',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 2
},
'yangfan':{
'sex': '男',
'shengao': '185',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 3,
'bags':{
'qianbao':['lv','ysl'],
'beibao':['coach','abc']
}
}
}
all_stus['xiaojun']['cars'].append('五菱宏光')
print(all_stus)
# print(len(all_stus['xiaojun']['cars']))
all_stus['yangfan']['sex'] = '女'
print(all_stus)
all_stus['yangfan']['bags']['qianbao'].remove('lv')

元组
mysql = ('118.24.3.40',3306,'root','123456')
#元组也是一个不可变列表,元组不能修改
mysql = ('211.40.28.65',6739,'sfdsdfs')
# print(mysql[:3])
# for m in mysql:
# print(m)
# mysql.count()
# mysql.index()

l = [1]
t = ('abc',)
print(type(t))
print(type(l))

字符串常用方法
password='jpg 12345456789 .jpg ABCDE'
# print(password)
new_password = password.strip('.jpg') #默认去掉字符串两边的空格和换行符
# print(password.lstrip())
# print(password.rstrip())
# print('password',password)
# print('newpassword',new_password)
# print(password.upper())#转成大写的
# print(password.lower())#转成小写的
# print(password.capitalize())#吧首字母改成大写的
# print(password.count('jpg'))
# print(password.replace('谭爱玲','上山打老虎'))#替换字符串
# filename = 'a.mp4'
# age=18
# print(filename.endswith('.mp3'))#判断是否以xx结尾
# print(filename.startswith('186'))#判断是否以开头
# print('{name},{age}'.format(name='hhh',age=age))

names = '小军 海龙 杨帆 谭爱玲'
# print(names.replace(' ',''))
print(names.split(','))
#1、是吧字符串变成list2、以某个字符串分割,分割之后的是list里面的每一个元素
# a = True #布尔类型 ,真
# b = False #假,条件不成立
# if filename.endswith('.mp3'):
# pass
# else:
# print('')

文件读写
#1、有个文件
#2、打开文件
#3、操作文件 读、写
#4、关闭

#只读模式,默认的
#写模式
#追加模式
# w是会清空文件内容
f = open('users.txt','a+')
f.seek(0)#移动文件指针
print(f.read())#获取到文件里面所有的内容
f.write('yangfan,12345\n')
f.write('mayanyan,12345\n')
f.flush()#
f.close()
#文件指针。