1.创建列表
数组:存储同一数据类型的集合 score = [10,20,30]
列表:可以存储任意数据类型的集合
1.数组的解释
------->题目要求
在数组中输入tom,bob,coco,alice,并输出数组
------->代码如下:
name = ['tom','bob','coco','alice']
print(name)
print(type(name))
------->测试结果如下:
2.创建列表
(1)创建一个普通的列表
------->题目要求
列表里可以存储不同的数据类型:
------->代码如下:
li = [1,1.2,'hello',True]
print(li)
print(type(li))
------->测试结果如下:
(2)创建一个嵌套的列表:
------->题目要求
列表嵌套:
------->代码如下:
li1 = [1,1.2,'hello',True,[1,2,3,4,5]]
print(li1)
print(type(li1))
------->测试结果如下:
2.列表的特性
(1)索引:
------->题目要求
举例说明列表的特性-索引:
------->代码如下:
service = ['http','ssh','ftp','dns']
#索引
print(service[0])
print(service[-1])
------->测试结果如下:
(2)切片:
------->题目要求
举例说明列表的特性-切片:
------->代码如下:
service = ['http','ssh','ftp','dns']
#切片
print(service[1:]) ##除了第一个全部输出
print(service[:-1]) ##除了最后一个全部输出
print(service[::-1]) ##倒序输出
------->测试结果如下:
(3)重复
------->题目要求
举例说明列表的特性-重复:
------->代码如下:
service = ['http','ssh','ftp','dns']
#重复
print(service * 3)
------->测试结果如下:
(4)连接
------->题目要求
举例说明列表的特性-连接
------->代码如下:
service = ['http','ssh','ftp','dns']
#连接
service1 = ['mysql','firewalld']
print(service + service1)
------->测试结果如下:
(5)成员操作符
------->题目要求
举例说明列表的特性-成员操作符
------->代码如下:
service = ['http','ssh','ftp','dns']
service1 = ['mysql','firewalld']
##成员操作符
print('mysql' in service)
print('mysql' in service1)
------->测试结果如下:
(6)迭代
------->题目要求
举例说明列表的特性-迭代
------->代码如下:
service = ['http','ssh','ftp','dns']
#迭代
print('显示所有服务'.center(10,'*'))
for se in service:
print(se)
------->测试结果如下:
3.列表里的嵌套列表的特性
(1)创建嵌套列表
------->题目要求
举例创建列表里的嵌套列表
------->代码如下:
service2 = [['http,80'],['ssh',22],['ftp',21]]
print(service2)
------->测试结果如下:
(2)索引
------->题目要求
举例说明列表(列表里嵌套列表)的特性-索引
------->代码如下:
service = ['http','ssh','ftp','dns']
#列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
print(service2[0][1])
print(service2[-1][1])
------->测试结果如下:
(3)切片
------->题目要求
举例说明列表(列表里嵌套列表)的特性-切片
------->代码如下:
service = ['http','ssh','ftp','dns']
#列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
print(service2[:][1])
print(service2[:-1][0])
print(service2[0][:-1])
------->测试结果如下:
(4)练习:
------->题目要求
假定有下面的列表:
names = [‘fentiao’,‘fendai’,‘fensi’,‘apple’]
输出结果为:‘I have fentiao,fendai,fensi and apple.’
------->代码如下:
names = ['fentiao','fendai','fensi','apple']
print('I have ' +','.join(names[:-1]) + ' and ' + names[-1])
------->测试结果如下:
4.列表的增加
(1)使用列表的特性-连接,将firewalld增加到列表
------->题目要求
举例说明使用连接的特性将firewalld增加到列表
------->代码如下:
service = ['http','ssh','ftp','dns']
#1.列表的连接
print(service + ['firewalld'])
------->测试结果如下:
(2)append表示追加,追加一个元素到列表中
------->题目要求
举例说明如何追加一个元素到列表中
------->代码如下:
service = ['http','ssh','ftp','dns']
#2.append表示追加一个元素到列表中
service.append('firewalld')
print(service)
------->测试结果如下:
(3)extend表示拉伸,追加多个元素到列表中
------->题目要求
举例说明如何追加多个元素到列表中
------->代码如下:
service = ['http','ssh','ftp','dns']
service.extend(['mysql','firewalld'])
print(service)
------->测试结果如下:
(4)insert:在指定索引位置插入元素
------->题目要求
举例说明如何将samba插入得到service列表中索引为1的位置
------->代码如下:
service = ['http','ssh','ftp','dns']
service.insert(1,'samba')
print(service)
------->测试结果如下:
5.列表的删除
(1)使用pop删除列表
------->题目要求
举例使用pop命令对列表进行删除
------->代码如下:
service = ['http','ssh','ftp','dns']
a = service.pop()
print('删除掉的元素:' + a)
print('列表中剩下的元素如下:')
print(service)
------->测试结果如下:
注意:pop命令删除时总删除的是列表的最后一个,而且删除之后依旧可以进行查看
(2)使用pop删除特定的元素
------->题目要求
举例使用pop命令删除ftp
------->代码如下:
service = ['http','ssh','ftp','dns']
a = service.pop(2)
print('删除掉的元素:' + a)
print('列表中剩下的元素如下:')
print(service)
------->测试结果如下:
(3)使用remove命令删除列表中的ssh
------->题目要求
举例使用remove命令删除列表中的ssh
------->代码如下:
service = ['http','ssh','ftp','dns']
a = service.remove('ssh')
print(type(a))
print('列表中剩下的元素如下:')
print(service)
------->测试结果如下:
注意:
1.结果中之所以变量a的类型是NoneType,是因为其ssh被彻底删除了,没有任何值
2.remove命令是指彻底删除列表中某一个元素
(4)使用del命令将service列表从内存中彻底删除
------->题目要求
举例说明如何使用del命令将列表彻底删除
------->代码如下:
service = ['http','ssh','ftp','dns']
del service
print(service)
------->测试结果如下:
注意:执行python程序后会出现NameErrot报错,是因为service列表已经被彻底删除了
6.列表的修改
(1)通过索引,重新赋值
------->题目要求
举例说明将通过修改service的索引,将http修改成mysql
------->代码如下:
service = ['http','ssh','ftp','dns']
service[0] = 'mysql'
print(service)
------->测试结果如下:
(2)通过切片,重新赋值
------->题目要求
举例说明将通过切片,将service中的前两个元素更改成’samba’和‘nfs’
------->代码如下:
service = ['http','ssh','ftp','dns']
print(service[:2]) ##输出索引值为0和索引值为1的元素
service[:2] = ['samba','nfs']
print(service)
------->测试结果如下:
7.列表的查看
(1)查看列表中元素出现的次数
------->题目要求
查看service列表中’ftp’和’dns’分别出现的次数
------->代码如下:
service = ['ftp','ssh','ftp','dns']
print(service.count('ftp'))
print(service.count('dns'))
------->测试结果如下:
(2)查看指定元素的索引值
------->题目要求
查看’ssh’的索引值是多少
------->代码如下:
service = ['ftp','ssh','mysql','ftp']
print(service.index('ssh'))
------->测试结果如下:
(3)查看指定元素的索引值,这里指定索引范围查看
------->题目要求
查看’ftp’的索引值是多少
------->代码如下:
service = ['oo','ssh','ftp','ftp']
print(service.index('ftp',1,3))
------->测试结果如下:
8.列表中字符的排序
(1)对字符进行排序
------->题目要求
使列表中的字符依据ASCII码进行从小到大的排序
------->代码如下:
service = ['ftp','ssh','ftp','dns']
service.sort()
print(service)
------->测试结果如下:
注意:列表中的字符串排序是不区分大小写的
(2)对数字进行排序
------->题目要求
对列表中的数字进行排序
------->代码如下:
li = list(range(10))
print(li)
------->测试结果如下:
(3)将原有的列表顺序打乱
------->题目要求
导入随机数后,将原有的列表顺序进行两次打乱并能发现打乱的结果不同
------->代码如下:
import random
li = list(range(10))
print(li)
random.shuffle(li)
print(li)
random.shuffle(li)
print(li)
------->测试结果如下:
9.列表的终极练习:
(1)练习一:
------->题目要求
1.系统里面有多个用户,用户的信息目前保存在列表里面
users = [‘root’,‘westos’]
passwd = [‘123’,‘456’]
2.用户登陆(判断用户登陆是否成功
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,推出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会
------->代码如下:
users = ['root','westos']
passwords = ['123','456']
#尝试登录次数
trycount = 0
while trycount < 3:
inuser = input('用户名: ')
inpassword = input('密码: ')
trycount += 1
if inuser in users:
index = users.index(inuser)
password = passwords[index]
if inpassword == password:
print('%s登录成功' %(inuser))
break
else:
print('%s登录失败 : 密码错误' %inuser)
else:
print('用户%s不存在' %inuser)
else:
print('尝试超过三次,请稍后再试')
------->测试结果如下:
(2)练习二:
------->题目要求(简易版)
1.后台管理员用户只有一个 用户:admin 密码:admin
2.管理员登录成功后,才能管理会员信息
3.会员信息包含:
添加会员信息
删除会员信息
查看会员信息
退出
------->代码如下:
print('管理员登陆'.center(50,'*'))
inuser = input('Username:')
inpasswd = input('Password:')
users = ['root','westos']
passwords = ['123','456']
i=0
if inuser == 'admin' and inpasswd == 'admin':
while True:
print("""
--------------
操作目录
1.添加会员信息
2.删除会员信息
3.查看会员信息
4.退出
""")
choice = input('请输入您的选择')
if choice == '1':
huiyuan = input('please input huiyuan username:')
huiyuan_passwd = input('please input huiyuan password:')
users.append(huiyuan)
passwords.append(huiyuan_passwd)
print( users[:])
print( passwords[:])
elif choice == '2':
print('会员信息如下:')
print(users[:])
pop_choice = int(input("please input you want to delete username's index"))
users.pop(pop_choice)
print('删除后的会员信息如下:')
print(users[:])
elif choice == '3':
print(users[:])
elif choice == '4':
exit()
else:
print('error')
else:
print('请输入正确的管理员用户和密码')
------->测试结果如下:
程序:
运行结果:
10.python中常用的内置方法:
(1)枚举:返回索引值和对应的value值
------->题目要求
循环输出’hello’中每个字母所对应的索引以及对应的值
------->代码如下:
for i,v in enumerate('hello'):
print(i,v)
------->测试结果如下:
(2)压缩两个字符串
------->题目要求
将s1字符串和s2字符串中的元素进行压缩并显示出来
------->代码如下:
s1 = 'abc'
s2 = '123'
for i in zip(s1,s2):
print(i)
------->测试结果如下:
(3)压缩两个字符串并将其以“”的方式连接起来
------->题目要求
将s1字符串和s2字符串中的元素进行压缩并以“”的方式连接起来
------->代码如下:
s1 = 'abc'
s2 = '123'
for i in zip(s1,s2):
print(''.join(i))
------->测试结果如下: