数组:存储同一种数据类型的集合 scores=[1,2,3,4] 一个变量存储多个信息
列表:(打了激素的数组):可以存储任意数据类型的集合
#列表里:可以存储不同的数据类型
li= [1,1.2,True,'hello']
print li
print type(li)
##列表里面也可以嵌套列表(列表:也是一种数据类型)
lii =[1,1.2,True,[1,2,35]]
print lii
print type(lii)
#列表的特性
# service =['http','ssh','ftp']
#索引
# print service[0]
# print service[-1]
切片
# print service [::-1] #列表的翻转
# print service[1:] #除了第一个元素之外的其他元素
# print service[:-1] ##除了最后一个元素之外的其他元素
重复
# print service*2
连接
# service1=['mysql','firewalld']
# print service+service1
成员操作符
# print 'firewalld' in service
# print 'firewalld'in service1
for 循环遍历
# print '显示服务'.center(50,'*')
# for se in service:
# print se, #显示不换行,去掉逗号换行
#列表里面嵌套列表
# service2=[['http',80],['ssh',22],['ftp',21]]
#索引
# print service2[0][1] 输出80
# print service2[-1][1] 输出21
#切片
# print service2[:][1] 【ssh,22】
# print service2[:-1][0] 【http,80】
# print service2[0][:-1] http
案例1.
names=['fentiao','fendai','fensi','apple']
print 'i have ' + ','.join(names[:-1]) + 'and' + names[-1]
列表的增加
1.
service=['http','ssh','ftp']
print service + ['firewalld']
2.append:追加 追加一个元素到列表中
service.append('firewalld')
print service
3.extend: 拉伸追加多个元素到列表中
service.extend(['firewalld','samba'])
print service
4.insert:在指定索引位置插入元素
service.insert(1,'samba')
print service
#列表的删除
service=['http','ssh','ftp']
#如果pop()不传递值的时候,默认弹出最后一个元素,和堆栈一样的效果
print service.pop()
pop()也可以弹出索引值
print service.pop(0)
remove:删除指定的元素
# service.remove('ssh')
# print service
del是个关键字,从内存中删除列表
print service
del service
print service
#列表的更改
service =['http','ssh','ftp']
#通过索引,重新赋值
service[0]='mysql'
print service
#通过切片赋值
print service[:2]
service[:2]=['samba','ladp']
print service
#列表的查看
service= ['http','ssh','ftp','ftp']
#查看列表中元素出现的次数
print service.count('ssh')
#查看指定元素的索引
print service.index('ssh')
#列表的排序
# service= ['http','ssh','ftp','ftp']
##按照Ascii码进行排序的升序
# service.sort()
# print service
# service.sort(reverse=True) #倒叙
# print service
phones=['bob','harry','lily','Alice']
phones.sort()
对字符串排序不区分大小写
phones.sort(key=str.lower) ctrl+点 查看源代码
phones.sort(key=str.upper) ctrl+q 查看使用方法
print phones
###生成任意列表
import random
li=list(range(10))
print li
###将原有的列表顺序打乱
random.shuffle(li)
print li
案例2
users=['root','westos']
passwd=['123','456']
num=0
while num<3:
inuser= raw_input('用户名')
inpasswd=raw_input('密码')
num+=1
if inuser in users:
index=users.index(inuser)
passwd=passwd[index]
if inpasswd==passwd:
print '%s登陆成功'%inuser
break
else:
print '%s登陆失败'%inuser
else:
print '用户不存在'
else:
print '三次机会用完'
users=['root','westos']
passwds=['123','456']
name=raw_input('请输入用户名')
if name in users:
for i in range(3):
password=raw_input('请输入密码')
if password in passwds:
if users.index(name)==passwds.index(password):
print '登陆成功'
else:
print '密码不正确,请重新的登陆'
d=2-i
print '你还有%d次机会'%d
else:
print '密码不再范围 '
else:
print '请重新登陆,用户名不存在,还有三次机会'
案例3
print '管理员的登陆'.center(50,'*')
inuser = raw_input('用户名')
inpasswd=raw_input('密码')
users= ['root','westos']
passwds=['123','456']
if inuser=='admin'and inpasswd=='admin':
print '管理员登陆成功'
print '用户信息管理'.center(50,'*')
while True:
print """
1-添加用户信息
2-删除用户信息
3-查看用户信息
4-退出
"""
choice=raw_input('请选择你的操作')
if choice=='1':
print '添加用户信息'.center(50,'*')
adduser=raw_input('添加用户:')
if adduser in users:
print '用户%s已经存在'%adduser
else:
addpasswd=raw_input('密码')
users.append(adduser)
passwds.append(addpasswd)
print '添加成功'
elif choice=='2':
print '删除用户信息'.center(50,'*')
deluser=raw_input('删除用户:')
if deluser in users:
index=users.index(deluser)
users.remove(deluser)
passwds.remove(passwds[index])
print '用户以删除成功'
else:
print '删除的用户不再列表里,请重新选择删除的用户'
elif choice=='3':
for se in users:
print se,
for see in passwds:
print see,
elif choice=='4':
exit()
else:
print '请输入正确的选择'
else:
print '管理员登陆失败'
print '管理员的登陆'.center(50,'*')
inuser = raw_input('用户名')
inpasswd=raw_input('密码')
users= ['root','westos']
passwds=['123','456']
if inuser=='admin'and inpasswd=='admin':
print '管理员登陆成功'
print '用户信息管理'.center(50,'*')
while True:
print """
1-添加用户信息
2-删除用户信息
3-查看用户信息
4-退出
"""
choice=raw_input('请选择你的操作')
if choice=='1':
print '添加用户信息'.center(50,'*')
adduser=raw_input('添加用户:')
if adduser in users:
print '用户%s已经存在'%adduser
else:
addpasswd=raw_input('密码')
users.append(adduser)
passwds.append(addpasswd)
print '添加成功'
elif choice=='2':
print '删除用户信息'.center(50,'*')
deluser=raw_input('删除用户:')
if deluser in users:
index=users.index(deluser)
users.remove(deluser)
passwds.remove(passwds[index])
print '用户以删除成功'
else:
print '删除的用户不再列表里,请重新选择删除的用户'
elif choice=='3':
print '查看用户信息'.center(50,'*')
print '\t用户名\t密码'
count=len(users)
for i in range (count):
print '\t%s\t%s'%(users[i],passwds[i])
elif choice=='4':
exit()
else:
print '请输入正确的选择'
else:
print '管理员登陆失败'
#元组的定义
#元组(tuple):带了紧箍咒的列表
#元组本身不可变数据类型,没有增删改查
#元组内可以存储任意数据类型
t=(1,2,3,'tar')
print t,type(t)
#元组里面包含可变数据类型,可以间接修改元组的内容
t1=([1,2,4],4)
t1[0].append(8)
print t1
#元祖如果只有一个元素时,记得加逗号,否则输出的类型不是元祖,是int型或是str型
t2=('hello',)
t3=('1',)
print type(t2),type(t3)
元组的特性
user=('westos','student','student')
元组的索引与切片
print user[0]
print user[-1]
print user[1:]
print user[:-1]
print user[::-1]
元祖的重复
print user*3
元祖的连接
print user + ('lili','harry')
元祖的成员操作符
print 'westos' in user
print 'westos' not in user
#元组的应用场景
#变量交换数值
a=1
b=2
b,a=a,b #先把(a,b)封装成了一个元组(1,2) b=(1,2)[0] a=(1,2)[1]
print a,b
#打印变量值
name='westos'
age=10
t=(name,age)
print 'name:%s,age:%d'%(name,age)
print 'name:%s,age:%d'%t
#元组的赋值:有多少个元素,就用多少个变量接收
m=('westos','10','100')
name,age,score=m
print name,age,score
#元组的排序
score=(100,89,78,45,99)
scoreli=list(score) #把他转换为列表的形式,然后进行排序
scoreli.sort()
print scoreli
scores=sorted(score) ##直接进行排序
print scores
#集合的定义
#集合里面的元素是不可重复的
s={1,3,3,2,4,4,2,5,6,7}
print s,type(s)
s1={1}
print s1,type(s1)
#如何定义一个空集合
s3=set([])
print s3,type(s3)
#集合的应用
li=[1,1,2,2,3,3]
print list(set(li)) ##将li去掉重复数值
#集合的特性
#集合只支持成员操作符,for循环
s={1,2,3}
print 1 in s
for i in s:
print i,
for i,v in enumerate(s):
print 'index:%s,value:%s'%(i,v)
集合的增加
s={6,7,1,2,3}
#增加
s.add(10)
s.add(9)
print s
#增加多个元素
s.update({4,5})
print s
#删除
s.pop()
print s
#删除指定元素
s.remove(2)
print s
#集合的交集并集与差集
s1={1,2,3}
s2={2,3,4}
print '并集:',s1.union(s2)
print '并集:',s1 | s2
print '交集:',s1.intersection(s2)
print '交集:',s1 & s2
print '差集:',s1.difference(s2)#可以理解为s1中有那些s2中没有的元素
print '差集:',s1-s2
print '差集:',s2.difference(s1)#可以理解为s2中有那些s1中没有的元素
print '差集:',s2-s1
##对等差分:并集-交集
print '对等差分:',s1.symmetric_difference((s2))
print '对等差分:',s2^s1
s3={1,2}
s4={1,2,3}
print s3.issubset(s4) #s3是否为s4的子集
print s3.issuperset(s4) #s3是否为s4的超集:s3中的每一个元素都在集合s4中,且s4中可能包含s3中没有的元素,则s3就是s4的一个超集
print s3.isdisjoint(s4) ##s3和s4不相交
案例4
import random
s=set([])##设成集合的形式
for i in range (int(raw_input('N'))):
num= random.randint(1,1000)
s.add(num)
print sorted(s)
#python中常用的内置方法
#枚举:返回索引值和对应的value值
for i,v in enumerate('hello'):
print str(i) + '--->'+ v
s1='azs'
s2='132'
for i in zip(s1,s2):
print i
print '-'.join(i)
字典是一个无序的数据集合,使用print输出字典的时候,通常输出的顺序和定义的顺序是不一致的
message = {
'name': 'tom',
'age': '18',
'height':'1.80',
'weight':75.5
}
print message
s={}
print type(s)
s={
'fentiao':[100,90,80],
'westos':[111,11,111]
}
print s
d=dict()
print d,type(d)
d=dict(a=1,b=2)
print d,type(d)
#字典的特性
d=dict(a=1,b=2)
print d
#成员操作符(默认判断key值是否存在)
print 'a' in d
print 1 in d
#for循环(默认循环遍历字典的key值)
for i in d:
print i
#字典的增加
d=dict(a=1,b=3)
print d
#添加或更改key-value对
d['g']=10
print d
d['a']=10 ##直接改value值
print d
update:如果key值存在,更新value值,如果key值不存在,添加key-value值
d.update({'a':4,'f':1})
print d
setdefault:如果key值已经存在,不做修改,如果key值不存在,添加key-value值
d.setdefault('a',10)
print d
#字典的删除
d=dict(a=1,b=3,c=2)
#pop:弹出指定的key-value值
d.pop('a')
print d
#弹出第一个值
d.popitem()
print d
#删除
del d['b']
print d
#字典的修改与查看
service={
'http':80,
'mysql':3306
}
#查看字典里面所有的keys值
print service.keys()
#查看字典里面所有的value值
print service.values()
#查看字典里面所有的key-value值
print service.items()
#遍历
for k,v in service.items():
print k,'----->',v
for k in service:
print k ,'---->',service[k]
#get方法获取指定key对应的value值 如果key值存在,返回对应的value值,如果key值不存在,默认返回NONE,如果需要指定返回值,传值即可
print service.get('https','key is not exist')