Python列表

1.列表的创建

"""
数组:存储同一数据类型的集合score=[10,20,30]
列表:可以存储任意数据类型的集合
"""
#列表里可以存储任意数据类型
li=[1,1.2,'hello',True]
print(li)
print(type(li))

#列表嵌套
li1=[1,1.3,'hello',[1,23,3,4,5]]
print(li1)
print(type(li1))

注:列表中可以嵌套列表。

2.列表的特性:

service=['http','ssh','ftp','dns']
#索引
# 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('mysql' in service)
# print('mysql' in service1)

#迭代
# print('显示所有服务'.center(50,'*'))
# for se in service:
#     print(se)
# print('服务显示完毕'.center(50,'*'))

#列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
#索引
# print(service2[0][1])
# print(service2[-1][-1])
#切片
print(service2[1])
print(service2[:-1][-1])
print(service2[0][:-1])

3.列表的练习:

#假定有下面的列表:
names=['fentiao','fendai','fensi','apple']
#输出结果为:'I have fentiao,fendai,fensi and apple'
print('I have '+','.join(names[:-1])+' and '+names[-1])
print('---'.join(names[:]))
#在join()括号里面的字符中间加上前面的字符

4.列表的添加:

添加方法1 :

print(service+['firewalld'])     ##这样的添加的方法是直接的,需要注意的是在添加的时候需要加上中括号,就是直接添加的时候要添加同一数据类型的数据。

就是只能在后面接上list类型的数据

2.append:追加一个元素到列表中:

service.append('firewalld')     ###将firewalld添加到列表后面。

print(service)                         

注:append方法的添加方式只能添加一个数据到列表中

在用append添加一个列表的时候会将一整个列表添加到这个列表中。

3.extend:拉伸,追加多个元素到列表中:

service.extend(['firewalld','mysql'])      ###将firewalld和mysql加入到service列表中

4.insert:在制定索引位置插入元素

service.insert(1,'samba')

print(service)

 

5.删除列表中的元素

1.用pop函数

service.pop()     ###将service列表中的元素弹出来

默认是从service中最后一个元素开始弹出来:

弹出之后数组中的元素会变。

2.用service.remove函数

service=['http','ssh','ftp','dns']

service.remove('http')

将对应的元素删除,但是pop删除的时候会将弹出的数据存储,用remove删除的时候会直接将元素在内存空间中删除。

3.从内存中删除列表:

service=['http','ssh','ftp','dns']
del service
print(service)

NameError: name 'service' is not defined

基于列表的用户登录程序:

users=['root','westos']
passwd=['123','456']
for i in range(3):
    i+=1
    name=input('请输入用户名:')
    if name in users:
        index=users.index(name)
        password=input('请输入密码:')
        if password == passwd[index]:
            print('登录成功!')
            break
        else:
            print('密码输入错误!请重新登录!')
    else:
        print('用户不存在!')

实验结果:

脚本目标:

编辑一个具体增删查的会员管理系统:

代码实现:

huiyuan= ['sun']
huiyuanpasswd= ['123']
for i in range(3):
    print('管理员登录'.center(50, '*'))
    inuser = input('username:')
    inpasswd = input('password:')
    if inuser=='admin' and inpasswd=='admin' :
        while True:
            print("""
                操作目录
            1,添加会员信息
            2.删除会员信息
            3.查看会员信息
            4.退出
            """)
            choice=int(input('请输入你要进行的操作:'))
            if choice == 1:
                addname=input('请输入要添加的会员名字:')
                if addname in huiyuan:
                    print('会员名已被占用!')
                else:
                    huiyuan.append(addname)
                    addpasswd=input('为会员%s设置密码:'%addname)
                    huiyuanpasswd.append(addpasswd)
                    print('添加成功!')
            elif choice== 2:
                delname=input('请输入要删除的会员:')
                if delname in huiyuan:
                    caozuoqueren=input('确认要删除会员%s吗?y/n'%delname)
                    if caozuoqueren == 'y':
                        index=huiyuan.index(delname)
                        huiyuan.pop(index)
                        huiyuanpasswd.pop(index)
                        print('会员%s已经成功删除'%delname)
                    else:
                        print('删除操作取消')
                else:
                    print('查无此人!')
            elif choice == 3:
                print(huiyuan[:])
                print(huiyuanpasswd[:])
            else:
                print('输入有误')
    else:
        print('密码错误!你还有%d次机会'%(2-i))

zuoye:

import random
num=int(input('请输入你要产生多少个数:'))
t=set([])
for i in range(num) :
    t.add(random.randint(1,1000))
print(sorted(t))

6.列表的修改

#1.通过索引直接赋值
service=['http','ssh','ftp','dns']
# service[0]='httpd'
# print(service)


#2.通过切片,一次性赋多个值
service[:2]=['samba','nfs']
print(service)

列表的查看:

 service = ['http','ssh','ftp','dns','ftp']
print(service.count('ftp'))
print(service.count('ssh'))

  1. 查看元素出现的次数:
  2. 查看指定元素的索引值

    service = ['ftp','http','ssh','ftp','dns']

    print(service.index('http'))
    print(service.index('ftp',1,4))

列表的排序:

排序:

实验代码:

service = ['http','ssh','ftp','dns']
service.sort()
print(service)

实验结果:

这个排序是按照ascii码来排序的。

打乱:

代码:

import random
li = list(range(10))
print(li)
random.shuffle(li)
print(li)
li.sort()
print(li)

 结果:


"""
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']

if inuser == 'admin' and inpasswd == 'admin':

    print("""
        操作目录
    1. 添加会员信息
    2. 删除会员信息
    3. 查看会员信息
    4. 退出
    """)

    choice = input('请输入您的选择:')
    if choice == 1:
        pass
    elif choice == 2:
        pass
    elif choice == 3:
        pass
    elif choice == 4:
        exit()
    else:
        print('')
else:
    print('')

实验结果:

练习:

栈的工作原理
 入栈
 出栈
 栈顶元素
 栈的长度
 栈是否为空

代码:

li=['westos']
print("欢迎使用栈".center(50,'*'))
inuser=input("请输入会员名:")
inpasswd= input('请输入密码:')
if inuser=='admin' and inpasswd=='admin':
    print("""
    1. 入栈
    2. 出栈
    3. 栈顶元素
    4. 栈的长度
    5. 栈内元素
    """)
    while True:
        inopt=input('请输入您的操作:')
        if inopt=="1":
            innum=input('请输入入栈元素:')
            li.append(innum)
            print("元素%s已经添加"%innum)
        elif inopt=="2":
            appout=li.pop(li.index(input("请输入出栈元素:")))
            print("元素%s已经删除"%appout)
        elif inopt=="3":
            print("栈顶元素".center(50,'*'))
            print(li[-1])
        elif inopt=="4":
            print("查看当前栈的长度".center(50,'*'))
            print("当前栈的长度是:%d"%len(li))
        elif inopt=='5':
            print("查看栈内元素".center(50,'*'))
            print(li)
        else:
            print("没有该选项!")
else:
    print("您没有当前栈的使用权!")

测试:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值