《Python语言程序设计基础》期末知识点全面复习(含编程题和选择填空判断知识点)(2024.1.8更完)
此篇为期末考试全面复习而写,故包含许多不那么重要但是相当基础的概念。
嵩天版书中无数据结构和算法的相关内容,思来想去,决定弃此部分不谈。
时间紧张,故全半角符号混用。
望诸君见谅。祝期末顺利。
前置知识(考试易考)
1.莱布尼茨创造二进制
2.集成电路中每一条线路只有高低电压两种状态,用1表示高电压,用0表示低电压。则一条线路有两种状态,两条四种,32条有2^32种,64条同理。
线路数量即计算机字长 (eg:32位,64位)
3.二进制运算:详细见此。
加减和异或有点像,记得借位和进位。

乘类似与运算。

4.逻辑运算
与 或 非 异或……都为按位运算,无进位。

5.数制及其转化
- 按进位方式计数的叫做进位计数制
- 基数和权数:
如二进制,2即为基数,2^n即为权数,
- 十进制的N在r进制中即可表示为该数各位的数码乘以所在位的权值的和。
6.进制转换
- r进制转换为十进制:

-
十进制转换为r进制: 分别对整数部分和小数部分进行转换。见此。注意小数的方法
- 二进制转换为八进制或十六进制:以小数点为基准,将数位依次分组,八进制就3个一组,十六进制就4个一组,不足补零。然后对每一组数取对应进制的数。
- 八进制或十六进制转二进制:
将每一位数转为3位或4位的二进制数
7.有符号数表示
在一个二进制数中,第一位表示数的符号,1正0负
8.源码、反码、补码
用0、1表示符号的为源码
将源码除符号位以外取反即为反码
补码即负数在反码基础上在末位加1,正数本身。
两数相加即补码相加,减法要变加法再运算。
9.计算机储存单位:
计算机以字节计算储存容量。b,kB,MB,GB,TB,PB,EB……
字为CPU在单位时间内处理的二进制数据,由字节组成,组成字的二进制位数叫字长
64位计算机1字=64位=8个字节
看到这先放松一下吧
第一章 程序设计基本方法
1.程序设计语言:
- 分为机器语言、汇编语言和高级语言,前两个统称为低级语言。低级语言基于计算机结构而设计,直接操作于计算机硬件,高级语言的代码表示方式在不同计算机上一致
- 机器语言直接使用二进制表达指令,计算机硬件可直接识别
- 汇编语言使用助记符,不同计算机汇编指令不同
- 高级语言更接近自然语言
2.编译和解释
- 编译:先把源代码经编译器转换为机器语言目标代码,再完成用户输入、程序执行、输出。
- 解释:将源代码用解释器同时转换、运行
- 区别:编译只需要一次,一旦被编译,不需要再编译。解释每次都要解释器和源代码。“类似翻译和同声传译”
- 编译好处:相同源代码执行更快;目标代码无需编译器即可在同类型操作系统运行(eg:.exe or .py)
- 解释好处:需要保留源代码,方便维护(不像c这种,总爱丢代码);可利用解释器在任何操作系统运行,可移植性强。‘
3.脚本语言:采用解释执行的语言。eg:PHP、JavaScript、Python
4.静态语言:采用编译~。eg:c、Java
5.程序启动方法:交互式和文件式(字面意思,不解释了)
6.程序基本编写方法:IPO(输入,处理、输出)
7.Python2和Python3区别(下以3.x为主语)
- 3不完全兼容2
- 用UTF-8编码
- 修改print语句为print(),修改exec语句为exec()(exec作用即执行字符串和文件中的代码)
- 用!=代替<>表示不等于
- 比较行为中对两个不可比较的元素比较时,直接返回TypeError,而非False
- 去掉长整型
- 将整除改为“//”,将“/”改为代数运算的除法(返回浮点数)
- 八进制以0o开头
- (常考的就这些,主要考法是“下列代码那些是py3的”,问py2就找print语句)
再歇一会吧。
第二章 Python程序实例解析
这一部分介绍一下最基本的东西,turtle画图等到讲完再讲
基本内容及常见函数:
1.缩进 Python中以缩进表示代码的从属关系,缩进相同的两行表示其在代码段中所处层次相同,eg条件语句
2.注释 单行注释用#,多行注释用'''(三个单引号)
3.变量命名
- 定义 eg:"temp = 123"
- 变量命名
- 名称中不能含有空格
- 首字母不能为数字
- 变量允许有汉字,可在变量名中出现的字符:大小写字母、汉字、数字、下划线
- 对大小写敏感,A和a不是一个变量
- 不可使用关键字 作为变量名
- 尽量不用内置的函数名做变量名,eg:min,max,list

4.关键字(保留字)
编程语言内部定义并保留使用的标识符。不用背,知道是保留字,设变量时不用即可。

