内置数据结构列表与元组

一、序列
成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类型统称为序列。
序列数据类型包括:字符串,列表,和元组类型。
特点: 都支持下面的特性
索引与切片操作符
成员关系操作符(in , not in)
连接操作符(+) & 重复操作符(*)
二、列表
数组: 存储同一种数据类型的集和。scores=[12,95.5]
列表(打了激素的数组): 可以存储任意数据类型的集和。

1、列表的创建
列表可以存放多种数据类型,列表的特性:索引,切片,成员操作符,连接和重复
在这里插入图片描述在这里插入图片描述
2、列表的增删改查
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、元组
1、元组的创建,删除及特性
特性: 连接&重复操作符、成员操作符、索引&切片
注意: 元组是不可变数据类型,不能对元组的值任意更改;
在这里插入图片描述
在这里插入图片描述
2、元组的赋值
特性1: 对元组分别赋值,引申对多个变量也可通过元组方式分别赋值
特性2:变量交换
特性3:print打印
在这里插入图片描述在这里插入图片描述
四、命名元组
在这里插入图片描述在这里插入图片描述
五、is和==的区别
1)Python中对象的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

2). is和 == 都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。

3). ==用来比较判断两个对象的value(值)是否相等;(type和value)
is也被叫做同一性运算符, 会判断id是否相同;(id, type 和value)
在这里插入图片描述
六、深拷贝与浅拷贝
赋值: 创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。(=)
浅拷贝: 对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。(li.copy(), copy.copy())
•公用一个值;
•这两个变量的内存地址一样;
•对其中一个变量的值改变,另外一个变量的值也会改变;
深拷贝: 一个变量对另外一个变量的值拷贝。(copy.deepcopy())
•两个变量的内存地址不同;
•两个变量各有自己的值,且互不影响;
•对其任意一个变量的值的改变不会影响另外一个;
在这里插入图片描述

七、云主机管理系统
在这里插入图片描述
在这里插入图片描述

完善后的代码:

prompt = '''
        *****************云主机管理系统*********************
        **************************************************
                1). 添加云主机
                2). 删除云主机
                3). 修改云主机
                4). 查看云主机
                0). 退出系统
                
        **************************************************
'''

from collections import namedtuple
from prettytable import PrettyTable

host_db = []
id = 0
Host = namedtuple('Host', ['id', 'IPv4', 'disk', 'memory', 'name'] )

while True:
    choice = input(prompt)

    if choice == '1':
        print('添加云主机'.center(40,'*'))
        # 添加云主机
        IPv4 = input('IPv4: ')
        disk = input('disk: ')
        memory = input('memory: ')
        name = input('name: ')
        id += 1

        # 存储到数据库
        host_db.append(Host(id=id, IPv4=IPv4, disk=disk, memory=memory, name=name))
        # print(host_db)

        print('添加云主机%s成功' %name)

    elif choice == '2':
        # 删除云主机
        print('删除云主机'.center(40,'*'))
        delete_id = int(input('要删除的id为: '))
        for host in host_db:
            if host.id == delete_id:
                host_db.remove(host)
                print('删除id%s的用户成功' %delete_id)
                break
            else:
                print('要删除的id不存在')

    elif choice == '3':
        # 修改云主机
        print('修改云主机'.center(40,'*'))
        change_id = int(input('请输入要修改的云主机id: '))
        for host in host_db:
            if host.id == change_id:
                host_db.remove(host)
                operate = input('请输入要修改的内容: ')
                content = input('请输入修改后的内容: ')
                if operate == 'disk':
                    Host = list(host)
                    # print(Host)
                    Host[2] = content
                    # print(Host[2])
                    host = tuple(Host)
                    # print(host)
                    host_db.append(host)
                    break

                elif operate == 'memory':
                    Host = list(host)
                    # print(Host)
                    Host[3] = content
                    # print(Host[2])
                    host = tuple(Host)
                    # print(host)
                    host_db.append(host)
                elif operate == 'name':
                    Host = list(host)
                    # print(Host)
                    Host[4] = content
                    # print(Host[2])
                    host = tuple(Host)
                    # print(host)
                    host_db.append(host)
                else:
                    print('请输入正确的操作')

    elif choice == '4':
        # 查看云主机
        print('查看云主机'.center(40,'*'))
        host_table = PrettyTable(field_names=['ID', 'IPv4', 'Disk', 'Memory', 'Name'])
        for host in host_db:
            host_table.add_row(host)
        print(host_table)

    elif choice == '0':
        # 退出
        print('退出'.center(40,'*'))
        exit(0)
    else:
        print('请输入正确的选项')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值