- python基础知识之序列
- 一、列表
- 1.1列表的概念和作用
- 1.2 列表的创建
- 1.3 切片
- 1.4 通用 *** 作
- 二、序列
- 2.1 序列的概念
- 2.2 列表的修改和列表的方法
- 2.3 列表的遍历
- 三、EMS项目练习(员工管理系统)
- 3.1 功能
- 3.2代码
- 四、元组
- 4.1基本概念
- 4.2用法
1.列表就python中的一个对象,对象就是内存中专门用来存放数据的一块区域
2.对象只能保存单一的数据,而列表是可以保存多个有序的数据,有点类似与数组的意思。
3.列表存储的数据称为元素,
1.通过[]来创建列表,如;my_list = [] # 创建了一个空列表
2.一个列表中可以存储多个元素,也可以创建列表时,指定列表中的元素。如;my_list = [10] # 创建了一个只包含一个人元素的列表。当向列表中添加多个元素时,元素之间用 “,” 隔开;如 my_list = [10,20,30]
3.列表中可以存放任意的对象,并且列表的元素都会按照插入的对象依次保存到第一个存储位置到最后一个位置:
4.我们可以通过索引index来获取列表中的元素,注意索引的下标是从0开始的,索引超过最大范围则会抛出异常,如果索引是负数则所得的元素是倒数所得的元素;通过:
My_list = [10, 20, 30] print(My_list[2])
5.可以通过函数len()获得列表的长度,获得的值是索引下标的最大值加一的值。
1.即就是可以通过切片来获得指定的元素,语法是:列表[起始:结束] 注意,得到的元素包括起始位置,不包括结束位置 ,也可以用;列表[起始:结束:步长],步长表示间隔元素默认是1,可以是负数,但是不能是0。
2.如果省略起始位置则会从第一个元素开始截取,如果全部省略则相当于创建了一个副本
1.“+”可以将两个列表拼接成一个列表,“*”可以将列表重复指定的次数。
2.in可以来检查指定元素是否存在列表中返回false或者true,not in 来检查指定元素是否不在列表中返回false或者true
3.min(),max()获取最小值和最大值的函数。
4.方法:方法和函数基本一致,只不过方法必须通过对象.方法名的形式调用,如:s.index()获取指定元素在列表中第一次出现的索引。
index()的第二个参数表示表示查找的起始位置,第三个参数表示查找的结束位置,如果要获取的列表中没有元素,则会报错,s.count()统计指定元素在列表中的次数。
1.序列是python中最基本的数据结构,序列是用于保存一组有序的数据,所有的数据在序列中都有一个人唯一的位置(索引)并且序列中的说数据会按照添加的顺序来分配索引。
2.序列的分类:
可变序列(序列中的元素可以改变):
> 列表(list)
不可变序列(序列中的元素不能改变):
> 字符串(str)
> 元组(tuple)
1.直接通过索引修改列表中的元素,如;my_list[1] = '800',可以通过删除指定的元素。
2.通过切片修改列表,但是在给切片赋值时只能使用序列,
stus[0:0] = ['A'] # 向索引为0的位置插入元素。
del stus[0:2]可以删除前两个元素。
del stus[::2]也可以对列表中的元素进行删除。
注:以上的 *** 作只是适用于可变的序列。不可变的序列不能通过索引的方法修改。
3.不可变序列可以通过函数list()转换成可变的序列。
4.列表的方法:
(1)append() #向列表的最后添加一个元素,insert(i,j) **# 向列表的指定位置插入一个元素(i表示插入的位置,j表示要插入的元素)**注:用的时候都是通过列表名调用。
(2)extend() # 使用新的序列来扩展当前的序列,用时需要一个序列作为参数,它会将该序列的元素添加到当前的列表中
(3)clear() # 清空序列,pop(i)根据索引删除并返回删除的元素,i为指定的元素,不写则删除最后一个元素。
(4)remove() # 删除指定值的元素,如果有多个元素的值相同只会删除第一个
(5)reverse() # 用来反转列表,即是顺序颠倒
(6)sort() # 用来对列表中的元素进行排序,默认是升序排列
通过my_list.sort()
如果需要降序排列只需要在sort(reverse=True)即可
7.range()函数:# 用来生成一个自然数的序列
r = range(5) print(list(r))
(1)该函数需要三个参数;起始位置(可省略,默认是0)、结束位置,步长(可省略,默认是0)
(2)通过range()可以创建一个指定次数的for循环
1.通过循环索引即可遍历列表:
i = 0 wile i < len(列表名) :#len()获取列表长度 print(列表名[i]) i += 1
2.通过for循环遍历:
语法:
for 变量 in 序列 :# 每执行一次就会将序列中的元素赋值给变量,序列中有几个元素就执行几次。 代码块
所以我们可以通过变量来获取元素即可实现编列。
三、EMS项目练习(员工管理系统) 3.1 功能(1)四个功能:
查询:显示所有员工
添加:添加当前的员工进系统
删除:将员工从系统删除
退出:退出系统
# EMS系统 # "python.linting.flake8Enabled": true,,这可以使你的代码标准化 # 1.显示换欢迎信息 from typing_extensions import runtime print('_' * 20, '欢迎使用员工管理系统') # 创建一个列表,用来保存员工的信息 emps = ['孙悟空t18t男t花果山'] # 创建一个死循环 while True: # 显示用户的选项 print('请选择要做的 *** 作:') print('t1.查询员工') print('t2.添加员工') print('t3.删除员工') print('t4.退出系统') user_choose = input('请选择[1-4]:') print('_' * 62) # 根据用户的选择做相关的 *** 作 if user_choose == '1': # 查询员工 # 打印表头 print(' 序号t 姓名 t年龄 t性别 t住址') # 创建一个变量,表示员工的序列 n = 1 # 显示员工信息 for emp in emps: print(f't{n}t{emp}') n += 1 pass elif user_choose == '2': # 添加员工 # 获取要添加员工的信息,姓名、年龄、性别、住址 emp_name = input('请输入员工的姓名:') emp_age = input('请输入员工的年龄:') emp_gender = input('请输入员工的性别:') emp_adderss = input('请输入员工的住址:') # 创建员工信息 emps.append(f'{emp_name}t{emp_age}t{emp_gender}t{emp_adderss}') # 显示员工信息 # print('员工:'+ emp +'将会被添加到系统中,是否确认该 *** 作[Y/N]:') print('以下员工将被添加到系统') print('_'*62) print('姓名t年龄t性别t年龄') print(emp) print('_'*62) user_confirm = input('是否确认该 *** 作[Y/N]:') # 判断 if user_confirm == 'y' or user_confirm == 'yes': # 确认 # 将信息拼接成字符串,插入在列表中 emps.append(emp) print('添加成功!') else: # 取消 *** 作 print('添加已取消!') elif user_choose == '3': # 删除员工,根据员工的序号来删除 del_num = int(input('请输入眼删除的员工的序号:')) # 判断序号是否有效 if 0 < del_num <= len(emps): # 输入合法,根据序列来获取索引 del_i = del_num - 1 # 显示一个提示信息 print('以下的员工将被删除') print('_'*62) print('t序号t姓名t年龄t性别t住址') print(f't{del_num}t{emps[del_i]}') print('_'*62) user_confirm = input('该操作不可恢复,是否确认该操作[Y/N]:') # 判断 if user_confirm == 'y' or user_confirm == 'yes': # 删除元素 emps.pop(del_i) # 显示提示 print('员工已经被删除!') else: print('您输入的有误,请重新输入!') pass elif user_choose == '4': # 退出 print('欢迎使用!再见') input('点击回车键退出') break else: print('您输入的有错,请重新输入!') # 分割线 print('_' * 62)
注:这个练习结合了第一天的内容
1.元组 tuple 是一个不可变的序列,他的 *** 作和列表基本一致,一般在希望数据不改变的时候使用
2.用“()”来创建元组,如my_tuple = () #创建了一个空元组,
my_tuple = (1,2,3,4,5) # 创建了一个五个元素的元组
注,元组中的元素是不可以更改的,比如;my_tuple[3] = 10打印时就会报错,但是元组变量可以改
3.当元组不是空元组时,()是可以省略,如果不是空元组,它里面至少有一个逗号.
1.元组的解包,即是元组的每一个元素都赋值给指定的变量
my_tuple = 10,20,30,40 a,b,c,d = my_tuple print("a = ",a) print("b = ",b) print("c = ",c) print("d = ",d)
可以利用元组解包交换两个变量的值a,b = b,a即可交换
2.对元组进行解包时,变量的数量必须和元组中的元素的数量一致,在变量前面添加一个 * ,变量将会获取元组中所有剩余的元素,但是同时出现两个以上的 *
my_tuple = 10,20,30,40 a,b,*c = my_tuple print(a,b) print('c' = ,c)
3.同样的对于字符串也可以解包.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)