一、序列
成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类型统称为序列。
序列数据类型包括:字符串,列表,和元组类型。
特点: 都支持下面的特性
索引与切片操作符
成员关系操作符(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('请输入正确的选项')