2024软考《软件设计师》-Python专项知识补充
接上文:2024软考《软件设计师》-Python专题知识(含历年真题解析)-CSDN博客
Python知识点速记
- Python 中单引号 ' 和双引号 " 使用完全相同。
- 使用三引号(' ' ' 或 " " ")可以指定一个多行字符串。
- Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
- Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割。
- print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""
- Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
- Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
- 内置的 type() 函数可以用来查询变量所指的对象类型。
- Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。
- Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。
- Python 使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串。
- 反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """…""" 或者 '''…''' 跨越多行。
- Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
- 数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
- 可以使用
bool()
函数将其他类型的值转换为布尔值。以下值在转换为布尔值时为False
:None
、False
、零 (0
、0.0
、0j
)、空序列(如''
、()
、[]
)和空映射(如{}
)。其他所有值转换为布尔值时均为True
。 - 在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。
- 在 Python3 中,bytes 类型表示的是不可变的二进制序列(byte sequence)。
- 与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
- 使用 int()、float()、str() 等预定义函数来执行显式类型转换。关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符。
- 迭代器有两个基本的方法:iter() 和 next()。
- Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
- 在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- Python 中没有 switch…case 语句,但在 Python3.10 版本添加了 match…case,功能也类似。
- match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。
- case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。
- 一个 case 也可以设置多个匹配条件,条件使用 | 隔开。
- 在 Python 中没有 do..while 循环。
- while 循环使用 else 语句,如果 while 后面的条件语句为 false 时,则执行 else 的语句块
- Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
- Python 中,for…else 语句用于在循环结束后执行一段代码,如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。
- break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
- continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
- 如果你需要遍历数字序列,可以使用内置 range() 函数,它会生成数列。
- Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
Python知识点扩展
Python3 的六个标准数据类型
isinstance 和 type 的区别
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
异常
即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。
try/except
try/except…else
try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。
else 子句将在 try 子句没有发生任何异常的时候执行。
try-finally 语句
try-finally 语句无论是否发生异常都将执行最后的代码。
抛出异常
Python 使用 raise 语句抛出一个指定的异常。
raise语法格式如下:
raise [Exception [, args [, traceback]]]
Python 推导式
列表推导式
列表推导式格式为:
[表达式 for 变量 in 列表]
[out_exp_res for out_exp in input_list]
或者
[表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]
#过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母:
#实例
>>> names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
>>> new_names = [name.upper()for name in names if len(name)>3]
>>> print(new_names)
['ALICE', 'JERRY', 'WENDY', 'SMITH']
#计算 30 以内可以被 3 整除的整数:
#实例
>>> multiples = [i for i in range(30) if i % 3 == 0]
>>> print(multiples)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
字典推导式
字典推导基本格式:
{ key_expr: value_expr for value in collection }
或
{ key_expr: value_expr for value in collection if condition }
#使用字符串及其长度创建字典:
#实例
listdemo = ['Google','Runoob', 'Taobao']
# 将列表中各字符串值为键,各字符串的长度为值,组成键值对
>>> newdict = {key:len(key) for key in listdemo}
>>> newdict
{'Google': 6, 'Runoob': 6, 'Taobao': 6}
#提供三个数字,以三个数字为键,三个数字的平方为值来创建字典:
#实例
>>> dic = {x: x**2 for x in (2, 4, 6)}
>>> dic
{2: 4, 4: 16, 6: 36}
>>> type(dic)
<class 'dict'>
集合推导式
集合推导式基本格式:
{ expression for item in Sequence }
或
{ expression for item in Sequence if conditional }
#计算数字 1,2,3 的平方数:
#实例
>>> setnew = {i**2 for i in (1,2,3)}
>>> setnew
{1, 4, 9}
#判断不是 abc 的字母并输出:
#实例
>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'d', 'r'}
>>> type(a)
<class 'set'>
元组推导式(生成器表达式)
元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。
元组推导式基本格式:
(expression for item in Sequence )
或
(expression for item in Sequence if conditional )
元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。
#例如,我们可以使用下面的代码生成一个包含数字 1~9 的元组:
#实例
>>> a = (x for x in range(1,10))
>>> a
<generator object <genexpr> at 0x7faf6ee20a50> # 返回的是生成器对象
>>> tuple(a) # 使用 tuple() 函数,可以直接将生成器对象转换成元组
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Python3 标准库概览
Python 标准库非常庞大,所提供的组件涉及范围十分广泛,使用标准库我们可以让您轻松地完成各种任务。
以下是一些 Python3 标准库中的模块:
os 模块:os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和目录,以及访问环境变量等。
sys 模块:sys 模块提供了与 Python 解释器和系统相关的功能,例如解释器的版本和路径,以及与 stdin、stdout 和 stderr 相关的信息。
time 模块:time 模块提供了处理时间的函数,例如获取当前时间、格式化日期和时间、计时等。
datetime 模块:datetime 模块提供了更高级的日期和时间处理函数,例如处理时区、计算时间差、计算日期差等。
random 模块:random 模块提供了生成随机数的函数,例如生成随机整数、浮点数、序列等。
math 模块:math 模块提供了数学函数,例如三角函数、对数函数、指数函数、常数等。
re 模块:re 模块提供了正则表达式处理函数,可以用于文本搜索、替换、分割等。
json 模块:json 模块提供了 JSON 编码和解码函数,可以将 Python 对象转换为 JSON 格式,并从 JSON 格式中解析出 Python 对象。
urllib 模块:urllib 模块提供了访问网页和处理 URL 的功能,包括下载文件、发送 POST 请求、处理 cookies 等。
作者:曾梦想仗剑闯天涯