内容正文:
举一反三考点练
《Python程序设计》基本数据类型-讲义
1.掌握字符串型;
2.掌握复数型;
3.掌握数据类型转换;
知识点一 字符串型
1. 定义与表示
字符串是由零个或多个字符组成的有序序列,用单引号' '、双引号" "或三引号''' '''/""" """括起来。三引号可表示多行字符串。
2. 字符编码
Python 3中字符串默认以Unicode编码存储,支持多语言字符(如中文)。
3. 常用操作
索引:通过[下标]访问单个字符,下标从0开始(如s[0])。
切片:[start:end:step]获取子串,左闭右开(如s[1:3])。
拼接:用+连接字符串(如'a'+'b')。
重复:用*重复字符串(如'a'*3)。
长度:len(s)返回字符个数。
4. 常用方法
大小写转换:upper()(全大写)、lower()(全小写)、capitalize()(首字母大写)。
查找与替换:find(sub)(返回子串首次出现下标,不存在返回-1)、replace(old, new)(替换子串)。
分割与连接:split(sep)(按分隔符分割为列表)、join(iterable)(用字符串连接可迭代对象,如'-'.join(['a','b']))。
去除空白:strip()(去除首尾空白字符)、lstrip()(去左空白)、rstrip()(去右空白)。
格式化:format()方法(如'{} {}'.format('a', 1))或f-string(如f'{var}')。
5. 不可变性
字符串为不可变序列,修改操作(如拼接、替换)会生成新字符串,原字符串不变。
6. 转义字符
用\表示特殊字符,如
(换行)、\t(制表符)、\\(反斜杠)、\'(单引号)。
(单项选择题)下列关于Python字符串的说法,错误的是?( )
A. Python字符串可以用单引号、双引号或三引号表示
B. 字符串是Python中的不可变序列
C. 字符串s = "Python",执行s[0] = 'J'后,s变为"Jython"
D. 字符串切片操作s[1:5]会获取一个包含索引1到4字符的子串
【答案】C
【解析】Python字符串具有不可变性,一旦创建就不能被修改。尝试通过索引给单个字符赋值(如s[0] = 'J')会引发TypeError错误。
【要点】考查字符串的不可变性。
1.(单项选择题)已知字符串s = " Hello, World! ",要去除其首尾的空格,应使用哪个方法?( )
A. s.replace(' ', '')
B. s.strip()
C. s.split()
D. s.lstrip()
【答案】B
【解析】strip()方法用于删除字符串首尾的指定字符(默认为空白字符)。replace(' ', '')会删除所有空格,split()是分割,lstrip()只删除左侧空格。
【要点】考查字符串的strip()方法。
2.(单项选择题)执行以下代码后,变量result的值是什么?( )
s = "python"
result = s.upper().replace('P', 'J')
A. "jython"
B. "JYTHON"
C. "python"
D. "jython"
【答案】B
【解析】s.upper()将字符串转为大写"PYTHON",然后.replace('P', 'J')将大写的'P'替换为'J',最终结果为"JYTHON"。方法调用是链式的,从左到右执行。
【要点】考查字符串方法的链式调用及大小写转换。
3.(判断题)字符串切片s[:: -1]可以实现对字符串s的翻转操作。( )
【答案】√
【解析】切片语法[start:end:step]中,当步长step为-1时,表示从后向前遍历序列,从而实现字符串的翻转。
【要点】考查字符串切片的高级用法。
1.(判断题)在Python 3中,len("中国")的返回值为2,因为一个中文字符占用两个字节。( )
【答案】×
【解析】Python 3的字符串以Unicode编码存储,len()函数返回的是字符的个数,而不是字节数。因此len("中国")返回的是2,因为有两个字符,与字节占用无关。
【要点】考查字符串的Unicode编码和len()函数。
2.(填空题)有字符串path = "C:\\Users\\Admin",若要获取其文件名部分"Admin",可以使用的切片表达式是 path[______]。
【答案】path[-5:]
【解析】可以使用负数索引从字符串末尾开始定位。"Admin"共5个字符,所以起始位置是-5,到末尾省略,即path[-5:]。也可以使用path.split('\\')[-1]等方法,但题目要求切片表达式。
【要点】考查字符串的负数索引和切片。
3.(填空题)使用f-string格式化字符串,若变量name = "Alice",age = 20,要输出字符串"Alice is 20 years old.",应写的语句是 print(f"______")。
【答案】{name} is {age} years old.
【解析】f-string(格式化字符串字面值)允许在字符串前加f,并在花括号{}中直接嵌入变量或表达式。
【要点】考查字符串的f-string格式化方法。
· Python字符串是由单引号、双引号或三引号括起来的Unicode字符序列。
· 字符串是不可变序列,其索引和切片操作会返回新的字符串对象。
· 字符串提供了丰富的内置方法,如大小写转换、查找替换、分割连接和去除空白等。
· f-string是Python中推荐的、简洁高效的字符串格式化方式。
知识点二 复数型
1. 定义与表示
复数形式:a + bj,其中a为实部(实数),b为虚部(实数),j为虚数单位(满足j² = -1)。
创建方式:
直接赋值:c = 3 + 4j(注意j前不能省略数字,如1j不可写成j)。
使用complex()函数:c = complex(a, b),如complex(3, 4)等价于3 + 4j。
2. 属性与方法
实部与虚部:通过.real和.imag获取,如(3+4j).real返回3,.imag返回4。
共轭复数:通过.conjugate()方法获取,返回a - bj,如(3+4j).conjugate()为3 - 4j。
3. 运算规则
四则运算:支持+、-、*、/,规则与数学一致(如(1+2j)*(3+4j) = -5+10j)。
幂运算:使用**,如(1+1j)**2返回0+2j。
比较运算:仅支持==和!=,比较实部和虚部是否均相等(如1+2j == 1+2j为True)。
4. 内置函数支持
abs(c):返回复数的模(√(a² + b²)),如abs(3+4j)返回5。
complex():可将其他类型转为复数,如complex(5)返回5+0j,complex('1+2j')返回1+2j(字符串需符合复数格式)。
5. 注意事项
虚部必须为实数,如3 + j会报错,需写为3 + 1j。
复数不可作为字典键(因不可哈希),也不参与<、>等大小比较。
(单项选择题) 在Python中,下列哪个是合法的复数表示?( )
A. c = 5 + j
B. c = 5 + 1j
C. c = complex(5, j)
D. c = 5j + 1
【答案】B
【解析】Python中,虚数单位j前必须有数字,1j表示虚部为1。选项A缺少虚部系数,会报错;选项C中complex()函数的参数必须是实数;选项D语法不正确。
【要点】考查复数的正确书写格式。
1.(单项选择题) 已知复数 c = 4 - 3j,执行 print(c.imag) 的结果是?( )
A. 4
B. -3
C. 3j
D. -3j
【答案】B
【解析】复数的.imag属性用于获取其虚部,返回的是一个实数。c = 4 - 3j的虚部是-3。
【要点】考查复数.imag属性的使用和返回值类型。
2.(单项选择题) Python内置函数abs()作用于复数时,返回的是?( )
A. 该复数的实部
B. 该复数的虚部
C. 该复数的模(模长)
D. 该复数的共轭复数
【答案】C
【解析】abs()函数用于计算复数的模,即√(实部² + 虚部²)。获取共轭复数应使用.conjugate()方法。
【要点】考查abs()函数在复数上的作用。
3.(判断题) 在Python中,表达式 (1+2j) == (1+2j) 的计算结果为 True。( )
【答案】√
【解析】复数支持相等(==)和不等(!=)比较,当两个复数的实部和虚部分别相等时,它们就相等。
【要点】考查复数的相等比较运算。
1.(判断题) 复数可以作为字典的键(key)使用。( )
【答案】×
【解析】字典的键必须是不可变(可哈希)类型。Python中的复数是可变类型,因此不能作为字典的键。
【要点】考查复数的可变性与哈希特性。
2.(填空题) 在Python中,创建一个实部为2,虚部为5的复数,除了可以使用 c = 2 + 5j 外,还可以使用内置函数 ________ 来实现。
【答案】complex(2, 5)
【解析】complex(a, b)函数是创建复数的另一种标准方式,其中a是实部,b是虚部。
【要点】考查complex()函数的用法。
3.(填空题) 执行代码 c = 6 + 8j; print(c.conjugate()) 后,输出的结果是 ________。
【答案】6-8j
【解析】复数的.conjugate()方法用于返回其共轭复数,即实部不变,虚部取反。
【要点】考查复数的.conjugate()方法。
· Python复数以a+bj形式表示,可通过complex(a,b)函数创建。
· 使用.real、.imag属性和.conjugate()方法可获取实部、虚部及共轭复数。
· 复数支持常规四则运算,abs()函数用于计算其模长。
· 复数是可变类型,不可作为字典的键,且仅支持相等性比较。
知识点三 数据类型转换
1. 基本概念
数据类型转换是将一种数据类型的值转换为另一种类型的过程,分为隐式转换(自动)和显式转换(强制)。
2. 隐式转换
Python自动将低精度类型转换为高精度类型,避免数据丢失。
示例:3 + 1.5 → 4.5(int自动转为float)。
3. 显式转换(强制转换)
通过内置函数实现,需明确指定目标类型。
常用转换函数:
int(x):转为整数(截断小数部分,字符串需为数字)。
示例:int(3.9) → 3;int("123") → 123。
float(x):转为浮点数(字符串需为数字或小数)。
示例:float("3.14") → 3.14。
str(x):转为字符串。
示例:str(100) → "100"。
bool(x):转为布尔值(非零/非空为True,否则False)。
示例:bool(0) → False;bool("abc") → True。
list(x):将可迭代对象(如字符串、元组)转为列表。
示例:list("hi") → ['h', 'i']。
tuple(x):将可迭代对象转为元组。
示例:tuple([1, 2]) → (1, 2)。
4. 注意事项
非法转换:如int("abc")会报错ValueError。
精度丢失:float转int会截断小数,而非四舍五入。
布尔转换:空容器([]、""等)和0转为False,其余为True。
5. 应用场景
输入处理:input()返回字符串,需用int()/float()转为数值。
运算兼容:确保参与运算的数据类型一致(如字符串拼接前转为str)。
(单项选择题) 在Python中,执行 print(5 + 3.0) 语句,输出的结果是?( )
A. 8
B. 8.0
C. 报错
D. "8.0"
【答案】B
【解析】在进行算术运算时,Python会自动进行隐式类型转换,将低精度的int类型(5)转换为高精度的float类型(5.0),然后再进行计算,因此结果是float类型的8.0。
【要点】考查隐式类型转换的规则和结果。
1.(单项选择题) 下列哪个表达式的结果会引发 ValueError 错误?( )
A. int("123")
B. float("3.14")
C. int("3.14")
D. str(100)
【答案】C
【解析】int() 函数在转换字符串时,要求字符串必须是整数形式。"3.14" 包含小数点,无法直接转换为整数,因此会报错。选项A和B的字符串格式正确,选项D是合法的类型转换。
【要点】考查显式类型转换中 int() 函数对字符串格式的要求。
2.(单项选择题) 在Python中,bool([]) 的返回值是?( )
A. True
B. False
C. []
D. 0
【答案】B
【解析】在布尔类型转换中,空序列(如空列表[]、空字符串"")、空字典、数字0等被视为“假”,转换为 False。非空的序列或非零数字则转换为 True。
【要点】考查布尔类型转换的规则,特别是空值的转换。
3.(判断题) float(3) 的结果是 3,因为 float 函数会截断小数部分。( )
【答案】×
【解析】float(3) 的结果是 3.0。float() 函数用于将整数或数字字符串转换为浮点数,不会截断小数,而是会添加小数部分。截断小数的是 int() 函数。
【要点】考查 float() 和 int() 函数在转换数字时的区别。
1.(判断题) 使用 list("hello") 可以将字符串 "hello" 转换为列表 ['h', 'e', 'l', 'l', 'o']。( )
【答案】√
【解析】list() 函数可以将一个可迭代对象(如字符串、元组)转换为列表。当作用于字符串时,它会将字符串中的每个字符作为列表的一个元素。
【要点】考查 list() 函数对字符串的转换作用。
2.(填空题) 在Python中,通过 input() 函数获取的用户输入默认是 ________ 类型,若需进行数学运算,通常需要使用 ________ 函数将其转换为数值类型。
【答案】str(或字符串);int(或 float)
【解析】input() 函数始终返回一个字符串。如果用户输入的是数字,必须使用 int() 或 float() 进行显式转换后才能参与加减乘除等数学运算。
【要点】考查 input() 函数的返回值类型及类型转换的实际应用。
3.(填空题) 执行语句 x = "123"; y = int(x); print(type(y)) 后,屏幕上输出的内容是 ________。
【答案】<class 'int'>
【解析】int(x) 将字符串 "123" 成功转换为整数 123 并赋值给变量 y。type(y) 函数用于查看变量 y 的数据类型,因此输出结果是整数类型的表示形式。
【要点】考查 int() 函数的转换结果和 type() 函数的使用。
· Python数据类型转换分为无需干预的隐式转换和需用函数强制执行的显式转换。
· 常用显式转换函数包括int()、float()、str()等,用于在数字、字符串等类型间转换。
· 类型转换需注意合法性,如将非数字字符串转为整数会报错,且int()转换浮点数时会截断小数。
· input()函数获取的输入为字符串类型,常需通过显式转换才能用于数值计算。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$