(共14张PPT)
3.2.2 python语言基础
(四)
教学目标
掌握三种基本数据结构
理解掌握数据结构在解决实际问题的应用
#TempConvert01.py
TempStr=input("请输入带符号的温度值:")
if TempStr[-1] in ['F','f']:
C=(float(TempStr[0:-1])-32)/1.8
print('转换后的温度是:{:.2f}C'.format(C))
elif TempStr[-1] in ['C','c']:
F=1.8*float(TempStr[0:-1])+32
print('转换后的温度是:{:.2f}F'.format(F))
else:
print("输入格式有误")
整型,实型,布尔型,字符串型,它们是最基本的数据。在实际编程中,我们经常需要根据数据之间的逻辑关系和处理任务的要求,将各种数据组合成具有一定结构的复合体,数据结构就是一些数据组合得到的“复合”数据类型。list(列表)和dict(字典)就是python中常用的数据结构。
字符串
列表
字符串:由0个或多个字符组成的序列,用''或" "或''' '''表示
列表(list):由0个或多个元素组成的序列,元素可以是数字,字符串等混合类型的数据,也可以是列表和字典。
用[]来表示,元素之间用逗号“,”分隔,列表创建后可根据需要改变元素值,也可添加新元素
字典:由0个或多个元素组成,字典中每个元素包含两个部分:键和值。
键通常用字符串或数值来表示,值可以是任意类型的数据,键和值两者一一对应,且每个键只能对应一个值,元素用{}表示。
字符串
x = "Hello,World!"
x[0]
x [1]
x [5]
x [0:4]
x [ : ]
H
e
,
Hell
Hello,World!
索引 H e l l o , W o r l d !
正索引 0 1 2 3 4 5 6 7 8 9 10 11
逆索引 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
x[-12]
x [-11]
x [-7]
x [-12:-8]
x[-12:]
x [0:4:1]
x [::]
x[::1]
x[0:-8]
访问一定范围内的多个字符,访问方式为:
字符串名 [开始元素序号:结束元素序号下一序号:步长],步长为1时可省略
x[-12::2]
HloWrd
!dlroW,olleH
x [-1 ::-1 ]
x [ ::-1 ]
x[::2]
列表
inf=["1066","香蕉",50]
inf[2]
inf[0:2]
50
["1066","香蕉"]
都是由一些数据元素共同组成的一个序列整体 字符串 由0个或多个字符组成的序列,字符串是一个整体,不能再赋值
列表 由0个或多个元素组成的序列,其中的元素可以是数字、字符串、其他列表等,列表中各位置的元素可通过赋值改变
创建以后都可进行某些特定操作,如提取序列中的一部分元素、判断某个元素是否 序列的成员等 都是通过索引来定位,元素可以通过索引进行访问 s=”Hello” Info=["BH60018","苹果","red",50,8.8]
访问一定范围内的多个元素,访问方式为:
列表名或字符串名 [开始元素序号:结束元素序号下一序号:步长]
inf[0]=’2001’
inf[2]=100
100
["2001","香蕉"]
字典
与列表相似,可包含多个元素。
每个元素包含两部分内容:键和值,键key是索引,值value是数据。
键只能使用用字符串、数值,值可以是任意类型的数据。
键和值两者一一对应,键必须是唯一的,且每个键只能对应一个值。
字典通过键访问
形如:d={key1:value1,key2:value2,……}
>>> dic={"铅笔":71,"钢笔":59,"橡皮":98,"尺子":92}
>>> dic["铅笔"]
71
列表和字典
列表 字典
形如 Info=["BH60018","苹果","red",50,8.8] dic={"铅笔":71,"钢笔":59,"橡皮":98,"尺子":92}
访问方式 元素都是有顺序的,可以按照索引号获取单个元素,也可以用分片的方法来进行多个连续元素的获取。 字典里的对象是无序的,是通过一对对的键和值来反映一种映射关系。通过键来存取对应的值。
通过索引访问 Info[-1] Info[start:end:step] 通过键访问
dic["铅笔"]
修改元素的值的方式 Info[2]=”green” ["BH60018","苹果","green",50,8.8] dic[“钢笔”]=90
{"铅笔":71,"钢笔":90,"橡皮":98,"尺子":92}
它们都是根据数据之间的逻辑关系和处理任务的要求,将各种数据组合成具有一定结构的复合体,是数据结构。
s=‘123student89’ Info=[‘BH60018’,’苹果’,’red’,50,8.8] 代码 结果 代码 结果
s[0:] Info[0:]
s[:] Info[:]
s[::2] Info[::2]
s[::-1] Info[::-1]
s[::-2] Info[::-2]
s[-2:-5:-2] Info[-1:-4:-2]
'123student89'
'123student89'
'13tdn8'
'98tneduts321'
'9teus2'
'8n'
['BH60018', '苹果', 'red', 50, 8.8]
['BH60018', '苹果', 'red', 50, 8.8]
['BH60018', 'red', 8.8]
[8.8, 50, 'red', '苹果', 'BH60018']
[8.8, 'red', 'BH60018']
[8.8, 'red']
随堂练
随堂练
1.在Python中,s="中国女排精神",t="女排精神",下列选项正确的是( )
A. print(t in s)将输出False
B. print(s[2:4]将输出字符串"女"
C. print(len(t))将输出数字4
D. print(s[2:4])和print(t[0:2])输出结果不相同
2.字典 dict = {'Name': 'Jian', 'Age': 18, 'Class': '001'},要得到字典中键为“Age”的值的代码是 _______________________
C
dict[Age]
字典和列表的相互嵌套
#小组成员的分组情况存储在students中,学员成绩存储在scores中
students={"第一小组":["小红","小明","小张"],"第二小组":["小黄","小霞","小斌"],"第三小组":["小蓝","小华","小诚"]}
scores=[{"小红":90,"小明":80,"小张":75},{"小黄":86,"小霞":70,"小斌":89},{"小蓝":67,"小华":90,"小诚":77}]
#访问第二小组第1位学员的姓名
#访问小明的学习成绩
print(stu1,sco1)
stu1=students["第二小组"][0]
sco1=scores[0]["小明"]
#访问并输出第三小组第2位学员的姓名和成绩
stu2=students["第三小组"][1]
sco2=scores[2][“小华”] 或sco2=scores[2][stu2]
print(stu2,sco2)
《作业本》P37-3
火柴棍游戏
字典 列表
num=int(input("请输入一个一位数:")) match={0:6,1:2,2:5,3:5,4:4,5:5,6:6,7:3,8:7,9:6} count=match[num] print("共需火柴棍:",count) num=int(input("请输入一个一位数:"))
match=[6,2,5,5,4,5,6,3,7,6]
count=match[num]
print("共需火柴棍:",count)
《作业本》P37-4(1)
火柴棍游戏
方法一 方法二
num=int(input("请输入一个三位数:")) match=[6,2,5,5,4,5,6,3,7,6] a=num//100 b=num//10%10 c=num%10 count=match[a]+match[b]+match[c] print("共需火柴棍:",count) num=
match=[6,2,5,5,4,5,6,3,7,6]
a=num[0]
b=num[1]
c=num[2]
count=match[a]+match[b]+match[c]
print("共需火柴棍:",count)
input("请输入一个三位数:")
a=int(num[0])
b=int(num[1])
c=int(num[2])
《作业本》P37-4(2)
ID=input("请输入十八位身份证号码:") #输入身份证号
sex={0:"女",1:"男",2:"女",3:"男",4:"女",5:"男",6:"女",7:"男",8:"女",9:"男"}
ID_birth=ID[6:14]
ID_sex=ID[16]
ID_check=ID[17]
#求出year,month,day
year=
month=
day=
print("出生日期:"+year+"年"+month+"月"+day+"日")
print("性别:", )
ID=list(ID) #把字符串转换成列表
ID=list(map(int,ID[0:17])) #把前17个元素转成整型
ID_CHECK=["1","0","X","9","8","7","6","5","4","3","2"]
ID_birth[0:4]
ID_birth[4:6]
ID_birth[6:8]
sex[int(ID_sex)]