内容正文:
举一反三考点练
《Python程序设计》数据运算-讲义
1. 掌握算术运算;
2. 掌握关系运算;
3. 综合应用逻辑运算;
知识点一 算术运算
1. 基本算术运算符
加法(+):两数相加,如 3 + 5 = 8;也可用于字符串拼接(如 "a" + "b" = "ab")。
减法(-):两数相减,如 5 - 3 = 2;也可表示负数(如 -3)。
乘法(*):两数相乘,如 3 * 5 = 15;也可用于字符串重复(如 "a" * 3 = "aaa")。
除法(/):浮点数除法,结果为浮点数,如 10 / 3 = 3.333...。
整除(//):向下取整除法,结果为整数,如 10 // 3 = 3,-10 // 3 = -4。
取余(%):返回除法余数,如 10 % 3 = 1,10 % -3 = -2(符号与除数一致)。
幂运算()**:计算乘方,如 2 ** 3 = 8,3 ** 0.5 = 1.732...。
2. 运算优先级
从高到低:** → *、/、//、% → +、-;括号 () 可改变优先级,如 (2 + 3) * 4 = 20。
3. 类型转换
自动转换:整数与浮点数运算时,结果自动转为浮点数(如 2 + 3.0 = 5.0)。
强制转换:通过 int()、float() 转换类型,如 int(5.6) = 5,float(2) = 2.0。
4. 特殊情况
除数为零:/、//、% 除数为零时抛出 ZeroDivisionError。
精度问题:浮点数运算可能存在精度误差(如 0.1 + 0.2 = 0.30000000000000004)。
5. 复合赋值运算符
简化运算与赋值,如 x += 3 等价于 x = x + 3,其他包括 -=、*=、/=、//=、%=、**=。
6. 数学函数模块
通过 import math 使用,如 math.sqrt(4)(开方)、math.pow(2, 3)(幂运算)、math.pi(圆周率)。
(单项选择题) 在Python中,执行表达式 5 // 2 的结果是?( )
A. 2.5
B. 2
C. 3
D. 1
【答案】B
【解析】// 是整除运算符,它会返回商的整数部分(向下取整)。5除以2等于2.5,其整数部分是2。
【要点】考查整除运算符(//)的功能。
1.(单项选择题) 下列Python表达式中,运算结果为 8.0 的是?( )
A. 16 // 2
B. 16 / 2
C. 2 ** 3
D. int(16 / 2)
【答案】B
【解析】/ 是除法运算符,其结果总是浮点数。16 / 2 的结果是 8.0。16 // 2 结果是整数 8;2 ** 3 结果是整数 8;int(16 / 2) 会将浮点数 8.0 强制转换为整数 8。
【要点】考查除法(/)与整除(//)的区别及类型转换。
2.(单项选择题) 已知变量 x = 5,执行语句 x %= 3 后,变量 x 的值是?( )
A. 8
B. 5
C. 2
D. 1
【答案】C
【解析】%= 是复合赋值运算符,等价于 x = x % 3。原表达式 5 % 3 的计算结果是 2(5除以3的余数),因此 x 的新值为 2。
【要点】考查取余运算符(%)和复合赋值运算符(%=)的使用。
3.(判断题) 在Python中,表达式 0.1 + 0.2 的计算结果精确等于 0.3。( )
【答案】×
【解析】由于计算机内部浮点数的存储精度问题,0.1 + 0.2 在Python中的实际结果是 0.30000000000000004,并非精确的 0.3。
【要点】考查浮点数运算的精度问题。
1.(判断题) 表达式 10 // -3 的计算结果是 -3。( )
【答案】×
【解析】整除运算 // 是向下取整。10 / -3 约等于 -3.33,向下取整(即向负无穷方向取整)的结果是 -4,而不是 -3。
【要点】考查整除运算符(//)对负数的处理规则(向下取整)。
2.(填空题) 在Python中,计算2的10次方的表达式是 2 ** 10,其计算结果是 ______。
【答案】1024
【解析】** 是幂运算符,2 ** 10 表示计算2的10次方,即 2×2×2×2×2×2×2×2×2×2,结果为1024。
【要点】考查幂运算符(**)的计算。
3.(填空题) 若要计算一个半径为 r 的圆的面积,已知数学公式为 πr²,则对应的Python表达式为 3.14159 * r ** 2 或 math.pi * r ** 2。若 r = 5,则该表达式的计算结果约为 ______。(保留两位小数)
【答案】78.54
【解析】根据运算优先级,先计算幂运算 r ** 2(即 5 ** 2 = 25),再进行乘法运算 3.14159 * 25,结果为 78.53975,保留两位小数为 78.54。
【要点】考查算术运算符的优先级和综合应用。
· Python算术运算符包括加减乘除、整除、取余和幂运算,其中除法结果为浮点数。
· 运算符存在优先级,幂运算最高,加减法最低,可用括号改变执行顺序。
· 整数与浮点数混合运算时,结果会自动提升为浮点数类型。
· 复合赋值运算符(如+=)可简化变量自身参与运算并赋值的代码。
知识点二 关系运算
1. 定义
关系运算用于比较两个值的大小或是否相等,结果为布尔值(True或False)。
2. 运算符
>:大于
<:小于
>=:大于等于
<=:小于等于
==:等于(比较值是否相等)
!=:不等于
3. 优先级与结合性
优先级:低于算术运算符,高于逻辑运算符(and、or、not)。
结合性:左结合性(从左到右计算)。
4. 应用场景
条件判断(如if语句)。
循环控制(如while循环条件)。
5. 注意事项
比较对象需可比较(如数字与数字、字符串与字符串)。
避免连续比较(如1 < x < 3需拆分为x > 1 and x < 3)。
(单项选择题)在Python中,下列表达式的运算结果为True的是?( )
A. 10 > 20
B. 5.0 == 5
C. 'abc' > 'abd'
D. 3 != 3
【答案】B
【解析】5.0(浮点数)和5(整数)的值相等,因此==运算结果为True。A选项10不大于20;C选项字符串比较按字典序,'c'小于'd',故'abc'小于'abd';D选项3等于3,所以!=结果为False。
【要点】考查==运算符对不同数值类型的比较。
1.(单项选择题)已知x = 8,y = 12,表达式x + 2 > y and x < y的值是?( )
A. True
B. False
C. 1
D. 0
【答案】B
【解析】根据运算符优先级,先算算术运算x + 2得10。关系运算10 > y(即10 > 12)结果为False,x < y(即8 < 12)结果为True。最后进行逻辑运算False and True,结果为False。
【要点】考查关系运算符与逻辑运算符的优先级及综合运算。
2.(单项选择题)下列关于Python关系运算符的说法,错误的是?( )
A. 关系运算的结果是布尔值True或False。
B. >=运算符表示“大于或等于”。
C. 关系运算符的优先级高于算术运算符。
D. !=运算符用于判断两个值是否不相等。
【答案】C
【解析】关系运算符的优先级低于算术运算符,因此会先进行加减乘除等计算,再进行大小比较。
【要点】考查关系运算符的基本概念和优先级。
3.(判断题)在Python中,表达式5 < 10 < 15是合法的,其运算结果为True。( )
【答案】√
【解析】Python支持链式比较,5 < 10 < 15等价于5 < 10 and 10 < 15,两个条件都为真,故结果为True。
【要点】考查Python特有的链式比较语法。
1.(判断题)关系运算符==用于比较两个变量的内存地址是否相同。( )
【答案】×
【解析】==运算符用于比较两个变量的值是否相等。比较内存地址是否相同应使用is运算符。
【要点】考查==运算符的作用,与is运算符的区别。
2.(填空题)写出表达式not (3 > 2)的运算结果:______。
【答案】False
【解析】先计算括号内的关系运算3 > 2,结果为True。再进行not运算,not True的结果为False。
【要点】考查关系运算与逻辑运算not的结合。
3.(填空题)假设a = 'Python',b = 'python',则表达式a == b的值为______。
【答案】False
【解析】字符串的比较是区分大小写的。'Python'和'python'因首字母大小写不同,被认为是两个不同的字符串,因此==比较结果为False。
【要点】考查关系运算符对字符串的比较规则(区分大小写)。
· 关系运算用于比较两个值,其结果必为布尔值True或False。
· 关系运算符的优先级低于算术运算符,但高于逻辑运算符。
· ==用于比较值是否相等,而!=用于比较值是否不相等。
· Python支持链式比较(如a < b < c),其等价于多个关系运算的and逻辑组合。
知识点三 逻辑运算
1. 逻辑运算符
Python提供三种逻辑运算符,用于连接布尔表达式:
and(与):当所有操作数均为真时,结果为真;否则为假。
or(或):当至少一个操作数为真时,结果为真;否则为假。
not(非):单目运算符,取反操作数的布尔值(真变假,假变真)。
2. 运算规则
优先级:not > and > or(可通过括号改变顺序)。
短路求值:
and:若第一个操作数为假,直接返回假,不计算第二个操作数。
or:若第一个操作数为真,直接返回真,不计算第二个操作数。
3. 非布尔值的逻辑运算
真假判定:非零数字、非空字符串/列表/字典等视为真,0、None、空容器视为假。
返回值:
and:返回第一个假值或最后一个真值。
or:返回第一个真值或最后一个假值。
not:始终返回布尔值(True或False)。
4. 应用场景
条件判断(如if语句)、循环控制、复杂逻辑组合等。
示例:
x, y = 5, 0
print(x and y) # 输出0(y为假,返回y)
print(x or y) # 输出5(x为真,返回x)
print(not y) # 输出True(y为假,取反)
(单项选择题) 在Python中,表达式 5 and 0 的值是?( )
A. True
B. False
C. 5
D. 0
【答案】D
【解析】and运算符在遇到第一个假值时返回该假值。5为真,继续计算0,0为假,因此返回0。
【要点】考查and运算符的短路求值特性及返回值规则。
1.(单项选择题) 设 x = 10,y = 20,z = 30,则表达式 x < y or z > 100 的计算结果是?( )
A. True
B. False
C. 1
D. 0
【答案】A
【解析】or运算符在遇到第一个真值时返回真。x < y(即10 < 20)结果为True,根据短路求值,表达式直接返回True,不再计算z > 100。
【要点】考查or运算符的短路求值特性及布尔表达式的计算。
2.(单项选择题) 下列关于Python逻辑运算符优先级的说法,正确的是?( )
A. and 的优先级高于 not
B. or 的优先级高于 and
C. not 的优先级高于 and
D. 三者优先级相同
【答案】C
【解析】Python中逻辑运算符的优先级从高到低依次是:not > and > or。
【要点】考查逻辑运算符的优先级顺序。
3.(判断题) 在Python中,not 0 的结果是 True。( )
【答案】√
【解析】0在布尔上下文中被视为假(False),not运算符会对其取反,因此not 0的结果是True。
【要点】考查not运算符的功能及数字的真假判定。
1.(判断题) 对于表达式 a or b,如果变量a的值为非零数字,则该表达式的计算结果一定是布尔值True。( )
【答案】×
【解析】or运算符返回的是第一个真值操作数本身,而不一定是布尔值True。例如,5 or 0的结果是5,而不是True。
【要点】考查or运算符的返回值规则,区分逻辑真与布尔值True。
2.(填空题) 执行以下代码后,变量result的值是______。
x = "hello"
y = ""
result = x or y
【答案】"hello"
【解析】or运算符返回第一个真值。非空字符串"hello"为真,因此result被赋值为"hello"。
【要点】考查or运算符在非布尔值运算中的返回值规则。
3.(填空题) 表达式 10 > 5 and not 0 的计算结果是______。
【答案】True
【解析】根据优先级,先计算not 0,结果为True。表达式变为10 > 5 and True。10 > 5为True,所以最终为True and True,结果为True。
【要点】综合考查逻辑运算符的优先级、not运算符及布尔表达式的计算。
· 逻辑运算符and、or、not分别用于实现“与”、“或”、“非”的逻辑关系。
· 逻辑运算具有短路特性,and遇假即停,or遇真即停,可提升效率。
· 非布尔值参与运算时,Python会根据其真假性返回操作数本身而非单纯的布尔值。
· 逻辑运算符的优先级为not > and > or,括号可改变运算顺序。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$