一.练习
1.阐述字符串比较在python中的工作原理。
在 Python 中,字符串比较是逐个字符进行的。比较的依据是字符的 Unicode 编码值(ASCII 码值是 Unicode 编码值的一部分,对于常见字符也适用)。比较顺序是从字符串的第一个字符开始,依次比较对应位置的字符。如果两个字符的编码值相同,则继续比较下一个字符,直到找到不同的字符或者比较完所有字符。
例如,比较 "abc" 和 "abd",首先比较第一个字符 'a' 和 'a',相同;接着比较第二个字符 'b' 和 'b',相同;然后比较第三个字符 'c' 和 'd',因为 'c' 的 Unicode 编码值小于 'd' 的编码值,所以 "abc" < "abd"。如果两个字符串长度不同,较短的字符串在比较完其所有字符后,如果没有不同字符,则较短的字符串小于较长的字符串,如 "abc" < "abcd"。字符编码在这个过程中决定了每个字符的大小关系,从而确定字符串的比较结果。
2.以下哪一个不是python的解释器实现版本
-
A
CPython
-
B
RubyPython
-
C
IronPython
-
D
PyPy
-
Python 解释器的实现版本包括CPython、Jython、IronPython和PyPy。RubyPython并不是Python的解释器实现版本。
-
3.以下哪个不是python的基本数据类型
-
A
整数 (int)B
浮点数 (float)C
字符串 (str)D
数组 (array) -
d.python没有数组的概念,最接近数组的是列表list。
-
4.以下哪个不是print的输出形式
-
A
直接打印数据或变量B
使用百分号(%)操作符进行格式化输出(旧版本常用)C
使用 write () 方法输出D
使用 f-string 进行格式化输出(Python 3.6 及以上版本) -
Python 中 print () 函数的输出方式有基本输出(直接打印数据或变量)、使用百分号(%)操作符格式化输出(旧版本)、format () 方法格式化输出以及 f-string 格式化输出(Python 3.6 及以上版本),没有 write () 方法,C 选项错误。A、B、D 选项均为正确的输出方式。
-
5.对于int('3.1')输出结果正确的是
-
A 5.6 B 5
-
C 6 D 报错
-
int () 函数尝试将字符串转换为整数,但 '5.6' 包含小数点,无法直接转换为整数,会报错,D 选项正确。A 选项是原始字符串转换后的错误结果,B、C 选项是错误的转换值。新手高频易错点。
-
6.在if的嵌套语句中,如果外层if语句条件不满足,那么内层if会?
-
A
仍然执行,不受外层 if 条件影响
-
B
不会执行,因为外层 if 条件不满足就跳过整个嵌套结构
-
C
只有当内层 if 条件与外层 if 条件有逻辑关联时才执行
-
D
根据具体代码逻辑决定是否执行
-
在 if 语句嵌套中,内层 if 语句是在外层 if 条件满足的情况下才会执行,如果外层 if 条件不满足,就会跳过内层 if 语句,B 选项正确。A 选项内层 if 会受外层 if 条件影响,C 选项即使有逻辑关联,外层不满足也不会执行内层,D 选项执行与否取决于外层 if 条件,而不是其他因素。
-
7.在match case 语句中 case模式中模式可以是以下那种形式?
-
A
只能是常量值B
只能是变量名C
可以是常量值、变量名、数据结构模式等多种形式D
只能是复杂的逻辑表达式 -
在 match...case 语句中,模式可以是常量值(如数字、字符串等)、变量名、数据结构模式(如列表、元组等的特定结构模式)等多种形式,C 选项正确。A、B、D 选项描述均不全面,不符合 match...case 语句中模式的实际定义。
-
8.以下那种情况更适合match case 而不是if else 语句
-
A
判断一个数是否在某个区间内B
根据用户输入的简单菜单选项执行相应操作C
处理具有多种可能结构的消息数据D
比较两个数的大小 -
判断一个数是否在区间内、根据简单菜单选项执行操作、比较两个数大小等情况,使用 if - elif - else 语句更直接和简单,A、B、D 选项不适合使用 match...case 语句;而处理具有多种可能结构的消息数据时,match...case 语句可以更清晰地根据消息结构进行模式匹配并处理,C 选项适合使用 match...case 语句。
-
9.len ()函数与for循环结合通常用于?
-
A
获取可遍历对象的长度,以便控制循环次数B
获取可遍历对象中元素的长度之和C
判断循环是否已经遍历完所有元素D
以上都有可能 -
在很多情况下,len() 函数与 for 循环结合使用是为了获取可遍历对象(如列表、字符串、元组等)的长度,从而控制循环次数,所以A选项正确。len()函数本身并不会在for循环中自动计算元素长度之和,只能获取可遍历对象的长度,所以B选项正确。len()函数无法判断循环是否遍历完所有元素,所有C选项错误。
-
10.布尔类型在python中是一种特殊的?
-
A 整型 B 浮点型
-
C 字符串型 D 复数型
-
布尔型数据在 Python 中是特殊的整形,True 为 1,False 为 0,A 选项正确。B、C、D 选项错误。
-
11.以下哪个不是IEEE 754标准规定的浮点数组成部分
-
A 符号位 B 阶码
-
C 尾数位 D 指数位
-
IEEE 754 标准规定浮点数由符号位、阶码和尾数位组成,不包括指数位,D 选项正确。A、B、C 选项是浮点数的组成部分。
-
12.以下哪个函数可以去除ch = ‘ hello ’两端的空格?
-
A s.strip () B s.lstrip ()
-
C s.rstrip () D 以上都可以
-
strip () 函数可以去除字符串两端的空格,A 选项正确。lstrip () 函数只能去除字符串左边的空格,B 选项不符合。rstrip () 函数只能去除字符串右边的空格,C 选项不符合。D 选项虽然 lstrip () 和 rstrip () 单独不能完全满足去除两端空格的要求,但如果按顺序使用也可以达到效果,不过相比之下 A 选项的 strip () 函数更为直接和常用,A 选项是最符合题目要求的答案。
-
13.lst = [1,2,3,4]以下哪种方式可以使元素乘以2
-
A
lst = [i * 2 for i in lst]B
for i in lst: i = i * 2C
lst *= 2D
以上都可以 -
A选项使用了列表推导式(list comprehension),它会创建一个新的列表,其中包含原列表中每个元素乘以2的结果,然后将这个新列表赋值给 lst。因此,这会更新 lst 为 [4, 8, 12, 16, 20];B选项循环遍历 lst 中的每一个元素,但是语句 i = i * 2 只是改变了循环变量 i 的值,并不会改变列表 lst 中的实际元素,所以执行这段代码后,lst 将保持不变;C选项会把列表 lst 中的所有元素重复两次,而不是将元素乘以2。