考场上觉得模棱两可的话就
import keyword print(keyword,kwlist)
5.字符串
有正向增序号和反向减序号。可按单个字符索引或区间访问。区间含左不含右
区间访问时可混合使用两种序号
eg:temp[0:-1]即第一位到倒数第二位
6、赋值语句 不多说。
有一种同步赋值语句,非常便捷。a, b = c, d
斐波那契数列可用此语句轻松解决。
a,b=b,a+b
7.input() 这个也不多说了,注意默认输入的是字符串
如果想要在一行输入多个元素的话,可以选择用split(),split()返回一个列表。eg: a= input().split()
8.type(x) 返回x这个变量的类型
9.print() 默认print 多个对象时用空格分界,以换行符结束(\n),可更改end和sep
10.eval(str)返回str中表达式的值。注意区分其与exec().
继续看下一章
第三章 基础数据类型
1.数值类型:整数、浮点数、复数(用不到)
整型范围在全体实数(py3取消了长整型),可用内置的pow计算x^y.
浮点数:科学计数法也算浮点数,整型后面跟个小数点,哪怕十分位没数,也叫浮点数
浮点数范围有限制,且有精度损失
复数:实部虚部均为浮点数,对复数z可用z.real和z.imag分别获获取实部虚部
2.数值类型相关函数、操作
类型转换:
隐式:用操作符 eg两个整型相除变浮点型
显式:int(x),float(x),类似c++中强制类型转换
字符串也可参与转换:int(“123”)=123
浮点数字符串不可直接转换为整数,需要先用float转换为浮点数以后再转换为整数:int(float("1.4"))
内置算数函数:

注意round可控制精度,或许可以帮你在编程题节省很多力气。
max,min可进行两个以上元素的比较,这一点与c不同
divmod()有点不太常见,或许会考,前面为整除,后面为余数
数值类型运算操作:
加减乘同线性运算。除有几种:
//为整除,只保留除法结果的整数部分。
/为代数意义上的除法,结果为浮点数
%为取余
x的y次幂除了用pow,也可用x**y
运算符的优先级:

eg:-3**2=-9,3**-2=1/9
两个幂运算并列,先算右后算左.
数据类型扩展关系:
整数-->浮点数-->复数
不同数字类型之间可以混合运算,最后结果的类型是最宽类型。
复合赋值运算符:
+,-,/,*,/,//,%,**都可与=复合,注意复合赋值运算符之间没有空格,没有空格
关系运算符:
>,<,=,<=,>=,==,!=,返回值为布尔类型,True or False
注意:
整数和浮点数只要值相等,结果就是相等的,浮点数之间存在精度损失,不建议进行比较运算

3.字符串
- 表示
- 可用单引号或双引号或三个单引号括起来,使用任何一种时,字符串内的引号都只是字符串的组成部分。
- 三个单引号可以表示单行或多行字符
- 如何表示“-‘test“-’这样的字符串
- 用转义字符


- 用转义字符
- 字符串操作
-

复制操作n必须为整数,不可为浮点数;x in str可用来判断是否是str 的子串,可做循环或分支语句条件
- 字符串可遍历,for i in str
- 索引和切片都可用两种序号(见第二章字符串部分)
- 切片时start和end可为空

-
切片时start一定要在end左侧,否则切片为空字符串
-
4.函数与方法区别:
函数直接调用或者用模块名称.函数名称()来调用。
方法也是函数,但很特殊,通过对象调用。调用形式为对象.方法名称()
5.字符串函数:

str可做类型转换,ord可用于比较,chr没怎么用过,尽量记忆一下,对列表进行str()后,字符串中保留着中括号,和逗号,如果需要,则应通过切片切去。
6.字符串方法

lower、upper在检索单词的时候比较有用。其余的记忆一下。isnumeric()可用ord()和循环代替,记住是什么就好,防止考试考选择。isdigit()只看数字,有正负号和小数点也会认为不是数字

join比较重要,可搭配reversed做字符串反转。join 连接的每个元素必须是字符串,可用str 转换一下再连接。
replace 感觉会有作用,可以也记忆一下。
split可规定分割次数。
count 不可直接统计单词数目,可查看切片内的。
strip针对于chars中的任何一个字符,而非chars整体。
![]()
7.字符串的格式化:format

“balabala{}dhggs{}”.format(),槽和参数顺序可不对应,但要在槽中写清序号。format 中提供的参数只能多不能少。
.精度比较重要,表示浮点数保留的位数或字符串最大输出长度。
写这章有点偷懒了,赶紧来看下一章
第四章 程序的控制结构
1.结构分为三种:顺序,循环,分支
2.流程图:若图中含循环,就写循环结构,不要纠结是不是顺序,两者没有从属关系。

3.