一.创建列表
"""
数组:存储同一种数据类型的集合 scores = [1,2,3]
列表:可以存储任意数据类型的集合
"""
"""
In [1]: name1 = 'tom'
In [2]: name2 = 'Tony'
In [3]: name3 = 'coco'
In [4]: name1
Out[4]: 'tom'
In [5]: name2
Out[5]: 'Tony'
In [6]: name3
Out[6]: 'coco'
In [7]:
In [7]: name = ['tom','Tony','coco']
In [8]:
In [8]: name
Out[8]: ['tom', 'Tony', 'coco']
In [9]: type(name)
Out[9]: list
In [10]:
"""
#列表里:可以存储不同的数据类型
li = [1,1.2,True,'hello']
print(li)
print(type(li))
#列表里也可以嵌套列表(列表:本身也是一种数据类型)
li1 = [1,1.2,True,'hello',[1,2,3,4,5]]
print(li1)
print(type(li1))
二.列表的特性
service = ['http','ssh','ftp']
#索引
print(service[0])
print(service[-1])
#切片
print(service[1:])
print(service[:-1])
print(service[::-1])
#重复
print(service * 3)
#连接
service1 = ['mysql','firewalld']
print(service + service1)
#成员操作符
print('firewalld' in service)
print('firewalld' in service1)
#for循环遍历
for se in service:
print(se)
#列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
#索引
print(service2[1][1])
print(service2[-1][1])
#切片
print(service2[:][1])
print(service2[:-1][0])
print(service2[0][:-1])
#练习1
季节判断
"""
# _*_coding:utf-8_*_
Name:列表判断季节.py
Date:1/15/19
Author:westos-dz
Desc:
"""
"""
列表方式判断季节
3,4,5春季,678夏季,91011秋季,12 1 2冬季
"""
month = input('请输入月份:')
season = [['春季','3','4','5'],['夏季','6','7','8'],['秋季','9','10','11'],['冬季','12','1','2']]
for i in season: ##season表中每一个小的表进行循环
for j in i: ##小的表中的每一个字符串进行循环
if j == month: ##字符串中如果有和客户输入的月份相同
print(i[0]) ##打印该小表的第0个字符串
三.列表的增加
service = ['http','ssh','ftp']
#1.
# print(service + ['firewalld'])
#2.append:追加一个元素到列表中
service.append('firewalld')
print(service)
#3.extend:拉伸 追加多个元素到列表中
service.extend(['mysql','firewalld'])
print(service)
#4.insert:在指定索引位置插入元素
service.insert(1,'samba')
print(service)
四.列表的删除
"""
In [12]: service = ['http','ssh','ftp']
In [13]:
In [13]: service.pop()
Out[13]: 'ftp'
In [14]: service
Out[14]: ['http', 'ssh']
In [15]: service.pop()
Out[15]: 'ssh'
In [16]: service
Out[16]: ['http']
In [17]: service.pop()
Out[17]: 'http'
In [18]: service
Out[18]: []
In [19]: service.pop()
------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-19-d8278ea86206> in <module>
----> 1 service.pop()
IndexError: pop from empty list
"""
service = ['http','ssh','ftp']
# #2.remove:删除指定元素
# a = service.remove('ssh')
# print(service)
# print(a)
#3.del关键字 从内存中删除
print(service)
del service
print(service)
pop()与remove与del的区别
list = ['1','2','3']
list.pop()
list.remove('1')
del list[0]
pop与remove只是将内存中的数据删除,而del会将内存空间也移除
五.列表的修改
"""
#_*_coding:utf-8_*_
Name:列表的修改.py
Date:19-1-15
Author:westos-dz
Description:
"""
service = ['http','ssh','ftp']
#通过索引,重新赋值
service[0] = 'mysql'
print(service)
#通过切片
print(service[:2])
service[:2] = ['samba','ldap']
print(service)
六.列表的查看
service = ['ftp','http','ssh','ftp']
#查看出现的次数
print(service.count('ftp'))
#查看指定元素的索引值(可以指定索引范围查看)
print(service.index('ssh'))
print(service.index('ftp',0,3))
七.列表的排序
li = list(range(10))
print(li)
#将原有的列表顺序打乱
random.shuffle(li)
print(li)
#练习2
列表内容的查找
"""
# _*_coding:utf-8_*_
Name:用户系统管理.py
Date:1/15/19
Author:westos-dz
Desc:
"""
"""
1.系统里面有多个用户,用户的信息目前保存在列表里面
users = ['root','westos']
passwd = ['123','456']
2.用户登陆(判断用户登陆是否成功
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,推出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会
"""
users = ['root', 'westos']
passwd = ['123', '456']
i = 0
j = 0
while True:
user = input('输入登陆的用户名称:')
pd = input('输入登陆密码:')
if user in users:
if pd == passwd[users.index(user)]: ##users.index(user)用于找到变量user在列表passwd索引值
print('用户登陆成功')
else:
print('用户%s登录失败,密码错误' % user)
j = j + 1
else:
print('error,请输入正确的用户名称')
i = i + 1
if i > 2:
break
if j > 2:
break
#练习3
列表内容的删除,添加,查找
"""
# _*_coding:utf-8_*_
Name:01_后台管理员管理前台信息.py
Date:1/16/19
Author:westos-dz
Desc:
"""
"""
1.后台管理员只有一个用户:admin,密码:admin
2.当管理员登陆成功后,可以管理前台会员信息.
3.会员信息管理包含:
添加会员信息
删除会员信息
查看会员信息
退出
添加用户:
1)判断用户名是否存在
2)如果存在,报错
3)如果不存在,添加用户名和密码分别到列表中;
删除用户:
1)判断用户名是否存在
2)如果存在,删除
3)如果不存在,报错
"""
print('---管理员登录系统---')
#用户系统登陆
name=input('请输入登陆用户:')
inpasswd=input('请输入密码:')
#添加数据库列表内容
users=['root','westos']
passwd=['123','456']
while name=='admin' and inpasswd == 'admin': #登陆成功时继续操作
print("""
操作目录
1)添加用户
2)删除用户
3)查看用户
4)退出管理员系统
""")
#用户输入操作选择
choice = input('请输入你的选择:')
#添加用户
if choice == '1':
addname=input('请输入要添加的用户名称:') #用户输入添加内容
if addname in users: #判断列表是否存在用户名称
print('error,用户已经存在')
else:
addpasswd=input('输入要添加的用户密码:') #不存在时,可以添加
users.append(addname) #在表users添加用户名
passwd.append(addpasswd) #在表passwd添加用户密码
print('用户%s添加成功' %addname) #提示添加成功
#删除用户
elif choice == '2':
delname=input('请输入要删除的用户名称:') #管理员输入需要删除的用户
if delname in users: #用户存在时,可以删除
userpasswd = passwd[users.index(delname)] #找到用户名对应的密码
users.remove(delname) #删除用户
passwd.remove(userpasswd) #删除密码
print('用户%s删除成功' %delname) #提示删除成功
else:
print('error,用户不存在')
#查看用户信息
elif choice == '3':
lsusername = input('请输入要查看的用户:') #输入查看的用户名
if lsusername in users: #如果存在,可以查看
lspasswd = passwd[users.index(lsusername)] #找到用户名对应的密码
print('用户名称为%s的密码为%s' %(lsusername,lspasswd)) #打印用户信息
else:
print('用户不存在')
#退出
else: #退出系统
exit()
else: #管理员登录失败
print('登录失败')
#练习4
列表的增删
"""
# _*_coding:utf-8_*_
Name:02_列表实现栈的工作原理.py
Date:1/16/19
Author:westos-dz
Desc:
"""
users = []
while True:
print("""
1)入栈
2)出栈
3)查看栈顶元素
4)查看栈的长度
5)栈是否为空
6)退出
""")
usercount =len(users)
choice = input('请输入你的选择:')
#入栈
if choice == '1':
add = input('请输入要输入的元素:')
users.append(add)
print('元素%s入栈成功' %add)
#出栈
if choice == '2':
if usercount == 0:
print('error,栈为空,不能出栈')
else:
a = users.pop()
print('出栈的元素为%s,出栈成功' %a)
#查看栈顶元素
if choice == '3':
if usercount == 0:
print('栈为空,没有栈顶元素')
else:
ls = users[::-1][0]
print('栈顶元素为%s' % ls)
#栈长
if choice == '4':
print('栈长为%s' % usercount)
#栈是否为空
if choice == '5':
if usercount == 0:
print('栈为空')
else:
print('栈不为空')
#退出
if choice == 6:
exit()