目录
习题 2.2
1、选择题
2、判断题
3、代码分析题
4、简答题
5、程序设计题
(1) 如果 a=2,则表达式 not a < 1 的值为( D )。
A. 2 B. 0 C. False D. True
(2) 如果 a = 1;b = 2;c=3,则表达式.(a == b < c) == (a == b and b < c)的值为( D ? )。
A. -1
B. 0
C. False
D. True
(3) 表达式 1 != 1 >= 0 的值为( C )。
A. 1
B.0
C.False
D.True
(4) 表达式 1 > 0 and 5 的值为( A )。记: A and B = B A为true
A. 1
B. 5
C. False
D. True
(5) 表达式1 is 1 and 2 is not 3 的值为( D )。
A. 2
B. 3
C. False
D. True
(6) 如果a = 1; b = True,则表达式 a is 2 or b is 1 or 3 的值为( B )。
A. 1 B. 3 C. False D. True
(7) 如果 a = 2+3j; b=True,则表达式 b and a 的值为( A )。
A. (2 + 3j) B. -1 C. False D. True
(8) 如果 a = 2 +3j; b = True,则表达式 a and -b 的值为( B )。
A. (2 + 3j) B. -1 C. False D. True
(9) 下列表达式中,值为 True 的是( A? )。
A. 5 + 4j > 2 - 3j B. 3 > 2 > 2 C. (3, 2) < ("a", "b") D."abc" > "xyz"
(10) 下面关于 Python 数据类型的说法中,正确的是( B )。
A. 带小数点的数称为实数
B. 带小数点的数称为浮点数
C. 可以使用科学记数法描述的数称为浮点数
D. 能进行精确除的数称为浮点数
(11) 下面关于 Python 复数的说法中,正确的是( B )
A. 带有j或J的数字称为复数
B. 由实部和虚部两部分组成的数称为复数
C. 复数的虚部要以一个j或J结束
D. 复数的虚部要以一个j或J开头
(12) 关于 Python 中的复数,下列说法中错误的是( D )
A. 表示复数的语法是 real+imag j
B. 实部和虚部都是浮点数
C. 虚部必须有小写的后缓j
D. 方法 conjugate 返回复数的共扼复数
错误的是D. 方法 conjugate 返回复数的共扼复数。
(13) 在下列词江中,不属于 Python 支持的数据类型的是( A )
A. char
B. int
C. float
D. list
(14) 表达式 type(1+2L*3.14)的执行结果是( C )
A.
B.
C.
D.
(1) 比较操作符、逻辑操作符、身份认定操作符适用于任何对象。 ( ✖ )
(2) 表达式 1.+ 1.0e-16 > 1.0 的值为 True。 ( ✖ )
(3) 操作符 is 与==是等价的。 ( ✖ )
(4) 表达式 not (number % 2 == 0 and number % 3 == 0)与(number % 2 != or number % 3 != 0)是等价的。 ( ✖ )
(5) 表达式(x >= 1) and (x < 10)与(1 <= x < 10)是等价的 。 ( ✔ )
(6) 表达式 not(x > 0 and x < 10)与(x < 0) or( > 10)是等价的。 ( ✖ )
(1) 给出下面两个表达式的值,然后上机验证,给出解释。
(a) 0.1 + 0.1 + 0.1 == 0.3
(b) 0.1 + 0.1 + 0.1 == 0.2
(2) 1 or 2 和 and 2 的输出分别是什么?
(a) 1 or 2 结果 1
(b) 1 and 2 结果 2
(3)下面代码的输出结果是什么?
value = 'B' and 'A' or 'c'
print (value)
value='B'and'A'or'c'
print (value)
A
(4) 给定以下赋值:
a = 10; b = 10; c= 100; d = 100; e = 10.0; f = 10.0
请问下面各表达式的输出是什么? 为什么?
(a) a is b
(b) c is d
(c) e is f
a = 10;b = 10;c= 100;d = 100; e = 10.0;f = 10.0
a is b
True
c is d
True
e is f
True
(1) Python 整数的最大值是多少?
在 Python 中,整数的最大值取决于你所使用的系统。
对于32位系统,整数的最大值是
2**31-1
,即2147483647
。对于64位系统,整数的最大值是
2**63-1
,即9223372036854775807
。你可以使用 Python 的
sys
模块来获取这个信息:
这将打印出你的 Python 版本在 32 位或 64 位系统上可以表示的最大整数。
import sys
print(sys.maxsize)
(2) 实型数和浮点数的区别在什么地方?
在 Python 中,实型数和浮点数实际上是相同的类型,称为 float。它们的主要区别在于它们的精度和表示范围。
实型数(或称为定点数)是具有固定小数点位置的数字,例如 '3.14'。Python会自动处理这些数字的小数点位置。
浮点数(或称为浮点实型数)是具有可变小数点位置的数字,例如 '314.159'。Python会自动处理这些数字的小数点位置。
尽管实型数和浮点数在Python中都被视为float类型,但它们在内存中以不同的方式存储,以便更有效地进行数值计算。浮点数使用64位(8字节)的内存空间来存储,而实型数使用固定长度的内存空间来存储,长度取决于操作系统和Python的实现。另外,Python还提供了一个复数类型(complex),可以表示具有实部和虚部的复数。
(3) 上网查询后回答,Decimal 类型和 Fraction 类型适合在什么情况下使用?
Python的Decimal类型和Fraction类型在某些特定情况下非常有用。
- Decimal类型:Decimal类型适用于需要高精度计算的场景,尤其是涉及金钱计算或其他需要避免浮点数精度问题的应用。由于计算机内部使用二进制表示浮点数,某些十进制小数无法精确表示,这可能导致计算误差。Decimal类型提供了高精度的十进制数计算,可以解决这个问题。它允许你控制所需的精度,并提供了一系列的操作和数学函数。
以下是一些适合使用Decimal类型的情况:
- 金融计算:涉及金钱的计算需要高精度的结果,以避免舍入误差。例如,计算银行账户余额、股票价格等。
- 精确的科学计算:对于需要进行精确科学计算的领域,如物理、化学等,使用Decimal类型可以确保结果的准确性。
- Fraction类型:Fraction类型适用于需要处理分数或需要有理数表示的场景。与浮点数相比,分数可以提供精确的表示,并且在进行数学运算时不会产生舍入误差。Fraction类型允许你创建和操作有理数对象,包括分数的约分、相加、相减等操作。
以下是一些适合使用Fraction类型的情况:
- 分数运算:需要进行分数之间的运算,如分数的相加、相减、相乘等。
- 精确的比例计算:当需要精确表示比例或比率时,使用Fraction类型可以确保准确性。例如,计算两个数的比例、分割物体等。
- 音乐和节拍计算:音乐中常常使用分数来表示节拍或音符的长度,使用Fraction类型可以方便地进行计算和表示。
需要注意的是,Decimal类型和Fraction类型在某些操作上可能比浮点数计算更慢,因为它们需要更多的内存和计算资源来处理高精度的数值表示。因此,在选择使用这些类型时,需要根据具体需求和性能考虑来决定是否使用它们。
(1) 用 Python 打印一个表格,给出十进制[0, 32]之间每个数对应的二进制、八进制和十六进制数。要求所有的线条都用字符组成。
if __name__ == '__main__':
# 用 Python 打印一个表格,给出十进制[0, 32]之间每个数对应的
# 二进制、八进制和十六进制数。要求所有的线条都用字符组成。
print("-" * 205, end='\n')
print("|十进制", end="")
for i in range(33):
print("|", end="")
print("%-5d" %i, end="")
print("|")
print("-" * 205, end='\n')
print("|2进制", end="")
for i in range(33):
print("|", end="")
print("%-5s" % bin(i)[2:], end="")
print("|")
print("-" * 205, end='\n')
print("|8进制", end="")
for i in range(33):
print("|", end="")
print("%-5s" % oct(i), end="")
print("|")
print("-" * 205, end='\n')
print("|16进制", end="")
for i in range(33):
print("|", end="")
print("%-5s" % hex(i), end="")
print("|")
print("-" * 205, end='\n')
(2) 用Python 打印一个表格,给出 0~360°之间每隔 20°的 sin、cos、tan 值。要求所有的线条都用字符组成。
import math
if __name__ == '__main__':
# 用Python 打印一个表格,给出 0~360°之间每隔 20°的 sin、cos、tan 值。要求所有的线条都用字符组成。
s = []
c = []
t = []
n = []
for i in range(361):
if i % 20 == 0:
n.append(i)
s.append(round(math.sin(i), 4))
c.append(round(math.cos(i), 4))
t.append(round(math.tan(i), 4))
for i in range(4):
print("-" * 120)
if i == 0:
print("|度数 |", end="")
for j in n:
print("%5d" % j, end='|')
print()
if i == 1:
print("|sin |", end="")
for j in s:
print("%5.2f" % j, end='|')
print()
if i == 2:
print("|cos |", end="")
for j in c:
print("%5.2f" % j, end='|')
print()
if i == 3:
print("|tan |", end="")
for j in t:
print("%5.2f" % j, end='|')
print()
print("-" * 120)