Python的学习-Python中列表的应用

1.列表的创建

数组:存储同一种数据类型的集合scores = [34,56,90,100…]
列表(打了激素的数组):可以存储任意数据类型
list = [1,1.2,True,‘westos’]
print(list,type(list))
#列表里面也可以嵌套列表
list2 = [1,1.2,True,‘westos’,[1,2,3,4]]
print(list2,type(list2))
在这里插入图片描述
在这里插入图片描述

2.列表的特性

service = [‘http’,‘ftp’,‘ssh’]

#索引
#正向索引
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(‘ftp’ not in service1)
在这里插入图片描述
在这里插入图片描述
“”"
假定有下面这样的列表:
names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’]
输出结果为:‘I have fentiao, fendai, fensi and apple.’
names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’]
print(‘I have %s and %s’ %(’,’.join(names[0:3]),names[-1]))
在这里插入图片描述
在这里插入图片描述
题目:输入某年某月某日(yyyy-MM-dd),
判断这一天是这一年的第几天?
老师的代码:
cal = input(‘请输入日期 yyyy-MM-dd: ‘)
date = cal.split(’-’) #拆分日期
#print(date)
year = int(date[0])
month = int(date[1])
day = int(date[2])
arr = [0,31,28,31,30,31,30,31,31,30,31,30,31]
num = 0
if ((year % 4 ==0) and (year % 100 !=0) or (year % 400 ==0)):
arr[2] = 29
for i in range(1,len(arr)):
if month > i:
num += arr[i]
else:
num += day
break
print(‘天数:’,num)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我的代码:
a = (input(’’))
date = a.split(’-’)
f = int(date[0])
a = f % 4
b = f % 100
c = f % 400
d = int(date[1])
e = int(date[2])
if d > 2:
if (a == 0 and b != 0) or c == 0:
if d < 8:
y = int(29 + ((d // 2) - 1) * 30 + (d - 1 - (d // 2)) * 31 + e)
else:
q = d - 8
y = int(29 + 60 + 124 + ((q // 2) * 30) + (q - (q // 2)) * 31 + e)
else:
if d < 8:
y = int(28 + ((d // 2) - 1) * 30 + (d - 1 - (d // 2)) * 31 + e)
else:
q = d - 8
y = int(28 + 60 + 124 + ((q // 2) * 30) + (q - (q // 2)) * 31 + e)
else:
if d == 1:
y = e
else:
y = 31 + e
print(’%d’ % (y))
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.列表元素的添加

a=[‘weixin’,‘qq’,‘xunlei’]
a.append(‘360’) #单独添加一个元素
print(a)

a.extend([‘WPS’,‘CSDN’]) #添加多个元素
print(a)

a.insert(2,‘baidu’) #在第二个元素之后添加‘baidu’
print(a)
在这里插入图片描述
在这里插入图片描述

4.列表元素的删除

1.弹出列表元素
qq=[‘a’,‘b’,‘c’]
qq.pop() #默认弹出列表中的最后一个元素
print(qq)
o=qq.pop(1) #指定弹出某一个元素
print(qq)
qq.pop()
print(qq)
print(o) #弹出的元素还可以再利用
在这里插入图片描述
在这里插入图片描述
2.删除列表元素
qq=[‘a’,‘b’,‘c’]
o=qq.remove(‘a’) #指定删除某一个元素
print(qq)
print(o) #删除的元素不可以再利用
在这里插入图片描述
在这里插入图片描述
3.从内存中删除一个元素
qq=[‘a’,‘b’,‘c’]
del qq[1]
print(qq)
在这里插入图片描述
在这里插入图片描述

5.列表的修改

pv = page view
pv是page view的缩写,即页面浏览量,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。网页浏览数是评价网站流量最常用的指标之一,简称为PV。监测网站PV的变化趋势和分析其变化原因是很多站长定期要做的工作。 Page Views中的Page一般是指普通的html网页,也包含php、jsp等动态产生的html内容。来自浏览器的一次html内容请求会被看作一个PV,逐渐累计成为PV总数。
uv = user view
uv指的是user view的缩写,意思是用户浏览量,你可以理解为在同一个ip宽带号下的不同电脑,手机,平板之类的!也就是说一个ip下可以包含多个uv,现在很多人都拥有多个上网设备,因此商家的某些活动会限制一个ip只能参加一次。

#定义列表
service = [‘http’,‘ssh’,‘ftp’]
print(service)

#通过索引重新赋值
service[0]=‘nfs’
print(service)

#通过切片重新赋值
print(service[1:])
service[1:]=[‘samba’,‘iscsi’]
print(service)
在这里插入图片描述
运行结果:
在这里插入图片描述

6.列表的查看

name=[‘redhat’,‘westos’,‘lee’,‘westos’,‘ming’]

#查看指定元素在列表中出现的次数
print(name.count(‘westos’))

#查看制定元素的索引值(默认显示指定元素第一次出现的索引值)(还可以指定索引范围)
print(name.index(‘westos’))
print(name.index(‘westos’,2,4))
在这里插入图片描述
运行结果:
在这里插入图片描述

7.排序

默认按照ASCII码进行排序:
name=[‘redhat’,‘westos’,‘lee’,‘westos’,‘ming’]

name.sort()
print(name)
在这里插入图片描述
运行结果:
在这里插入图片描述
import random

li = list(range(10))
print(li)

random.shuffle(li) #shuffle() 方法将序列的所有元素随机排序。
print(li)
注意:shuffle()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
在这里插入图片描述
运行结果:
在这里插入图片描述
用户登陆系统:
users = [‘root’,‘redhat’]
passwd = [‘123’,‘456’]

1.用户名是否存在
2.如果存在:1)判断密码是否正确(如果正确,登录成功并退出循环)
2)错误(重新登录,只有3次机会)
3.用户不存在(重新登录,只有3次机会)
users = [‘root’, ‘redhat’] #可以登录系统的用户名
passwd = [‘123’, ‘456’] #用户对应的密码
i = 3 #输入正确密码的机会
a = 3 #输入正确用户名的机会
while a > 0:
u = input(‘请输入用户名:’)
while u in users:
while i > 0:
p = input(‘请输入密码:’)
z = users.index(u) #将输入正确的用户名在列表中的索引值赋给z
if p == passwd[z]: #判断输入的密码是否正确
print(‘密码输入正确,登录成功!’)
exit()
else:
i -= 1
print(‘密码输入错误!’)
print(‘您还有%d次机会’ % (i))
continue
else:
exit()
else:
a -= 1
print(‘用户不存在!’)
print(‘您还有%d次机会’ % (a))
continue
else:
exit()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述
在这里插入图片描述
用户管理系统:
1.后台管理员用户:admin,密码:westos
2.管理员登录后,可管理用户信息
3.用户信息包括:1添加用户信息,2删除用户信息,3查看用户信息,4退出
print(‘管理员登录’.center(50,’*’))
aduser = input('Username: ')
adpasswd = input('Password: ')

#系统用户信息
users = [‘root’,‘redhat’]
passwd = [‘123’,‘456’]

if aduser == ‘admin’ and adpasswd == ‘westos’:
print(‘管理员登录成功!’)
print(‘用户登录’.center(50, ‘’))
while True:
print("""
菜单
1.添加用户信息
2.删除用户信息
3.查看用户信息
4.退出
“”")
choice = input('请输入你的选择: ‘)
if choice == ‘1’:
print(‘添加用户信息’.center(50,’
’))
adduser = input(‘添加用户名: ‘)
if adduser in users:
print(‘用户%s已经存在’ %adduser)
else:
addpasswd = input(‘密码: ‘)
users.append(adduser) #添加用户名
passwd.append(addpasswd) #添加对应的密码
print(‘用户%s添加成功’ %adduser)
elif choice == ‘2’:
print(‘删除用户信息’.center(50, ‘’))
deluser = input('删除用户名: ')
if deluser in users:
delindex = users.index(deluser)
users.remove(deluser) #删除列表中指定的用户名
passwd.pop(delindex) #弹出用户名对应的密码
print(‘删除用户%s成功’ %deluser)
else:
print(‘用户%s不存在’ %deluser)
elif choice == ‘3’:
print(‘查看用户信息’.center(50, '
’))
print(’\t用户名\t密码’)
userlenth = len(users) #储存用户名列表的长度
for i in range(userlenth):
print(’\t%s\t%s’ %(users[i],passwd[i]))
elif choice == ‘4’:
exit()
else:
print(‘请输入正确的选择!’)
else:
print(‘管理员登录失败!’)
运行结果:
登陆界面:
在这里插入图片描述
查看用户信息:
在这里插入图片描述
添加用户信息:
在这里插入图片描述
在这里插入图片描述
删除用户信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
退出:
在这里插入图片描述
测试:
用列表实现栈的常规操作:
1.入栈 2.出栈 3.栈顶元素 4.栈的长度 5.栈是否为空
list = []
while 2 > 1:
print(‘栈的实现’.center(50, ‘*’))
print(""“1.入栈
2.出栈
3.显示栈顶元素
4.显示栈的长度
5.栈是否为空
6.显示当前栈
7.退出”"")
i = int(input(‘请输入要执行的操作:’))
if i == 1:
element = input(‘请输入要入栈的元素:’)
list.append(element)
print(list)
elif i == 2:
if len(list) == 0:
print(‘栈为空,无法出栈’)
else:
pop = list.pop()
print(list)
print(‘出栈的元素为:%s’ % (pop))
elif i == 3:
if len(list) == 0:
print(‘栈为空,无栈顶元素’)
else:
print(‘栈顶元素为:%s’ % (list[-1]))
elif i == 4:
print(‘栈的长度为:%d’ % (len(list)))
elif i == 5:
if len(list) == 0:
print(‘栈为空’)
else:
print(‘栈不为空’)
elif i == 6:
print(list)
elif i == 7:
exit()
else:
print(‘请输入正确的选项!!!’)
运行结果:
入栈:
在这里插入图片描述
在这里插入图片描述
显示栈顶元素:
在这里插入图片描述
显示栈的长度:
在这里插入图片描述
判断栈是否为空:
在这里插入图片描述
显示当前栈:
在这里插入图片描述
出栈:
在这里插入图片描述
在这里插入图片描述
退出:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值