Python基础——列表与元组
程序员文章站
2022-07-14 14:37:28
...
1.序列的基本操作
- 序列是有顺序的一组数据:字符串、数列、元组
- 序列可以进行索引运算,[索引值],从左往右从0开始,从右往左倒数第几位就-几,从-1开始。
- 序列可以乘一个整数,进行重复运算。也可以使用+,进行拼接运算。
- 序列可以进行长度、最大值、最小值操作
2.列表的定义
3.访问列表
使用下表索引来访问列表的值,同样也可以用方括号的形式截取字符
4.列表的切片操作
切片:就是从序列中取出一部分元素。[开始位置:结束位置:步长]。如果不设步长,步长为1.包含开始为位置。
5.修改列表
- 生成一个空列表
- append方法用来向列表中添加单个值,添加在列表最后;extend方法用来添加一组值,添加在列表最后.
- insert方法用来向列表中在指定位置添加一个值。要想在指定位置添加一组值,必须使用切片操作。
6.操作列表的函数
- 列表的复制
- 列表元素的删除
- 删除整个列表
- pop可以删除列表中的最后一个值,并且返回这个值。也可以指定位置删除。
- count可以统计一个值在列表中出现的次数
- remove可以删除一个指定的值,如果列表中有重复的值,只删除第一个
- 如果不确定一个值是否在列表中,请判断后再删除。否则如果不在程序中容易造成死循环。
- index可以查出一个值在列表中出现的位置
- 列表的值替换:or将它前后的值进行或运算,for指定列表的范围。
- enumerate的用法:将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。
- sorted函数用法:把一个序列变成一个从小到大的列表,也可以用reverse参数进行从大到小排序
7.列表的方法
8.元组的定义
元组是不允许被修改的,元组中的元素值是不允许被删除的,如果删除,删除整个元组。
9.访问元组
10.元组的基本操作
11.应用
a.成绩统计
#成绩统计
#随机生成100个学生的成绩,要求给出成绩排名,输出优秀率,及格率,平均分。
import random
db=[]
N=25
for i in range(N):
db.append(random.randint(50,100))#随机分数段范围
print("原始数据:",db)
db.sort(reverse=True)
print("排名","成绩",sep="\t\t")
for i,v in enumerate(db): #若几人成绩相同时,具有相同的排名
if db.count(v)==1:
rank=i+1
else:
rank=db.index(v)+1
print(rank,v,sep="\t\t")
aver=sum(db)/N
good=0
passed=0
for i in db:
if i>=80:
good+=1
passed+=1
elif i>=60:
passed+=1
else:
break
print("平均成绩:",aver)
print("优秀人数:",good)
print("优秀率:",int(good/N*100),"%",sep="")
print("合格人数:",passed)
print("合格率:",int(passed/N*100),"%",sep="")
执行结果如下:
b.星期计算
#星期计算,已知2019年1月1日是星期二
week=("一","二","三","四","五","六","天")
month=(31,28,31,30,31,30,31,31,30,31,30,31)
print("请输入一个查询日期:")
m=0
d=0
while m not in range(1,13):
m = int(input("月:"))
if m in range(1,13): #输入检测
break
print("输入有误,请重新输入!")
while d not in range(1,month[m-1]+1):
d = int(input("日:"))
if d in range(1,month[m-1]+1): #输入检测
break
print("输入有误,请重新输入!")
#计算出是今年第几天
days=sum(month[:m-1])+d
print("这一天是全年第"+str(days)+"天!")
#计算星期
result=week[days%7]
print("这一天是星期"+result+"!")
执行结果如下: