前言
信息合格考python学习的路径
在信息合格考中,Python的知识是比较多的。
在语言层面上,合格考的要求学习
- 变量命名,赋值,使用
- 认识各种数据类型
- 知道常用的数据组合形式,例如列表
- 使用常用的内置函数或方法
- 会使用math库或运算符进行数据计算
- 会使用顺序结构
- 会使用if-elif-else分支结构
- 会使用for和while循环
- 会遍历列表,操作列表,使用列表。
以上9个语法大类。
在常用类库层面上,合格考要求学生简要了解常用的
- 数学库math
- 绘图库turtle
- 数据采集库requests
- HTML解析库BeautifulSoup
- 数据可视化库matplotlib
- 数据分析处理库Pandas
- 第三方数学库numpy
- 计算机视觉库pillow
以上8个类库的基本方法,函数作用,参数作用等。
此外,变成的周边技能也需要掌握,例如流程图,伪代码等。这些在本文都将全部以例题和实例的方式体现。
提示:以下是本篇文章正文内容,从基础的编程周边开始
一、流程图
流程图是由一些简单图形符号组成,用来表示问题解决步骤及顺序的方法。以下是常用流程符号。根据国标(GB1526-89)
1.1、起止框
此框用于表示程序的开始结束:
此框成对出现哦
1.2、处理框
表示需要处理的数据,初始化变量等需要做的事情:
就像此图中,它对我们输入的数据进行了计算,得出了一个结果bmi
ps:这个计算的方法又叫做算法哦
1.3、输入/输出框,I/O框
输入输出分别是两个英文单词,Input和Output,所以输入输出又称IO。
这个框表示数据的输入,或者是,结果的输出:
第一个输入框表示:输入两个数据,一个是身高,一个是体重。
经过处理框内的运算之后,得到了结果bmi。
第二个输出框表示:输出结果bmi让人看到,否则只是完成计算并没有写出来。
这里举一个例子:
1, 老师给了你两个数字,一个1,一个2。
2,你经过心算后算出1+2=3
如果没有输出的话老师不知道你算出来的是多少所以我们要说出来
3,说出答案3
这里1就是输入框做的,3是输出框做的,这两个框成对出现,一个代表输入一个代表输出。
1.4、判断框
判断框比哦啊是条件判断的情况,有True或False两种情况,如果满足条件为True,执行一条路径;不满足为False,执行另一条路径。这个框用于分支结构。
1.5、流程线,连接符
这个不多说了,流程线就是这些带箭头的线,从起点往指向运行。
连接符不常考,一个圆圈,认识就行。
自此流程图板块便结束了,这是为顺序结构,分支结构,循环结构打下了基础,在接下来学习结构的过程中,我们将非常频繁的使用到流程图,请大家复习掌握。
流程图例题
本题来自上海市复兴高级中学的模拟考,注意题中N代表NO否,Y代表YES是。
选项A,处理框初始化状态为正常 -> 判断框判断是否bmi大于23.9或bmi小于18.5,用or(或)连接所以只要满足一个条件判断就为Y,因为在23.9和18.5之间为正常,所以只要满足一个,即条件判断为Y,状态就应该是“需注意” -> 接下来发现错误点,如果满足的话应该输出不正常啊,但是它没有改变状态直接输出,所以A错误
选项B,处理框判断框与A相同,N和Y也反了一下对的,但是注意,N的路径流程线跳过了输出框,这导致没有输出,所以B不正确。
选项C,改正了B的错误,所以正确。
选项D,我们发现前面的逻辑都正确,但是最后流程线会总多了一根没连接任何框的流程线,这对于流程图来说是错误的,所以D错误。
要点:流程图最后不能有没连接的流程线,要仔细看流程线的指向,有没有跳过某个框,要仔细梳理判断框条件的逻辑。
二、算法结构
2.1、顺序结构
顺序结构就是没有分支,没有循环,自上向下运行的程序,即没有判断框(if-elif-else语句)没有重复的部分(for/while循环语句)
顺序结构的流程图一般是这样的,各种框任意组合,这个只是个例子:
2.2、分支结构
分支结构分为:
- 单分支
- 双分支
- 多分支
以上三种,我们一个个讲。
2.2.1、单分支
流程图是这样的:
也就是说只有一个步骤:满足了就做,不满足就不做
|或者|
不满足就做,满足了就不做
这两种。
2.2.2、双分支
流程图是这样的:
也就是:
如果条件成立->做一件事情
如果条件不成立->做另一件事情
2.2.3、多分支
流程图是这样的:
多分支就是:
如果第一个条件成立,那就做一件事情 -> 结束
如果第一个条件不成立,那就去第二个条件判断框看看成不成立。
分支可以有无限个,条件跟分支数量一样。
2.3、循环结构
输入一个数,如果小于等于10,那就重新输,如果不小于等于10,那就输出这个数。
循环结构一般有条件,如果满足条件就重新回到上面再执行一次(进入循环),不满足条件就跳出循环。
2.4、要点
结构一般与python的语句代码相关联,本章节希望好好理解逻辑,接下来的编程中会与结构相联系
三、Python语法
在本章节我们进行python语法层的学习,旨在完成前言中提到的9个语法大类的学习要求。
3.1、数据,数据类型
程序的作用是什么?程序的最关键的作用就是对生活中的各类数据通过算法进行计算,自动化,编码,等等操作,来方便人类的生活,那么我们生活中的数据有哪些呢?最常见的就是:
- 数字
- 文字
这两个可以说是最最重要数据了。之前学到过图像音频等信息也都是一串串二进制的数字而已。
3.1.1、int,float
在Python中,我们对于数字的数据类型有两种:
- int整型
- float浮点数型
10 -> int
10.0 -> float
1.11 -> float
int表示一个整数,float表示一个小数。
3.1.2、str
我们对于文字的数据类型有一种:
- str字符串
字符串包裹在单引号或双引号内,例如:
“Hello”
‘上海市复旦实验中学’
“1234:。。”
等等等等…只要包含在引号里的就是字符串,不管它是数字还是符号还是什么妖怪。
3.1.3、bool
还记得我们判断框条件成立与否的True或False吗,还记得英语听力阅读的T或F吗?这些只有两个状态,即True或False(真或假)的数据就是bool,布尔值。
True False
3.2、注释
我们的课本上通常会记笔记,比如说英语的这个单词是什么意思啦之类的,程序代码同样需要“笔记”,不然你自己最后也会忘记这行代码是干什么的,语法是这样的:
# 井号后面的东西都是注释,电脑会无视你这句
3.3、变量
3.3.1、概念
刚刚我们认识了数据类型,但是光有数据没有容器不行啊,不然的话相当于泡的泡面没有桶,装不了啊。
这个时候就引入了变量的概念,我们把变量想象成一个盒子,每个盒子都有一个名字,里面装着的就是我们各种类型的数据。
3.3.2、变量命名规则
我们创建一个新的变量,也就是创建一个空的有名字的盒子,第一件事要干什么?肯定是想个名字啦,这个名字有一定的规则:
- 不能是Python关键字
- 不能以数字开头
- 只能由数字,字母,下划线组成
- 程序内变量名不能重复
例如:
num = 10 -> 正确
_num_123 = 1000 -> 正确
123num = 10 -> 错误,以数字开头了
awsed&&22 = 10 -> 错误,里面有特殊符号
def = 10 -> 错误,有没有发现def字体颜色不一样,因为这是关键字!
python关键字:
这些都是不能当变量名字的哦
3.3.3、创建变量(赋值)
想好名字那就该给变量装东西啦,首先语法是这样的:
#格式:name = value
#例子
a = 10 # int
b = 1.11 # float
c = "love" # str
d = True # bool
如果我们还没想好这个变量里面装什么数据类型的值呢?
也就是说我们光想要个空盒子,那就给一个None,None是Python关键字之一,它的英文翻译就是空的,什么都没有的,在python中也一样:
variable = None
variable是变量的意思,这个时候variable这个变量就是一个空值,即空盒子。
3.3.4、使用变量
我们使用变量实际上就是想要用变量盒子里那个数据了,我们用的时候直接叫变量名字就可以了。
msg = "Hello"
print(msg) # 打印出msg这个变量里面装的值
print函数我们在后面会讲,现在我们知道它是用来输出东西的就可以,就是把数据打印出来给你看。
3.4、运算符
我们在之前已经理解了变量的概念,会了如何使用变量,那么我们现在来学一下怎么对数据或变量进行运算。
3.4.1、算数运算符
3.4.1.1、符号
3.4.1.2、变量间运算
3.4.1.3、运算优先级
3.4.1.4、不同数据类型间运算符作用
算数运算符都可以在int和float数据类型下任意组合使用,也就是例如:
sum = 1 + 1
sum1 = 1 + 1.0
...
此外,字符串也可以使用 + *等运算符:
string = “hel”
string2 = “lo”
string3 = string + string2
print(string3)
输出:
Hello
3.4.1.5、常见报错
3.4.1.5.1、ZeroDivisionError
除数为0是不允许的
3.4.1.5.2、TypeError
我们出现这个报错大概率是因为字符串与整形或浮点数型发生了运算:
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
一般报错就是这样的,翻译一下就是,不支持int跟str之间使用+运算。其他符号也一样。
例如这段代码就会发生这样的报错:
num = 1 # int
str_num = "1" # str
sum = num + str_num
print(sum)
这是因为虽然str_num也是1,但是它是在引号内的,所以它的数据类型是字符串,是不可以跟int的数字直接运算的。
解决方法在下文会讲到,就是使用类型转换函数。
3.4.2、赋值运算符
应用实例:
a = 1
b = 2
c = 3
a = a + b # a+b的值赋值给a,此时a值为3
print(a)
a += b # a = a+b,此时a值为5
print(a)
a -= b # a = a-b,此时a值为3
print(a)
a *= b # a = a*b,此时a值为6
print(a)
a /= b # a = a/b,此时a值为3.0
print(a)
a %= b # a = a%b,此时a值为1.0
print(a)
a **= c # a = a**c,此时a值为1.0
print(a)
a //= b # a = a//b,此时a值为0.0
print(a)
输出:
3.4.3、比较运算符
每一个比较的表达式都会返回True或False:
a = 10
b = 9
print(a == b) # False
print(a != b) # True
print(a > b) # True
print(a < b) # False
...
3.4.4、逻辑运算符
例子:
a = 10
b = 9
print(not a == b) # True,a==b本来返回False,前面又个not就反了一下,双重否定变肯定
print(a == b and a > b) # False, a==b不成立,and有一个不成立就返回False
print(a == b or a > b) # True, a > b成立,or有一个成立就返回True,两个都成立也返回True
3.4.5、位运算符
考试不考,了解一下:
3.5,python常用函数/方法
3.5.1、函数概念
假如你在做饭,函数就相当于厨房里的电器,你要做米饭,就往电饭煲里放水跟米,然后按一下,电饭煲就把你放的水跟米变成了米饭还给你。函数也是一样的,在这个例子里,电饭煲就是函数,水跟米就是函数的参数,按一下就是调用函数的过程,返回来的米饭就是函数给你的返回值,或者是效果。
函数的一般格式:
name(parameter,parameter2......) # 位置传参
还有可能会遇到这样的:
name(para_name = parameter) # 关键字传参
这个比较高级,意思就是这个参数的名字给一个值。例如电饭煲要煮饭还是煮粥如果是饭,那就:
电饭煲(米, 水, 模式=煮饭)
差不多就是这个意思。
3.5.2、print函数
print函数用于将数据打印在终端区,也就是把数据打出来给你看,是一个输出函数,它的参数有:
print(*Object, sep, end.....)
一般我们只用第一个参数,也就是变量或者数据都可以往里传,多个也可以结合
print(1) # 输出:1
a = 1
a += 1
print("a = ", a) # 输出:a = 2
也可以直接传表达式:
print(1 + 1) # 输出:2
a = 1
print(a += 1) # 输出:2
3.5.3、input函数
input函数里面接受一个字符串参数,默认返回一个str类型的值
num = input("输入:")
print(num)
此函数会把input的参数先打印出来,然后你在后面输入任意字符,input接受并且返回,相当于你往里面放米,它返回给你饭,这个饭存在了num这个变量中。
输出:
输入:2
2
3.5.4、类型转换函数,str(),int(),float()
我们之前在 3.4.1.4 讲运算符的时候说过,字符串跟int之间不能直接运算,而我们input输入的数字返回出来是str类型:
num = input("输入数字:") # 这个是str类型的
sum = num + 1
print(sum)
此时出现报错TypeError,我们只要将输入进来的num转换成int在计算就好了,需要注意的是,字符串里面是输的是数字才能转,输文字不行。
num = int(input("输入数字:")) # int()将str转为int类型
sum = num + 1
print(sum)
这里以int()举例,其他的str()float()是一样的道理。
3.5.5、round函数
round函数用来取小数点后n位,返回取后的值:
round(float, n)
例子:
round(1.1111, 1) # 返回1.1
3.5.6、编程例题
题目:计算采样频率为44.1kHz的双声道数字音乐的数据存储量。
公式:数据存储量 = 采样频率 x 量化位数 x 声道数 / 8 x 持续秒数(字节)
- 输入量化位数,声道数,持续秒数
- 计算数据存储量
- 输出数据存储量
代码:
bit = int(input("输入量化位数:"))
track = int(input("输入声道数:"))
seconds = int(input("输入持续秒数:"))
storage = round(44.1 * 1000 * bit * track / 8 * seconds, 1)
print("此歌曲空间占用为", storage, "bytes(字节)")
流程图:
小问题a:
请问这个程序是什么结构呀,答案可以打在评论区哦:
格式:a.xxx结构
总结
未完待续~
在合格考试复习阶段或者正在学习信息这门科目都可以看我的文章,Python学习讲究深入浅出,多动脑多思考,合格考不用愁!