内容正文:
举一反三考点练
《Python程序设计》基本数据类型-课后自测
知识点一 字符串型
1.(单项选择题)在Python中,以下哪个选项不能合法地表示一个字符串?( )
A. 'Hello World'
B. "Python"
C. '''Programming'''
D. {This is a string}
2.(单项选择题)执行代码 s = "Python"; print(s[2:5]) 后,输出的结果是?( )
A. Pyt
B. ytho
C. tho
D. thon
3.(单项选择题)要将字符串 " hello world " 两端的空格去除,应该使用哪个方法?( )
A. replace(' ', '')
B. strip()
C. lstrip()
D. split()
4.(判断题)Python 3中,字符串是不可变序列,任何试图修改字符串中字符的操作都会引发错误。( )
5.(单项选择题)'a' * 3 的计算结果是?( )
A. 'aaa'
B. 3
C. 'a3'
D. 报错
6.(判断题)len('你好') 的返回值是 2。( )
7.(单项选择题)字符串 s = "I love Python",要查找子串 "love" 的位置,应该使用?( )
A. s.index('love')
B. s.find('love')
C. s.search('love')
D. A和B都可以
知识点二 复数型
1.(单项选择题)在Python中,以下哪个表达式可以正确创建一个实部为2,虚部为5的复数?( )
A. c = 2 + 5j
B. c = 2 + j5
C. c = complex(2, 5j)
D. c = 2 + j
2.(单项选择题)已知复数 c = 6 - 8j,执行 abs(c) 的结果是?( )
A. 6
B. 8
C. 10
D. 14
3.(单项选择题)下列关于复数的说法,错误的是?( )
A. 复数可以通过 .real 属性获取其实部。
B. 复数可以作为字典的键。
C. 两个复数可以使用 == 进行相等性比较。
D. 复数 (1+2j) 的共轭复数是 (1-2j)。
4.(判断题)在Python中,c = 3 + 4j 和 c = complex(3, 4) 是等价的。( )
5.(判断题)表达式 (1+1j) ** 2 的计算结果是 2j。( )
6.(判断题)表达式 (1+1j) ** 2 的计算结果是 2j。( )
7.(判断题)Python中,1j 和 j 都表示虚部为1的复数。( )
8.(判断题)比较两个复数 c1 = 3+4j 和 c2 = 4+3j,表达式 c1 > c2 会返回 False。( )
知识点三 数据类型转换
1.(单项选择题)在Python中,执行 result = 5 + 2.0 后,变量 result 的数据类型是什么?( )
A. int
B. float
C. str
D. bool
2.(单项选择题)下列哪个表达式会引发 ValueError 错误?( )
A. int("123")
B. float("3.14")
C. int("3.9")
D. int("hello")
3.(单项选择题)要将字符串 "100" 转换为整数 100,应该使用哪个函数?( )
A. str()
B. bool()
C. int()
D. float()
4.(单项选择题)执行 list("python") 后,得到的结果是?( )
A. ['p', 'y', 't', 'h', 'o', 'n']
B. ("p", "y", "t", "h", "o", "n")
C. "python"
D. ['python']
5.(判断题)在Python中,bool(0) 的结果是 False,而 bool(-1) 的结果是 True。( )
6.(判断题)float(3) 的结果是 3.0,而 int(3.9) 的结果是 4。( )
7.(判断题)任何类型的值都可以使用 str() 函数成功转换为字符串。( )
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
举一反三考点练
《Python程序设计》基本数据类型-课后自测
知识点一 字符串型
1.(单项选择题)在Python中,以下哪个选项不能合法地表示一个字符串?( )
A. 'Hello World'
B. "Python"
C. '''Programming'''
D. {This is a string}
【答案】D
【解析】在Python中,字符串可以用单引号、双引号或三引号括起来。花括号{}通常用于字典或f-string格式化,不能直接用来定义普通字符串。
2.(单项选择题)执行代码 s = "Python"; print(s[2:5]) 后,输出的结果是?( )
A. Pyt
B. ytho
C. tho
D. thon
【答案】C
【解析】字符串切片[start:end]是左闭右开区间。s[2:5]表示获取从下标2(包含)到下标5(不包含)的子串。字符串"Python"的下标0为'P',1为'y',2为't',3为'h',4为'o',5为'n'。因此获取的是下标2、3、4的字符,即"tho"。
3.(单项选择题)要将字符串 " hello world " 两端的空格去除,应该使用哪个方法?( )
A. replace(' ', '')
B. strip()
C. lstrip()
D. split()
【答案】B
【解析】strip()方法用于去除字符串首尾的空白字符(包括空格、制表符、换行符等)。lstrip()只去除左边,rstrip()只去除右边,replace(' ', '')会去除所有空格,包括中间的。
4.(判断题)Python 3中,字符串是不可变序列,任何试图修改字符串中字符的操作都会引发错误。( )
【答案】√
【解析】字符串的不可变性意味着一旦创建,其内容就不能被改变。例如,执行 s = "hello"; s[0] = 'H' 会引发TypeError错误。所有看似修改的操作(如拼接、替换)实际上都是创建了一个新的字符串对象。
5.(单项选择题)'a' * 3 的计算结果是?( )
A. 'aaa'
B. 3
C. 'a3'
D. 报错
【答案】A
【解析】*操作符用于字符串重复。'a' * 3表示将字符串'a'重复3次,得到新字符串'aaa'。
6.(判断题)len('你好') 的返回值是 2。( )
【答案】√
【解析】Python 3中字符串默认使用Unicode编码,len()函数返回的是字符串中字符的个数,而不是字节数。因此,两个中文字符“你好”的长度是2。
7.(单项选择题)字符串 s = "I love Python",要查找子串 "love" 的位置,应该使用?( )
A. s.index('love')
B. s.find('love')
C. s.search('love')
D. A和B都可以
【答案】D
【解析】find()和index()方法都可以用于查找子串。它们的区别在于,如果子串不存在,find()返回-1,而index()会抛出ValueError异常。对于查找存在的子串,两者效果相同。
知识点二 复数型
1.(单项选择题)在Python中,以下哪个表达式可以正确创建一个实部为2,虚部为5的复数?( )
A. c = 2 + 5j
B. c = 2 + j5
C. c = complex(2, 5j)
D. c = 2 + j
【答案】A
【解析】Python中复数的标准表示法是a + bj,其中j前的数字不能省略。complex(a, b)函数的第二个参数b是虚部的数值,应为实数,所以C选项错误。
2.(单项选择题)已知复数 c = 6 - 8j,执行 abs(c) 的结果是?( )
A. 6
B. 8
C. 10
D. 14
【答案】C
【解析】abs(c) 用于计算复数的模,公式为 √(a² + b²)。对于 6 - 8j,其模为 √(6² + (-8)²) = √(36 + 64) = √100 = 10。
3.(单项选择题)下列关于复数的说法,错误的是?( )
A. 复数可以通过 .real 属性获取其实部。
B. 复数可以作为字典的键。
C. 两个复数可以使用 == 进行相等性比较。
D. 复数 (1+2j) 的共轭复数是 (1-2j)。
【答案】B
【解析】复数是可变类型,不可哈希(unhashable),因此不能作为字典的键。字典的键必须是不可变类型,如数字、字符串、元组等。
4.(判断题)在Python中,c = 3 + 4j 和 c = complex(3, 4) 是等价的。( )
【答案】√
【解析】complex(a, b) 函数是创建复数的另一种方式,其结果与直接使用 a + bj 形式创建的复数完全相同。
5.(判断题)表达式 (1+1j) ** 2 的计算结果是 2j。( )
【答案】×
【解析】根据数学规则,(a+bj)² = a² + 2abj + (bj)² = a² - b² + 2abj。所以 (1+1j)² = 1² - 1² + 211j = 0 + 2j,即 2j。哦,计算结果确实是2j,那么这道题的判断应该是正确的。非常抱歉,让我重新审视一下。是的,(1+1j)² = 1 + 2j + j² = 1 + 2j - 1 = 2j。所以原题说法正确。
更正后的题目与解析:
6.(判断题)表达式 (1+1j) ** 2 的计算结果是 2j。( )
【答案】√
【解析】根据数学规则,(a+bj)² = a² + 2abj + (bj)² = a² - b² + 2abj。所以 (1+1j)² = 1² - 1² + 211j = 0 + 2j,即 2j。
7.(判断题)Python中,1j 和 j 都表示虚部为1的复数。( )
【答案】×
【解析】在Python中,j 会被视为一个变量名,而不是虚数单位。要表示虚部为1的复数,必须写成 1j。
8.(判断题)比较两个复数 c1 = 3+4j 和 c2 = 4+3j,表达式 c1 > c2 会返回 False。( )
【答案】×
【解析】Python中的复数不支持大小比较运算符(如 >, <, >=, <=)。尝试执行 c1 > c2 会直接抛出 TypeError 异常,而不是返回 False。
知识点三 数据类型转换
1.(单项选择题)在Python中,执行 result = 5 + 2.0 后,变量 result 的数据类型是什么?( )
A. int
B. float
C. str
D. bool
【答案】B
【解析】这是隐式类型转换。当整数(int)和浮点数(float)进行运算时,Python会自动将低精度的int转换为高精度的float,因此结果为float类型。
2.(单项选择题)下列哪个表达式会引发 ValueError 错误?( )
A. int("123")
B. float("3.14")
C. int("3.9")
D. int("hello")
【答案】D
【解析】int() 函数在转换字符串时,要求字符串内容必须是合法的整数形式。"hello" 包含非数字字符,无法转换为整数,因此会报错。选项C虽然会丢失小数部分,但不会报错。
3.(单项选择题)要将字符串 "100" 转换为整数 100,应该使用哪个函数?( )
A. str()
B. bool()
C. int()
D. float()
【答案】C
【解析】int() 函数用于将一个数字或字符串形式的整数转换为整数类型。
4.(单项选择题)执行 list("python") 后,得到的结果是?( )
A. ['p', 'y', 't', 'h', 'o', 'n']
B. ("p", "y", "t", "h", "o", "n")
C. "python"
D. ['python']
【答案】A
【解析】list() 函数可以将一个可迭代对象(如字符串)转换为列表,字符串中的每个字符会成为列表的一个元素。
5.(判断题)在Python中,bool(0) 的结果是 False,而 bool(-1) 的结果是 True。( )
【答案】√
【解析】在布尔转换中,数字 0 被视为 False,所有非零数字(包括负数)都被视为 True。
6.(判断题)float(3) 的结果是 3.0,而 int(3.9) 的结果是 4。( )
【答案】×
【解析】float(3) 的结果确实是 3.0。但 int() 函数在转换浮点数时是直接截断小数部分,而不是四舍五入,所以 int(3.9) 的结果是 3。
7.(判断题)任何类型的值都可以使用 str() 函数成功转换为字符串。( )
【答案】√
【解析】str() 函数非常通用,它可以将包括数字、布尔值、列表、字典等在内的几乎所有Python对象转换为其对应的字符串表示形式。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$