python开发案例教程-清华大学出版社(张基温)答案(2.2)

目录

习题 2.2

1、选择题

2、判断题

3、代码分析题

4、简答题

5、程序设计题


习题 2.2


1、选择题


(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. (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.

2、判断题


(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)是等价的。                               (    )


3、代码分析题


(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


4、简答题


(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类型在某些特定情况下非常有用。

  1. Decimal类型:Decimal类型适用于需要高精度计算的场景,尤其是涉及金钱计算或其他需要避免浮点数精度问题的应用。由于计算机内部使用二进制表示浮点数,某些十进制小数无法精确表示,这可能导致计算误差。Decimal类型提供了高精度的十进制数计算,可以解决这个问题。它允许你控制所需的精度,并提供了一系列的操作和数学函数。

以下是一些适合使用Decimal类型的情况:

  • 金融计算:涉及金钱的计算需要高精度的结果,以避免舍入误差。例如,计算银行账户余额、股票价格等。
  • 精确的科学计算:对于需要进行精确科学计算的领域,如物理、化学等,使用Decimal类型可以确保结果的准确性。
  1. Fraction类型:Fraction类型适用于需要处理分数或需要有理数表示的场景。与浮点数相比,分数可以提供精确的表示,并且在进行数学运算时不会产生舍入误差。Fraction类型允许你创建和操作有理数对象,包括分数的约分、相加、相减等操作。

以下是一些适合使用Fraction类型的情况:

  • 分数运算:需要进行分数之间的运算,如分数的相加、相减、相乘等。
  • 精确的比例计算:当需要精确表示比例或比率时,使用Fraction类型可以确保准确性。例如,计算两个数的比例、分割物体等。
  • 音乐和节拍计算:音乐中常常使用分数来表示节拍或音符的长度,使用Fraction类型可以方便地进行计算和表示。

需要注意的是,Decimal类型和Fraction类型在某些操作上可能比浮点数计算更慢,因为它们需要更多的内存和计算资源来处理高精度的数值表示。因此,在选择使用这些类型时,需要根据具体需求和性能考虑来决定是否使用它们。

5、程序设计题

(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)

你可能感兴趣的:(python开发案例教程,java,服务器,前端)