《Python语言程序设计基础》期末知识点全面复习(含编程题和选择填空判断知识点)(2024.1.8更完)

TheZealous / 2024-01-09 / 原文

此篇为期末考试全面复习而写,故包含许多不那么重要但是相当基础的概念。

嵩天版书中无数据结构和算法的相关内容,思来想去,决定弃此部分不谈。

时间紧张,故全半角符号混用。

望诸君见谅。祝期末顺利。


 前置知识(考试易考)

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.