(共24张PPT)
《高二上期末复习》
主讲人:XX老师
易错点
进制记得加上B、D、H
优先级:**大于*、/、//、%大于+、-;not大于and大于or;算术大于关系大于逻辑
关系运算符:==、!=、<=、>=
x/y:用x除以y,产生实数值;x//y:用x除以y,取整数部分
True、False
Python中*不可省略,不可使用分数或百分数
Excel中公式必须以“=”开头
进制转换
按权展开,逐项相加
十进制
二进制
除2取余,倒序输出
按权展开,逐项相加
除16取余,倒序输出
十六进制
每4位二进制转1位十六进制(8421)
每1位十六进制转4位二进制(8421)
某十进制数n转化得到m位二进制,问该二进制数的右k位和左k位对应的十进制数分别是?
右k位对应的十进制数:n % 2k
左k位对应的十进制数:n // 2m-k
十进制数x对16的取余结果与x对应的二进制数的左侧4位相等?
ASCII编码、汉字编码
ASCII字符的十六进制数不会超过7F,即以数字开头的内码对应着ASCII字符,以字母开头的内码对应着汉字字符。
一个ASCII字符占1个字节(一对内码),一个汉字字符(GB2312)占2个字节(2对内码)。
“A”对应的ASCII编码为65;“a”对应的ASCII编码为97;“0”对应的ASCII编码为48。
文件存储容量
音频存储容量=采样频率(Hz)*量化位数(bit)*声道数*时长(s)(位)
图像存储容量=总像素*颜色位深度(位)
视频存储容量=帧图像存储容量*帧频*播放时间(位)
PAL制式的视频每秒播放25帧图像,NTSC制式的视频每秒播放30帧图像
注意区分n色位图和n位图
综合练习
字符串、列表
字符串是由0或多个字符组成的序列,列表是由0或多个元素组成的序列,列表中元素类型可以不同。
字符串或列表中的元素可以通过索引进行访问,第一个元素的索引为0。
通过切片获取字符串或列表中的多个元素,格式为变量名[start:end:step],其中step默认为1,表示返回从start到end-1范围内的元素。
字符串或列表逆序:变量名[::-1]
操作 说明
a+b、a*n 拼接字符串a和b,将字符串a重复n遍
del lst[index]、lst.pop(index) 删除列表中index下标对应的元素
lst[index]=x 修改列表中index下标对应的元素为x
lst.append(x) 将元素x添加到列表末尾
lst.insert(index,x) 将元素x插入到列表中index下标处
lst.sort() 对列表中元素进行升序排序,当reverse=True时为降序
索引用方括号[]
函数用圆括号()
字典
字典是用来存储具有映射关系的数据,字典中的每个元素包含两部分:键和值(一一对应)。
键和值在字典中以成对的形式出现,并以如下方式标记:d={key1:value1,key2:value2,……}。
字典中的元素之间没有顺序关系,通过键可访问其对应的值,反之则不行。
操作 说明
dic[“x”] 获取键x对应的值
del dic[“x”]、dic.pop(“x”) 删除键为x的键值对
dic[“x”] = n 修改(或添加)键为x值为n的键值对
dic.keys()、dic.values()、dic.items() 得到字典所有的键、值、键值对
dic.update(dic1) 将字典dic1中的键值对一次性全部添加到dic中
常见函数
函数 描述 举例
int(x) 将字符串或数字转化为整型 int(“123”)=123、int(1.5)=1、int(-1.2)=-1
str(x) 将x转化为字符串 str(123)=“123”
float(x) 将字符串和数字转化为实型 float(“12.3”)=12.3、float(1)=1.0
abs(x) 返回x的绝对值 abs(-2)=2
len(x) 返回序列x的长度 len(“123”)=3、len([“1”, “2”])=2
chr(x) 返回Ascii码所对应的字符 chr(65)=“A”
ord(x) 返回x对应的Ascii码 ord(“A”)=65
round(x, n) 返回x的四舍五入值(保留n位小数) round(5.325,2)=5.33
max(s) 返回序列s中的最大值 max([1,4,5,3,2])=5
min(s) 返回序列s中的最小值 min([1,4,5,3,2])=1
sum(s) 返回序列s的和 sum([1,4,5,3,2])=15
综合练习
1.已知s='abcdefgh',则s[1:5:2]+s[-1:-7:-2]的值是
A.’bdhfd’ B.’bdfhfdb’ C.’achfd’ D.’acehfdb’
2.已知字典dic={101:”my”,102:”name”,103:”is”,104:”Lily”},现在要将键为104对应的值更新为”LiHua”,下列语句正确的是?
A. dic[104:”Lily”]=[104:”LiHua”] B.dic[104]={“LiHua”}
C. dic[104]=”LiHua” D.dic[3]=”LiHua”
循环结构
for循环是计数器控制循环,会重复特定的次数。
while循环是条件控制循环,根据条件的真假来控制循环的执行。
break语句结束整个循环,continue语句结束本轮循环转而执行下一轮循环。
for、while循环正常结束后执行对应的else语句,若使用break跳出循环则对应的else语句不执行。
total = 0
for i in range(20):
if i % 2 == 0:
continue
total += i
if total > 20:
break
else:
print(“此循环正常结束”)
print(total)
s = ""
n = int(input("请输入正整数n:"))
while n > 0:
s = str(n%2) + s
n //= 2
print("结果:",s)
函数
函数是组织好的、可重复使用的、实现特定功能的代码段,通过函数名(参数列表)的方式来调用。
使用return语句来返回值给调用方,若无return语句相当于返回None。
局部变量是指在函数内部定义的变量,仅在函数内部有效;全局变量是指在函数外部定义的变量,在程序执行全过程均有效。(参考猫眼)
def test(a,b):
return a*b
print(test(3,4))
print(test(3,"hello"))
模块
使用import 模块名的方式导入整个模块,以模块名.函数名的格式使用。
使用from 模块名 import 函数名的语句直接导入特定的函数,直接以函数名的格式使用。
常见函数
函数 描述 举例
math.pi 圆周率Π math.pi≈3.1415926535…
math.ceil(x) 对x向上取整 math.ceil(1.2)=2
math.floor(x) 对x向下取整 math.ceil(1.2)=1
math.sqrt(x) 求x的平方根 math.sqrt(9)=3.0
math.pow(x,y) 指数运算,得到x的y次方 math.pow(4,2)=16.0
random.random() 随机生成一个[0,1)范围内的实数 \
random.randint(a,b) 随机生成一个[a,b]范围内的整数 \
random.choice(s) 从序列s中随机挑选一个元素 random.choice(range(9)),从0-9中随机挑选一个整数
排序、筛选
1.选取数据区域
排序的区域只能连选,呈矩形状的单一区域
避开合并单元格
不能只选定关键字进行排序,而应将参与排序数据的整条记录全部选中后再排序
2.确定主要关键字、次要关键字,设置对应的排序依据和排序次序
先按主要关键字排序,当主要关键字相同按次要关键字排序
数据包含标题,则Excel自动将所选区域的第一行理解为标题,不参与排序;数据不含标题,则所选区域即为排序区域,全部参与排序
筛选:符合筛选条件的显示,不符合条件的隐藏,一般通过选取标题行进行筛选。
多条件筛选:筛选结果为多个条件的交集。
数据图表
图表和数据区域相关联,当图表引用的数据区域发生变化时(数据修改、排序、筛选等),该图表也随之发生变化;但设置单元格小数位数一般不影响图表。
根据图表判断数据区域:根据x轴、y轴选定数据区域,根据图例选定标题区域,最终数据区域呈现矩形状(图表标题与所选数据区域无关)。
综合练习
根据图a中数据制作的图表如图b所示,创建该图表的数据区域是_______________________。
Series
Series:一维数据结构,包含一个数组的数据(values)和一个与数据关联的索引(index),索引值默认是从0起递增的整数。
通过列表、字典的方式创建Series对象,通过索引访问、修改Series对象。
s = pd.Series([166,178,180],index=["甲","乙","丙"]) #列表创建
s = pd.Series({"甲":166,"乙":178,"丙":180}) #字典创建
print(s["甲"])
s["乙"] = 188
print(s)
DataFrame
DataFrame:二维数据结构,由1个索引列(index)和若干个数据列组成,每个数据列可以是不同的类型,索引值默认是从0起递增的整数。
字典创建DataFrame对象时,键作为列名,值作为列数据;列表创建时每一个小列表对应一行数据。
index
values
columns
data1 = {"姓名":["张三","李四","王五"],"性别":["男","女","男"],"身高":[178,163,180]}
df1 = pd.DataFrame(data1,columns=["姓名","性别","身高"],index=["一","二","三"])
data2 = [[1,2,3],[4,5,6],[7,8,9]]
df2 = pd.DataFrame(data2,columns=["a","b","c"],index=["e","f","g"])
访问DataFrame对象
DataFrame中的列数据可以通过列名或字典记法来访问,行数据可以通过布尔表达式或切片的方式进行访问,单个数据通过at[]方法进行访问,如df.at[0,“姓名”]。
访问列数据
访问行数据(不可使用行索引访问)
DataFrame增删改
DataFrame可通过append(字典)的方式新增行数据,直接通过列名新增列数据。
DataFrame可通过drop()删除指定轴上的数据,axis设定数据轴的方向。
append()、drop()函数均不改变原有df对象中的数据,而是通过返回另一个DataFrame对象来存放改变后的数据,即生成了一个df副本并更改副本中的数据。
# 新增行、列数据
df1 = df.append({"姓名":"赵六","性别":"男","身高":179},ignore_index=True)
df1["年龄"] = [16,17,18,19]
# 删除行、列数据,axis为1表示横轴,为0表示纵轴
df2 = df1.drop(3,axis=0)
df3 = df1.drop("身高",axis=1)
分类汇总
分类汇总:将数据按照某一标准进行分类,对各类别数据分别进行求和、求平均、求个数、求最大值、求最小值等操作。
groupby(列名):对DataFrame对象各列或各行中的数据进行分组,并对每组数据进行相应操作。
.mean()、.count()、.min()、.max()
matplotlib模块绘图
plt.plot(x,y,label=“sin(x)”,color=“r”)
plt.scatter(x,y,label=“sin(x)”,color=“r”)
函数 说明
figure() 创建一个新的图表对象,并设置为当前绘图对象
plot() 绘制线形图
bar()、barh()、scatter() 绘制垂直柱形图、水平柱形图、散点图
title() 设置图表的标题
xlim()、ylim() 设置x、y轴的取值范围
xlabel、ylabel 设置x、y轴的标签
legend() 显示图例
show() 显示创建的所有绘图对象
谢谢
主讲人:XX老师