(共15张PPT)
Python基本数据结构
年 级:高一年级 学 科:信息技术(浙教版)
1 掌握基本数据结构
掌握python基本数据结构,灵活运用,完成相关表达式的书写录入。
3 常见的内置函数
了解一些其他常见的内置函数,结合具体项目应用加以理解
2 循环的基本结构
掌握for和while循环的基本结构,能够进行简单循环结构的编程
学习目标
P89第3题,如何按要求提取身份证信息并输出相应的结果:
情境导入
由题干可知:身份证是一个18位的号码,由6位数字地址码、8位数字生日码、3位数字顺序码和一位校验码。
完成相关编程,只需要按位截取相应的数据即可。
2.抽象建模:本题较为简单,身份证本来就是一组抽象好的编码,只需提取加工即可。
3.算法设计:①先让用户输入18位身份证号
②截取生日年份4位、截取生日月份2位和日2位
③截取倒数第2位,并判断奇偶数,以确定性别
④输出相应格式,可用各字符串相连接(+)
用到的核心算法就是字符串的截取。
思考:如果截取指定位置指定长度的字符呢??
4.算法描述:自然语言,如上。流程图……计算机程序语言
问题分析
字符串 (string),简记为 str,使用 ' ' 或 " " 或三引号括起来的一系列字符
由0个或多个字符组成的序列,是同类型的。
比如:" 汉字" ," x" , " hello" ," 123"
列表(list), 由0个或多个元素组成的序列 ,可以是数字、字符串等混合类型 的数据,也可以是其他列表。用[ ]来表示,元素用,进行分隔。
比如:info=["BH60018 " ,"苹果" ,50]
字典(dictionary),字典和列表类似,也可以含有多个元素,字典中每个元素都包含两个部分:键和值,键通常用字符串或数值表示,值可以
是任意的类型。比如:dic={"铅笔 " :71," 钢笔" :59," 橡皮" :98," 尺子" :92}
基本数据结构
如果s="Hello" ,请试着对s进行操作,写出得到以下结果的表达式:
表达式 _____________ 可得到"H"
表达式 _____________ 可得到"ll"
表达式 _____________ 可得到"o"
表达式 _____________ 可得到"Hell"
表达式 _____________ 可得到"ello"
探究一:字符串切片
1.字符串的首字符的下标为 0
2.从某起始下标截取到终止下标,中间用 : 隔开,并且(包含 )起始下标字符,但是不包含 终止下标字符,即为一个左闭右开的区间内的字符。
3.截取到的字符的个数(长度)为终止下标和起始下标的 ,即冒号后两正向下标数字的差。
4.切片的起始、终止下标分别为原字串的最起始(下标为0)和最末尾时,可省略不写。如:s[3:],可获得"lo"
1. len(s) 可获得字符串的长度,即字符串中的所有字符的个数,包括空格和标点,一个汉字计 1个字符,此函数也适用于其他序列型数据。
如:s="Hello World!"
b=len(s) 则b的值为12
2 s.index(a) 可返回a元素在s字串中的位置(即下标),此函数也可用于其他序列型数据的操作。
如:s="Hello",则s.index("e")的结果是1 。
3 i in s 可用来判断i是否在序列s中,如果在,则返回True,否则返回False。
也可用于循环语句遍历字串中的元素。
字符串的相关函数及操作
探究一:身份证号码提取
id=input("请输入18位身份证号:")
year=id[ ] #请先补充完整切片的下标数据
mon=id[ ]
day=id[ ]
if int(id[ ])%2==0:
gen="女"
else:
gen="男"
print("您的出生日期为:",___①___,"年"___②___,"月"___③___",日,"+"性别为",___④___)
#按输出格式,补充输出结果空缺的部分
列表也是一种序列,如下可创建列表类型的变量:
ls=['石头','剪刀','布']
列表同字符串一样也可以进行连接、切片截取
1 ls.insert(索引号,对象值) ,即把某个值插入到指定的索引位置前,无返回值。
如ls.insert(3,"锤")
2 ls.pop(索引号),即删除索引位置的值,返回值为删除的元素。参数省略则默认删除最后一个元素。如ls.pop()
3 ls.append(对象值),即把某个元素增加到序列的最末端。
4 ls.remove(对象值),即删除列表中出现的第一个这个值。
5 ls.sort(),默认升序排列列表中的各值
6 ls.reverse(),按位置倒序重置序列
探究二:列表
列表langs = ["C#", "Java", "JavaScript", "Ruby", "Python", "clojure", "Go", "Rust"],
请编写程序在屏幕上输出名称少于6个字符的编程语言。
参考答案:
for lang in langs:
if len(lang) <= 6:
print(lang)
探究二:列表练习
字典:
字典中每个元素包含两个部分内容:键和值.
键通常用字符产或数值来表示,值可以是任意类型的数据.键和值两者一一对应.,且每个键只能对应一个值.
有一个字典 dict = {'Name': 'Jian', 'Age': 18, 'Class': '001'},请问要得到字典中键为“Age”的值的代码是 _____________________________
探究三:字典
【1】kvps={"1":1,"2":2}
TheCopy=kvps
kvps["1"]=5
sum= kvps["1"]+TheCopy["1"]
print(sum)
A、2 B、7 C、1 D、10
【2】以下不能定义的一个字典的语句是( )
A、dict4={(1,2,3):"uestc"}
B、dict1={}
C、dict2={3:5}
D、dict3={[1,2,3]:"uestc"}
字典练习
[背景知识]
为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。 如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。
(提示:(1)所有车牌号中都含有数字,并且车牌号的长度都是6;
(2)以车牌中最后一位阿拉伯数字的奇、偶来决定单双号。)
字典练习
输出单号
课后练习
s=input("车牌号s=")
n=6
x=s[n-1:n]
while x.isdigit()==False:
_①_
x=s[n-1:n]
if _②_==0:
print("双号")
else:
print("单号")
(提示:s[n:m]的功能:从字符串s的"下标为n的元素开始,截取到下标为m-1的元素。例如:s="12345",s[2:4]="34"。s.isdigit(): 判断是否为数字。)
① ②
1.python基本数据结构:字符串、列表、字典
2.掌握for和while循环的基本结构
3.常见的内置函数
总结