此篇记录在学习Python计算机二级时候遇到的一些知识点,希望在这种方式中能够增进自己对这门语言的了解。
1. 程序设计基本方法
- Python解释器本身并不直接支持自然语言编程,但可以使用各种NLP库和工具来支持自然语言编程
- Python语言是一种既支持面向过程也支持面向对象的采用解释型方法执行程序的高级脚本语言。解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程,不是一次性翻译的。
- 编译是将源代码转换成目标代码的过程。
2. python基本语法
- Python中,变量名的命名规则:以字母或下划线开头,后面跟字母、下划线和数字﹔不能以数字开头。
- 常用的注释方法有两种,#注释和三引号注释,其中三引号注释就是将注释内容修饰为字符串类型。
- “unexpected indent”翻译成中文就是意外缩进,也就是程序中含有不符合编码要求的缩进。
- 在Python语言中,赋值不需要两侧数据类型一致,在赋值操作之后,左侧变量将会自动变成右侧对应的数据类型。
\\0
是一个字符串中的转义字符,表示空字符。空字符在字符串中用于表示字符序列的结束。对于空字符,它在 Unicode 字符集中仍然是一个字符。- 在 Python 中,
count()
是一个字符串对象的方法(也可用于列表、元组等可迭代对象),用于返回一个指定子字符串在原字符串中出现的次数。 eval()
函数的参数必须是字符串类型input()
函数获取用户输入的信息,并将信息组成一个字符串处理,input()函数含有参数,用于提示用户输入。用户输入信息时,使用回车也就是想换一行时,会停止输入结束input()函数。本题选择B选项。
3. 基本数据类型
- 在比较字符串时,Python 会按照 ASCII 码表顺序进行比较,即小写字母比大写字母大,而数字比字母小。第一个不同的字母出现时便完成了比较。字符串比较大小按照以下规则:
0<9<A<Z<a<z
- 符号&=是Python中的位运算符,表示按位与运算并赋值操作。具体意思是将等号左边的变量与等号右边的值进行按位与运算,并将运算结果赋值给左边的变量。
//
是整除运算,%
是求余运算,求余运算可以是浮点数之间的运算。- 字符应视为长度为1的字符串;字符串中的字符不可以进行数学运算,如果是数字字符串需要将其转换为数值类型方可计算﹔字符津可进行切片,但不能赋值。
- Python的整数类型没有长度限制;浮点类型有长度限制
- 对于十进制数,它只能表示以进制数的质因子为分母的分数。10的质因子有2和5
- 复数的实部可以单独存在,但是虚部不可以单独存在。计算后若虚部为0,j不可以省略。
str()
函数是将参数转化为字符串类型,题目中参数是10/2,计算结果为浮点数5.0,所以转换的结果为’5.0’。当参数是表达式的时候会先计算出结果,再进行转换eval()
函数内部先执行字符串的拼接,然后再用evral函数去掉字符串的引号,首先字符串100+1+2=1001+2),然后将字符串101+2通过eval0函娄专化得到1001+2=1003。- 在Python中,
complex()
是一个用于创建一个复数对象的内置函数。接受两个参数,第一个参数是实部,第二个参数是虚部。 int()
函数可以将整数字符串转化为整数,也可以将浮点数转化为整数,但是浮点数字符串不能转化为整数split()
方法是将字符串通过括号内的参数字符切割,没有参数,默认以空白字符切割。- 将字符串str所有的字符都大写的方法是
str.upper()
strip()
方法是去除字符串首尾两端与参数相同的字符,无论数量。replace()
方法,此方法是将字符串中与第一个参数相同的字符替换为第二个参数.字符串方法replace()用来替换字符串中指定字符或子字符串的所有重复出现,每次只能替换一个字符或一个字符串,把指定的字符串参数作为一个整体对待。该方法并不修改原字符串,而是返回一个新字符串。join()
是 Python 中字符串对象的一个内置方法,用于将一个可迭代对象中的元素连接成一个字符串
# 使用 join() 方法连接字符串列表
s1 = ['Hello', 'world']
s2 = '_'.join(s1)
print(s2) # 'Hello_world'
# 使用 join() 方法连接元组中的字符串
s3 = ('I', 'am', 'learning', 'Python')
s4 = ' '.join(s3)
print(s4) # 'I am learning Python'
- 在 Python 中,
index()
是字符串对象的一个内置方法,用于在字符串中查找子字符串并返回其第一次出现的索引。 center()
是字符串对象的一个内置方法,它可以将字符串居中对齐,并在两侧填充指定的字符或空格。第一个参数指定总宽度,第二个参数指定需要填充的字符。isspace()
是 Python 字符串对象的一个内置方法,用于判断一个字符串是否只包含空格(包括制表符、换行符、回车符等)。- 在 Python 中,可以使用前缀 “0x” 表示一个十六进制数,后跟所需的十六进制数字。它使用了 16 个字符(0-9,A-F)来表示数码,其中 A-F 表示 10-15。八进制数,’0o’ 或 ‘0O’ 前缀。二进制数,’0b’ 或 ‘0B’ 前缀
- Python的逻辑运算符,and是两个操作数都为真,结果才为真; not是反转操作数的逻辑状态; or是只要有一个操作数为真,结果就为真。
string.printable
包含所有可打印的 ASCII 字符,包括数字、字母、标点符号和空格等。
4. 程序控制结构
SyntaxError此异常只有当程序语法出现错误,不能正常继续下去,才会产生这种异常。
用于异常处理逻辑的保留字有try、except、else、finally.
Python语言在3种基本控制逻辑〈顺序结构、选择结构(分支结构〉、循环结构)上进行了适当的扩展。在分支结构原理的基础上,Python增加了异常处理,使用try-except保留字。
find()
和index()
都是 Python 中字符串对象的方法,start
和end
分别是查找的起始和结束位置。用于在字符串中查找子字符串。它们的主要区别在于,当子字符串不存在时,它们的返回值不同:find()
方法在找不到子字符串时会返回 -1;index()
方法在找不到子字符串时会抛出 ValueError 异常。
Python 中的二分支结构可以使用三元表达式来精简表示,语法格式如下:
<expression1> if <condition> else <expression2>
示例:
x = 1 if x >= 0 else -1
在Python语言中,遍历循环中被遍历的数据需为多元素类型,最常见的如:字符串、列表、元组、字典或集合等。
5. 组合数据类型
- Python中最常用的组合数据类型有3大类,分别是集合类型、序列类型〈典型代表是字符串类型和列表类型)和映射类型(典型代表是字典类型)。
- 字典的
get(key default)
方法:键存在则返回对应值,否则返回默认值。 - Python只有一种内置的映射类型,就是字典参考
pop()
方法:键存在则返回相应值,同时删除键值对。pop()方法可以接受一个可选的参数,表示要移除的元素的索引位置。如果不传入参数,则默认移除并返回列表的最后一个元素。get()
方法:若访问的项不存在于字典中,返回默认值,若存在,则返回键对应的值;popitem()
方法:随机从字典中取出一个键值对,以元组(key, value)
形式返回,同时将该键值对从字典中删除。remove()
删除集合中指定的元素,元素不存在则产生KeyError异常。- 创建元组时,即使元组中仅包含一个元素,也要再这个元素之后添加逗号。
d.values()
是 Python 字典(dict
)类的一个方法,用于返回该字典中所有值组成的视图(view)对象,视图对象是一个可迭代的对象,其中包含了字典中所有的值。可以通过将视图对象转化为列表或集合等可迭代的对象,对这些值进行处理或者遍历操作。items()
是一个字典方法,它可以返回一个元素为键值对的列表。ls.remove(x)
是删除列表1s中出现的第一个元素x,而不是删除列表s中所有的x元素
6. 文件和数据格式化
- 文本文件和二进制文件的存储方式不同,所以文本文件不可以用二进制文件方式读入。
- Python为源文件指定的默认字符编码是:UTF-8。
writelines
是 Python 中文件对象的一个方法,它可以将一个包含多个字符串的可迭代对象(例如列表)写入到文件中。- 文件对象的
seek()
方法用来定位文件的读/写位置,参数0为文件开头,参数2为文件结尾。tell()
方法用来返回文件指针的当前位置。 - 在Python中,以写模式打开文件的同时,是无法进行读操作的,因为在写模式下打开文件时,文件指针指向文件开头,如果要读取文件的内容,需要先将文件指针移动到合适的位置。如果需要以写模式打开文件并进行读操作,可以先以读模式打开文件读取内容,然后关闭文件后再以写模式打开文件进行写操作。
- 在Python文件的打开方式中,
'a'
为只写方式打开,若文件存在,内容追加在原文件内容后面。 - 在Python中,打开模式为
"x"
表示以独占模式创建文件。如果指定的文件名已经存在,则无法创建文件并会引发FileExistsError异常。只有当指定的文件名不存在时,才会创建一个新文件。 - 一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中的集合或数组的概念
- 二维数据由关联关系构成,采用表格方式组织,对应于数学中的矩阵
- 高维数据由键值对类型的数据组成,采用对象方式组织
- 在Python语言中,二维列表对象输出为CSV格式文件采用遍历循环和字符串的
join()
方法相结合。split()
方法一般在将文件中的数据转化为列表时使用。 - 以英文逗号分隔的存储格式叫做CSV格式(Comma-Separated Values,即逗号分隔值)。CSV是一种通用的、相对简单的文件格式,最广泛的应用是在程序之间转移表格数据。CSV没有通用标准规范,使用的字符编码同样没有被指定,但ASCII是最基本的通用编码。
- 如果要同时读取和写入文件,可以使用 “r+” 模式打开文件。这个模式表示文件以读写方式打开,文件指针放在文件的开头。
- Python中
write()
函数要求写入类型为字符串类型。如果需要写入其他类型的数据,需要先将其转换为字符串类型.fo.writelines(8)
是指直接将列表类型的各元素连接起来写入文件
7. 函数和代码复用
- 在Python中,字符编码以UInicode编码存储。
chr(x)
和ord(x)
函数用于在单字符和Unicode编码值之间进行转换。chr(x)函数返回Unicode编码对应的字符,ord(x)函数返回单字符x对应的Unicode编码. int()
函数可以将整数字符串转换成整数,也可以将浮点数转化为整数,但是不能将其他字符串转换成整数id()
函数的返回值是对象的内存地址,属于数字类型。- 在实参面前加一个星号”*”表示将一个序列或可迭代对象展开成单独的元素。这意味着函数会将序列或可迭代对象中的每个元素都视为单独的参数进行处理,而不是将整个序列或可迭代对象作为一个参数处理。
- 当
max()
函数的参数是字典时,那么返回值就是字典的键的最大值。 round(x,d)
函数是指对x四舍五入,保留d位小数,无参数d则返回四舍五入的整数值。divmod()
是一个 Python 内置函数,它有两个参数 a 和 b,并返回元组 (a // b, a % b),其中 “//“ 表示整除,”%” 表示取余。它的功能是将两个数进行整除运算并返回商和余数。- 如果在函数内部想要修改全局变量的值,需要使用
global
关键字进行声明。在不使用global
声明时,在函数内部对变量的赋值只会创建一个新的局部变量,并不会修改全局变量的值。 - 对于空格字符串,
all()
返回True
,因为所有的字符都是非空字符,而any()
返回True
,因为至少含有一个非空字符。空字符对应的是False。 - 点数3.0和整数3具有相同的值,硬件执行单元、计算机指令处理方法和数据类型均不相同。
- 在Python中,
lambda
是一个关键字,用于创建匿名函数。匿名函数是指不需要定义函数名称,而是可以直接定义函数的表达式。它的一般形式如下:lambda argument_list: expression
。其中,argument_list表示函数的参数列表,可以包括多个参数,用逗号分隔;expression表示函数的表达式,用于对参数进行计算,并返回计算结果。lambda表达式的计算结果是一个函数对象,可以赋值给一个变量,也可以直接使用。它通常用于需要临时定义一个简单的函数的场合,比如排序、过滤、映射等操作。 - 在 Python 函数中使用默认参数时,不需要使用空字符。当定义函数时,可以给某些参数指定默认值,这些参数就成为了默认参数。在调用函数时,如果不传递这些参数的值,就会使用默认值。
title()
函数把单词首字母大写- 在 Python 中,关键字参数是一种可以在函数调用时指定形参名称的方式。使用关键字参数可以使代码更加易读和易维护,特别是在函数有许多参数的情况下。下面是一个简单的示例:
def greet(name, message):
print(f"{message}, {name}!")
# 使用位置参数调用函数
greet("Alice", "Hello") # 输出:Hello, Alice!
# 使用关键字参数调用函数
greet(message="Hi", name="Bob") # 输出:Hi, Bob!
- 自己定义的函数可以与内置函数同名,当调用此函数时会先调用自己定义的函数;
input()
函数用于从标准输入读取用户输入的字符串,并将其作为返回值返回给调用者。- 在 Python 函数中,* 号可以用来接收可变数量的参数,即不确定参数的数量。传递给函数的所有参数打包成一个元组传递给该参数。
8. Python标准库
- time库中
ctime()
函数是生成一个时间的字符串 t.fd(50)
表示向当前方向移动50个像素长度,t.left(60)
表示向左旋转60度time
库中perf_counter()
函数一般用于计时;sleep()
函数用于暂停程序执行;strftime()
和strptime()
都是用于显示时间。- 允许的导入方式:
from numpy import ndarray
time.time()
返回的是当前时间的时间戳,是一个浮点数,以秒为单位。- 在Pthon语言中,
turtle
库没有trtlesize函数。shape(函数用于设器绘图前头的形状。getscren()
函数返回一个TurtleScreen类的绘图对象,并开启绘画。setup函数打开一个自定义大小和位置的画布。
9. Python第三方库
- 获取数组形状:使用
shape
属性可以获取数组的形状(即每个维度的长度)。例如,对于一个二维数组arr
,可以使用arr.shape
来获取它的形状。ndim
:数组的维度;shape
: 数组的形状。size
: 数组的元素个数;itemsize
:数组的每个元素占用的内 存大小,以字节为单位。 - 在Python语言中,用于数据分析的第三方库有
numpy
、scipy
、pandas
和matplotlib
。scrapy
库是网络爬虫方向的第三方库。requests
是网络爬虫方向的第三方库 - redis-p是数据存储方向的第三方库,Diango是Web开发方向的第三方库,NLTK是自然语言处理方向的第二方库;Luminoth是计算机视觉方向的第三方库。
Pyinstaller
工具没有-L参数。-D是默认值,生成dist目录;-F是指在dit文件夹中只生成独立的打包文件;-i是指定打包程序使用的图标文件。只能处理UTF-8编码形式的Python源文件PIL
(Python Imaging Library)是Python中用于图像处理的标准库之一。它支持各种格式的图片处理,包括打开、修改、保存等操作。使用PIL可以轻松地完成图片的缩放、剪裁、旋转、调整亮度、对比度等操作,还可以将多张图片合成一张、加水印、增加滤镜等。- Natural Language Toolkit(
NLTK
)是一个用于Python编程语言的自然语言处理工具包。它提供了一系列用于处理人类语言文本数据的库、数据集、以及一些文本处理工具和接口。 BeautifulSoup
是Python的一个库,它用于解析HTML和XML文档,可以快速的从网页中提取需要的数据。
00 公共基础知识
- 带符号的定点数中,正数的原码、反码、补码均相同,负数的反码是对该数的原码除符号位外各位取反,补码是在该数的反码的最后(即最右边)一位上加1,不管是正数还是负数,其补码的符号位取反即是偏移码。
- 进程控制块PCB是进程存在的惟一标志。
- 进程创建完成后即进入就绪状态,处于就绪状态的进程可以有多个,处于运行状态的进程当运行时间片用完后将转换为就绪状态。
- 一个正在运行的进程由于所申请的资源得不到满足要调用阻塞进程。
- 若循环队列的存储空间为(1m),在循环队列运转起来后,如果
front<rear
,则队列中的元素个数为rear-front;如果front>rear
,则队列中的元素个数为rear-front+m。 - 带链的栈是具有栈属性的链表。链表的存储单元是不连续的,由于是不连续的存储空间,所以指针将不会有规律地连续变化。当top=bottom=NULL时,为栈空,当tp=bottom且不等于NULL时,栈中存在一个元素,其他情况无法判断。
- 树是一种非线性的数据结构,由若干个节点(node)和若干条边(edge)组成。树中度的概念是指一个节点的子节点的个数。例如,一个节点有 3 个子节点,则其度为 3。一个树的度是树中所有节点中最大的度数。树的总的结点数为树中所有结点的度数之和再加1。度为0的结点:叶子结点
- 二叉树的三种序列:
- 前序遍历:根左右
- 中序遍历:左根右
- 后序遍历:左右根
- 三种遍历在每个节点处都是一样的,依此类推上去。
- 数据流图的作用是支持软件系统功能建模