Python--第4次平时作业

目录

一、单项选择题

二、程序填空题

三、题目

四、测试代码


一、单项选择题

题号

1

2

3

4

5

6

7

8

9

10

答案

B

D

D

C

A

B

B

C

C

C

题号

11

12

13

14

15

16

17

18

19

20

答案

C

C

B

B

C

A

A

B

A

A

题号

21

22

23

24

25

26

27

28

29

30

答案

D

D

A

A

D

A

A

A

B

C

题号

31

32

33

34

35

36

37

38

39

40

答案

B

C

A

A

A

B

A

B

B

A

题号

41

42

43

44

45

46

47

48

49

50

答案

A

D

C

A

A

A

D

C

B

C

题号

51

52

53

54

55

56

57

58

59

60

答案

B

A

B

B

A

D

B

B

C

C

题号

61

62

63

64

65

66

67

68

69

70

答案

A

B

C

A

A

A

C

B

A

D

题号

71

72

73

74

75

76

77

78

79

80

答案

B

A

B

A

C

D

C

A

B

A

题号

81

82

83

84

85

86

87

88

89

90

答案

B

C

B

C

A

C

A

C

A

A

题号

91

92

93

94

95

96

97

98

99

100

答案

B

B

D

D

C

B

D

B

B

D

二、程序填空题

101. n//2

102. n%16

103. global n

104. import os

105. 2*(n-i-1)-1

106. ‘w’

107. t%2

108. s

109. s

110. ‘其他异常!’

111. ‘Goodbye!’

112. Exception

113. len(s)

114. AssertionError

115. IndexError

116. KeyError

117. IOError

118. NameError

119. TypeError

120. 0

121. Person

122. 5

123. value

#124.class Rectangle:def __init__(self, a, b, c, d):self.a = aself.b = bself.c = cself.d = ddef S_Rec(self):print('The area of the rectangle is:', end='')print((self.c-self.a) * (self.b-self.d))r = Rectangle(0,1,2,0)r.S_Rec()#125.class Point:def __init__(self, x=0, y=0, z=0):self.x = xself.y = yself.z = zdef __repr__(self):return '({},{},{})'.format(self.x, self.y, self.z)def getX(self):return self.xdef getY(self):return self.ydef getZ(self):return self.zclass Line(Point):def __init__(self, a=Point(), b=Point()):self.a = aself.b = bdef printLine(self):print('First Point:', self.getPointa())print('Second Point:', self.getPointb())print('The length of the line is ', self.LineLength())def LineLength(self):x = self.a.getX() - self.b.getX()y = self.a.getY() - self.b.getY()z = self.a.getZ() - self.b.getZ()return pow((x**2+y**2+z**2), 1/2)def getPointa(self):return self.adef getPointb(self):return self.ba = Point(0, 0, 0)b = Point(0, 1, 0)l = Line(a, b)l.printLine()

三、题目

1. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f():

    pass

print(f())

A. 无任何输出    B. None     C. pass     D. 出错

2. 一个函数中可以有多少个return语句?(   D )

A. 0    B. 1     C. 2     D. 任意

3. 按照源程序文件方式运行下面程序段后的输出结果是( D   )

f()

def f():

    print('ok')

A. 无任何输出    B. None     C. ok     D. 出错

4. 按照源程序文件方式运行下面程序段后的输出结果是(    C)

def f(x,y):

    return x**2+y

print(f(2,3))

A. 2    B. 3     C. 7     D. 11

5. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(x,y):

    return x**2

    return y**2

    return x+y

print(f(2,3))

A. 4    B. 9     C. 5     D. 出错

6. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f():

    print('AA',end='')

    return

    print('BB',end='')

    return

print(f())

A. None    B. AANone     C. AABBNone     D. 出错

7. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f():

    return 2,3,4

def main():

    print(f())

    return

main()

A. 2,3,4    B. (2,3,4)     C. [2,3,4]     D. 出错

8. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

def f():

    print('AA',end='')

def main():

    print(f())

main()

A. 无任何输出    B. None     C. AANone     D. 出错

9. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

f=lambda:2

def main():

    print(f())

    return

main()

A. 无任何输出    B. None     C. 2     D. 出错

10. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

f=lambda x:(2,x,x**2)

def main():

    print(f(3))

    return

main()

A. 无任何输出    B. 2,3,9     C. (2, 3, 9)     D. 出错

11. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

f,g=lambda x:x**2,lambda y:2*y

def main():

    print('{},{}'.format(f(2),g(3)))

    return

main()

A. 无任何输出    B. None     C. 4,6     D. 出错

12. 按照源程序文件方式运行下面程序段后的输出结果是(   C )

def g():

    return lambda x,y:x+y

def main():

    f=g()

    print(f(2,3))

    return

main()

A. 无任何输出    B. None     C. 5     D. 出错

13. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

f=(lambda:2,lambda x:x*3,lambda y:y**2)

def main():

    print(f[0]()+f[1](2)+f[2](3))

    return

main()

A. 0    B. 17    C. None     D. 出错

14. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x):

    return x(2)

def main():

    y=f(lambda x:x**2)

    print(y)

    return

main()

A. 0    B. 4     C. None     D. 出错

15. 按照源程序文件方式运行下面程序段后的输出结果是( C   )

def f(x):

    x=3

def main():

    x=2

    f(x)

    print(x)

    return

main()

A. None    B. 0     C. 2     D. 3

16. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(x):

    x[1]=5

def main():

    x=[2,3,4]

    f(x)

    print(x)

    return

main()

A. [2,5,4]    B. [5,3,4]     C. [2,3,4]     D. [2,3,5]

17. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(x):

    x['a']=4

def main():

    x=dict(a=2,b=3)

    f(x)

    print(x)

    return

main()

A. {'a': 4, 'b': 3}    B. {'a': 2, 'b': 3}     C. {'a': 3, 'b': 4}     D. {'a': 2, 'b': 4}

18. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x,y):

    x,y=y,x

def main():

    x,y=2,3

    f(x,y)

    print('{},{}'.format(x,y))

    return

main()

A. 3,2    B. 2,3     C. 2,2     D. 3,3

19. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(s):

    s[0],s[1]=s[1],s[0]

def main():

    s=[2,3]

    f(s)

    print(s)

    return

main()

A. [3, 2]    B. [2, 3]     C. [2, 2]     D. [3, 3]

20. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(x,y=4,z=5):

    print(x,y,z,sep=',')

def main():

    f(2,3)

    return

main()

A. 2,3,5    B. 2,4,5     C. 2,4,3     D. 3,4,5

21. 按照源程序文件方式运行下面程序段后的输出结果是(   D

def f(x=4,y,z=5):

    print(x,y,z,sep=',')

def main():

    f(2,3)

    return

main()

A. 2,3,5    B. 4,2,5     C. 4,3,5     D. 出错

22. 按照源程序文件方式运行下面程序段后的输出结果是(  D  )

def f(x=4,y,z=5):

    print(x,y,z,sep=',')

def main():

    f(y=2,x=3)

    return

main()

A. 3,2,5    B. 4,2,5     C. 2,3,5     D. 出错

23. 按照源程序文件方式运行下面程序段后的输出结果是(    A)

def f(x,y=4,z=5):

    print(x,y,z,sep=',')

def main():

    f(y=2,x=3)

    return

main()

A. 3,2,5    B. 3,4,5     C. 2,3,5     D. 出错

24. 按照源程序文件方式运行下面程序段后的输出结果是(   A )

def f(x,y,*z):

    print(x,y,z,sep=',')

def main():

    f(2,3,4,5,6)

    return

main()

A. 2,3,(4,5,6)    B. 2,3,[ 4,5,6]     C. 2,3,{4,5,6}     D. 2,3,4,5,6

25. 按照源程序文件方式运行下面程序段后的输出结果是( D   )

def f(x=6,y=7,**z):

    print(x,y,z,sep=',')

def main():

    f(2,3,4,b=5)

    return

main()

A. 2,3,{None: 4, 'b': 5}    B. 2,3,{'b': 5}     C. 3,4,{'b': 5}     D. 出错

26. 按照源程序文件方式运行下面程序段后的输出结果是(   A )

def f(x=6,y=7,*z,**t):

    print(x,y,z,t,sep=',')

def main():

    f(2,a=4,b=5)

    return

main()

A. 2,7,(),{'a': 4, 'b': 5}     B. 6,7,(2,),{'a': 4, 'b': 5}

C. 2,7,(4,),{'b': 5}         D. 2,7,(4,5),{}

27. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(x=6,y=7,*z):

    print(x,y,z,sep=',')

def main():

    x,*y,z=2,3,4,5

    f(x,y,z)

    return

main()

A. 2,[3, 4],(5,)   B. 2,(3, 4),(5,)    C. 2,3,(4,5)    D. 2,[3, 4],(5)

28. 按照源程序文件方式运行下面程序段后的输出结果是(   A )

def f(x=6,y=7,*z):

    print(x,y,z,sep=',')

def main():

    x,y,*z=2,3,4,5

    f(x,y,z)

    return

main()

A. 2,3,([4, 5],)    B. 2,3,(4, 5,)     C. 2,3,[4, 5]     D. 2,3,([4, 5])

29. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x=6,y=7,*z):

    print(x,y,z,sep=',')

def main():

    x,*y,z=2,3,4,5

    f(x,*y,z)

    return

main()

A. 2,[3, 4],(5,)    B. 2,3,(4, 5)     C. 2,[3],(4, 5)     D. 2,[3,4], (5)

30. 按照源程序文件方式运行下面程序段后的输出结果是( C   )

def f(x,*y):

    m=x;

    for i in y:

        if(i>m):

            m=i

    return m

def main():

    z=f(3,4,2,5,6,8,6,7,1)

    print(z)

    return

main()

A. 1    B. 6     C. 8     D. 9

31. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x):

    a=2;

    x=3

    print(a,x,sep='',end='')

def g(x):

    a=4;

    x=x+5

    print(a,x,sep='',end='')

def main():

    a,x=2,3

    f(a)

    g(x)

main()

A. 23412    B. 2348     C. 26412    D. 2328

32. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

def f(x):

    a=2;

    x=3

    print(a,x,sep='',end='')

def g(x):

    global a

    a=a+4;

    x=x+5

    print(a,x,sep='',end='')

a,x=2,3

f(a)

g(x)

A. 23412    B. 2348     C. 2368    D. 2328

33. 按照源程序文件方式运行下面程序段后的输出结果是(    A)

x=2

def f(x=4):

    print(x,end='')

f(x)

x=3

f(x)

A. 23    B. 32     C. 22     D. 33

34. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

x=2

def f(x=4):

    print(x,end='')

def main():

    global x

    f(x)

    x=3

    f(x)

main()

A. 23    B. 32     C. 22     D. 33

35. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

s='uestc'

def f(i):

    if(i<-len(s)):

       return

    else:

        f(i-1)

    print(s[i],end='')

def main():

    f(-1)

main()

A. uestc    B. ctseu     C. None     D. 出错

36. 按照源程序文件方式运行下面程序段后的输出结果是( B   )

def f(i):

    if(i>=len(s)):

       return

    else:

        f(i+1)

    print(s[i],end='')

def main():

    global s

    s='uestc'

    f(0)

main()

A. uestc    B. ctseu     C. None     D. 出错

37. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        nonlocal x

        print(x,end='')

        x=4

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 2242    B. 2224     C. 2442     D. 3242

38. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        global x

        print(x,end='')

        x=4

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 2242    B. 2224     C. 2442     D. 3242

39. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        global x

        print(x,end='')

        x=4

        def h():

            print(x,end='')

            x=5

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 2242    B. 2224     C. 24422     D. 32422

40. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        global x

        print(x,end='')

        x=4

        def h():

            global x

            print(x,end='')

            x=5

        h()

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 22425    B. 22455     C. 24422     D. 32422

41. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(n):

    print(n,end='')

    if(n<1):

        return

    else:

        f(n-1)

    print(n,end='')

def main():

    f(3)

main()

A. 3210123    B. 32100123     C. 321123     D. 32123

42. 按照源程序文件方式运行下面程序段后的输出结果是(  D  )

def f():

    global x

    x=4

    y=5

    def g():

        nonlocal y

        global x

        x=6

        y=7

        print('{}{}'.format(x,y),end='')

    g()

    print('{}{}'.format(x,y),end='')

x=2

y=3

f()

print('{}{}'.format(x,y),end='')

A. 674723    B. 674523     C. 676767     D. 676763

43. 要将源程序模块文件搜索路径“D:\user\”加入sys.path中,正确的语句是(   C

A. import sys;sys.path.append('D:\user\')     B. import sys;sys.path.append(r'D:\user\')

C. import sys;sys.path.append("D:\\user\\")   D. import sys;sys.path.append(r"D:\user\")

44. 要将源程序模块文件搜索路径“D:\user\”加入sys.path中,错误的语句是(   A

A. import sys;sys.path.append(r'D:\user\')    B. import sys;sys.path.append('D:\\user\\')

C. import sys;sys.path+=["D:\\user\\"]       D. import sys;sys.path+=['D:\\user\\']

45. 按照源程序文件方式运行下面程序c.py后的输出结果是( A   )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print('AA',end='')

# D:\user\b.py

def g():

    print('BB',end='')

# D:\user\c.py

from a import f

from b import g

def main():

    f()

    g()

    print('CC')

main()

A. AABBCC    B. CC     C. 无输出     D. 出错

46. 按照源程序文件方式运行下面程序c.py后的输出结果是(   A

在D:\user\aa文件夹中建立如下a.py源程序文件:

# D:\user\aa\a.py

def f():

    print('AA',end='')

在D:\user\bb文件夹中建立如下b.py源程序文件:

# D:\user\bb\b.py

def g():

    print('BB',end='')

在D:\user\cc文件夹中建立如下c.py源程序文件:

# D:\user\cc\c.py

import sys

sys.path.append('D:\\user\\aa')

sys.path.append('D:\\user\\bb')

from a import f

from b import g

def main():

    f()

    g()

    print('CC')

main()

A. AABBCC    B. CC     C. 无输出     D. 出错

47. 按照源程序文件方式运行下面程序c.py后的输出结果是( D   )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

# D:\user\b.py

def g():

    print(__name__,end='')

# D:\user\c.py

from a import f

from b import g

def main():

    f()

    g()

    print(__name__,end='')

main()

A. abc    B. __main__bc     C. a__main__c     D. ab__main__

48. 按照源程序文件方式运行下面程序b.py后的输出结果是( C   )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

# D:\user\b.py

import a,c

def g():

    a.f()

    print(__name__,end='')

    c.main()

g()

# D:\user\c.py

def main():

    print(__name__,end='')

A. abc    B. __main__bc     C. a__main__c     D. ab__main__

49. 按照源程序文件方式运行下面程序a.py后的输出结果是(  B )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

f()

# D:\user\b.py

def g():

    print(__name__,end='')

g()

# D:\user\c.py

def main():

    print(__name__,end='')

main()

A. a    B. __main__     C. a__main__     D. __main__a

50. 按照源程序文件方式运行下面程序a.py后的输出结果是(  C  )

在D:\user文件夹中建立如下两个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

if __name__=='__main__':

    f()

    import b

    b.g()

# D:\user\b.py

def g():

    print(__name__,end='')

if __name__=='__main__':

    g()

    import a

    a.f()

A. ab    B. __main__a     C. __main__b     D. __main____main__

51. 按照源程序文件方式运行下面程序b.py后的输出结果是(B   

在D:\user文件夹中建立如下两个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

if __name__=='__main__':

    f()

    import b

    b.g()

# D:\user\b.py

def g():

    print(__name__,end='')

if __name__=='__main__':

    g()

    import a

    a.f()

A. ab    B. __main__a     C. __main__b     D. __main____main__

52. 如果当前源程序模块文件是主模块文件,则其系统变量“__name__”的值为(  A  )

A. __main__              B. 其源程序文件的文件根名(不加后面的.py,即模块名)

C. 其源程序文件的路径    D. 其源程序文件所在的文件夹名字

53. 如果当前源程序模块文件是非主模块文件,则其系统变量“__name__”的值为( B  )

A. __main__              B. 其源程序文件的文件根名(不加后面的.py,即模块名)

C. 其源程序文件的路径    D. 其源程序文件所在的文件夹名字

54. 新建一个文本文件,欲对其进行读和写操作,则该文件的正确打开方式是( B   )

A. f=open(r'D:\user\a.txt','r+')      B. f=open(r'D:\user\a.txt','w+')

C. f=open(r'D:\user\a.txt','rb+')     D. f=open(r'D:\user\a.txt','wb+')

55. 打开一个已经存在的文本文件,欲对其进行读和写操作,则该文件的正确打开方式是(  A  )

A. f=open(r'D:\user\a.txt','r+')      B. f=open(r'D:\user\a.txt','w+')

C. f=open(r'D:\user\a.txt','rb+')     D. f=open(r'D:\user\a.txt','wb+')

56. 打开一个已经存在的二进制文件,欲在其原有内容后面写入一些新内容,则该文件的正确打开方式是(   D )

A. f=open(r'D:\user\a.txt','r+')       B. f=open(r'D:\user\a.txt','wb+')

C. f=open(r'D:\user\a.txt','a+')       D. f=open(r'D:\user\a.txt','ab+')

57. 下列哪种打开文件的方式会造成原文件内容被清除?(  B  )

A. f=open(r'D:\user\a.txt','r+')       B. f=open(r'D:\user\a.txt','w+')

C. f=open(r'D:\user\a.txt','a+')       D. f=open(r'D:\user\a.txt','ab+')

58. 用方法“f=open(r'D:\user\a.txt','r+')”打开文件,则关闭该文件的方法是(  B  )

A. close(f)    B. f.close()     C. close(f,'r+')     D. f.close('r+')

59. 已知文本文件“D:\user\t.txt”的内容如下,按照源程序文件方式运行下面各程序段后,输出结果与其余三项不同的是(C    )

# D:\user\t.txt

AA

BBB

CCCC

A.

f=open(r'D:\user\t.txt')

s=f.read()

print(s)

f.close()

B.

f=open(r'D:\user\t.txt','r')

while True:

    s=f.read(2)

    if not s:

        break

    print(s,end='')

f.close()

C.

f=open(r'D:\user\t.txt','r')

while True:

    s=f.readline()

    if not s:

        break

    print(s)

f.close()

D.

f=open(r'D:\user\t.txt')

for i in f:

    print(i,end='')

f.close()

60. 已知文本文件“D:\user\t.txt”的内容如下,按照源程序文件方式运行下面各程序段后,输出结果与其余三项不同的是(C)

AA

BBB

CCCC

A.

f=open(r'D:\user\t.txt')

s=[]

for i in f:

    s+=[i]

print(s)

f.close()

B.

f=open(r'D:\user\t.txt','r')

s=[]

while True:

    t=f.readline()

    if not t:

        break

    s+=[t]

print(s)

f.close()

C.

f=open(r'D:\user\t.txt','r')

s=[]

t=''

while True:

    i=f.read(1)

    if not i:

        break

    if (i!='\n'):

        t+=i

    else:

        t+='\n'

        s+=[t]

        t=''

print(s)

f.close()

D.

f=open(r'D:\user\t.txt','r')

s=f.readlines()

print(s)

f.close()

61. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

import string

f=open(r'D:\user\t.txt','w+')

f.write(string.digits+string.ascii_uppercase)

f.seek(0)

s=f.read(10)

print(s)

f.close()

A. 0123456789    B. ABCDEFGHIJ     C. 01234     D. ABCDE

62. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

import string

f=open(r'D:\user\t.txt','w+')

f.write(string.digits+'\n'+string.ascii_uppercase+'\n'+string.ascii_lowercase)

print(f.tell(),end=',')

f.seek(0)

s=f.read(1)

print(f.tell(),end=',')

t=f.readline()

print(f.tell(),end=',')

print(len(s+t))

f.close()

A. 65,1,12,12    B. 66,1,12,11     C. 66,1,12,12     D. 65,1,12,11

63. 按照源程序文件方式运行下面程序段后的输出结果是(       C  )

import string

f=open(r'D:\user\t.dat','wb+')

s=string.digits+string.ascii_uppercase+string.ascii_lowercase

sb=s.encode()

f.write(sb)

print(f.tell(),end=',')

f.seek(-5,2)

t=f.read()

print(t,end=',')

print(f.tell())

f.close()

A. 0,b'vwxyz',62    B. 0,'vwxyz',62     C. 62,b'vwxyz',62     D. 62,'vwxyz',62

64. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

import string

f=open(r'D:\user\t.dat','wb+')

s=string.digits+string.ascii_uppercase+string.ascii_lowercase

sb=s.encode()

f.write(sb)

f.seek(-40,1)

print(f.tell(),end=',')

f.seek(-10,1)

print(f.tell())

f.close()

A. 22,12    B. 21,11     C. 21,12     D. 22,13

65. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

import string

f=open(r'D:\user\t.dat','wb+')

s='电子科技大学'

sb=s.encode('gbk')

f.write(sb)

f.seek(-12,1)

print(f.tell(),end=',')

t=f.read(4)

x=t.decode('gbk')

print(x,end=',')

print(f.tell())

f.close()

A. 0,电子,4    B. 0,电子科技,4     C. 6,科技大学,18     D. 4,科技,8

66. 在交互命令模式下,获取当前工作目录的程序段是( A   )

A. import os;os.getcwd()       B. import os;os.chdir()

C. import os;os.listdir()        D. import os;os.mkdir()

67. 在交互命令模式下,创建“D:\aa”文件夹(目录)的程序段是(  C  )

A. import os;os.rmdir(r'D:\aa')     B. import os;os.listdir(r'D:\aa')

C. import os;os.mkdir(r'D:\aa')     D. import os;os.chdir(r'D:\aa')

68. 在交互命令模式下,列出“D:\user”文件夹(目录)中内容的程序段是(   B )

A. import os;os.rmdir(r'D:\user')     B. import os;os.listdir(r'D:\user')

C. import os;os.mkdir(r'D:\user')     D. import os;os.chdir(r'D:\user')

69. 在交互命令模式下,删除空目录“D:\aa”的程序段是( A   )

A. import os;os.rmdir(r'D:\aa')     B. import os;os.listdir(r'D:\aa')

C. import os;os.mkdir(r'D:\aa')     D. import os;os.chdir(r'D:\aa')

70. 在交互命令模式下,将系统当前目录改为“D:\aa”的程序段是(  D  )

A. import os;os.rmdir(r'D:\aa')     B. import os;os.listdir(r'D:\aa')

C. import os;os.mkdir(r'D:\aa')     D. import os;os.chdir(r'D:\aa')

71. 功能与下面程序段相同的是(  B  )

import os

path=os.getcwd()

s=os.listdir(path)

print(s)

A.

import os

path=os.getcwd()

s=os.walk(path)

print(s)

B.

import os

path=os.getcwd()

s=os.walk(path)

for dirpath,dirnames,filenames in s:

    print(filenames)

C.

import os

path=os.getcwd()

s=os.walk(path)

for dirpath,dirnames,filenames in s:

    print(dirpath)

D.

import os

path=os.getcwd()

s=os.walk(path)

for dirpath,dirnames,filenames in s:

    print(dirnames)

72. 查看文件“D:\user\a.txt”大小(单位是字节)的程序段是(  A  )

A.

import os

s=os.path.getsize(r'D:\user\a.txt')

print(s)

B.

import os

s=os.path.exists(r'D:\user\a.txt')

print(s)

C.

import os

s=os.stat(r'D:\user\a.txt')

print(s)

D.

import os

s=os.path.getctime(r'D:\user\a.txt')

print(s)

73. 判断文件“D:\user\a.txt”是否存在的程序段是( B   )

A.

import os

s=os.path.getsize(r'D:\user\a.txt')

print(s)

B.

import os

s=os.path.exists(r'D:\user\a.txt')

print(s)

C.

import os

s=os.stat(r'D:\user\a.txt')

print(s)

D.

import os

s=os.path.getctime(r'D:\user\a.txt')

print(s)

74. 将文件“D:\user\a.txt”改名为“D:\user\b.txt”,不能实现该功能的程序段是(  A  )

A.

import os

os.rename('D:\user\a.txt','D:\user\b.txt')

B.

import os

os.rename('D:/user/a.txt','D:/user/b.txt')

C.

import os,shutil

shutil.copyfile('D:/user/a.txt','D:/user/b.txt')

os.remove('D:/user/a.txt')

D.

import shutil

shutil.move('D:/user/a.txt','D:/user/b.txt')

75. 将文件“D:\user\a.txt”复制为“D:\b.txt”,正确的程序段是(  C  )

A.

import os

os.rename('D:\\user\\a.txt','D:\\b.txt')

B.

import os

os.remove('D:\\user\\a.txt','D:\\b.txt')

C.

import shutil

shutil.copyfile('D:\\user\\a.txt','D:\\b.txt')

D.

import shutil

shutil.move('D:\\user\\a.txt','D:\\b.txt')

76. 在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的( D   )

A. 什么也不读取    B. 一个字符     C. 一行数据     D. 所有数据

77. 在Python中可使用readline([size])来读取文件中的数据,如果参数size省略,则读取文件中的(  C  )

A. 什么也不读取    B. 一个字符     C. 一行数据     D. 所有数据

78. 在Python中可使用readlines([size])来读取文件中的数据,此时返回的数据为(  A  )

A. 列表    B. 字符     C. 字符串     D. 对象

79. 在Python中使用seek(offset)来移动文件位置指针,当offset为负值时,表示(  B  )

A. 文件指针向文件尾部方向移动    B. 文件指针向文件头部方向移动

C. 文件指针不向任何地方移动      D. 文件指针直接移动到文件末尾

80. 在Python中,欲对文件任意位置进行写入操作,则文件的打开方式应该是( A  )

A. 'w'    B. 'a'     C. 'a+'     D. 'w'或'a'

81. 在Python中,打开文件时没有指出打开方式,则默认的文件打开方式是(  B  )

A. 'w'    B. 'r'     C. 'a'     D. 'w+'

82. 在Python中,如果文件打开方式是'w',当向该文件写入‘uestc’时,则(  C  )

A. 将该字符串插入在文件头部           B. 将该字符串插入在文件尾部

C. 将用该字符串覆盖文件的原有内容     D. 报错

83. 在Python中,如果文件打开方式是'a',则打开文件时文件位置指针在(  B  )

A. 文件头部    B. 文件尾部     C. 文件中部     D. 随机位置

84. 在Python中,不能表示当前文件目录的是( C   )

A. '.'    B. './'     C. '..'或'../'     D. import os;os.getcwd()

85. 按照源程序文件方式运行下面程序段后的输出结果是( A  )

try:

    x=[3,4,5]

    y=2+x

    print(y)

except TypeError:

    print('类型不匹配!')

except SyntaxError:

    print('语法错误!')

except:

    print('其他错误!')

A. 类型不匹配!    B. 语法错误!     C. 其他错误!     D. [2,3,4,5]

86. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

try:

    x=x+2

except TypeError:

    print('AA')

except SyntaxError:

    print('BB')

except NameError:

    print('CC')

except:

    print('DD')

A. AA    B. BB     C. CC     D. DD

87. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

try:

    s=(2,3,4)

    s[1]=5

except TypeError:

    print('AA')

except SyntaxError:

    print('BB')

except NameError:

    print('CC')

except:

    print('DD')

A. AA    B. BB     C. CC     D. DD

88. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

try:

    x=1+2,2+3,3+4

except:

    print('AA',end='')

else:

    print('BB',end='')

finally:

    print('CC',end='')

print('DD',end='')

A. AA    B. AACCDD     C. BBCCDD     D. AABBCCDD

89. 在Python语言中定义一个类时,如果省略父类名,则默认的父类是( A   )

A. object    B. root     C. pass     D. None

90. 类中私有属性和私有方法的名称是(  A  )

A. 以双下划线(__)开头         B. 以双下划线(__)结尾

C. 用private声明                 D. 以单下划线(_)开头

91. 在Python中,类的构造方法名是( B   )

A. 与类名相同    B. __init__     C. __new__     D. 以@开头

92. 在类中方法外定义的属性是(  B  )

A. 实例属性    B. 类属性     C. 私有属性     D. 公有属性

93. 在Python中,哪种方法内只能访问类属性,不能访问实例属性?(  D  )

A. 实例方法    B. 类方法     C. 静态方法     D. 析构方法

94. 在Python中,用户自定义类直接继承的父类个数是(   D )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

95. 下列方法中,哪种方法可以没有形式参数?(  C  )

A. 带有装饰器@classmethod的方法      B. 实例方法

C. 带有装饰器@staticmethod的方法      D. 构造方法和析构方法

96. 在Python中,一个类有多少个类对象?(B   )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

97. 在Python中,一个类可以有多少个实例对象?(   D )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

98. 在Python中,一个类有多少个(有效的)构造方法?(  B  )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

99. 在Python中,一个类可以有多少个类属性?(  B

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

100. 在Python中,一个类可以有多少个实例方法?(  D

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

二、程序填空题

(为便于阅卷,不用抄题,只提交各小题答案。请将答案填写在答题纸上。)

101. 下面程序的功能是从键盘读入一个正整数,将其转换为二进制数,并输出之。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

def f(n):

    if(n==0):

        return

    else:

        f(_________________n//2         _________________________)

    print(n%2,end='')

def main():

    x=eval(input('x='))

    print('0b',end='')

    f(x)

main()

102. 下面程序的功能是从键盘读入一个正整数,将其转换为十六进制数,并输出之。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

def f(n):

    global s

    if(n==0):

        return

    else:

        f(n//16)

    print(s[____________________  n%16  ______________________],end='')

def main():

    global s

    s='0123456789ABCDEF'

    x=eval(input('x='))

    print('0x',end='')

    f(x)

main()

103. 下面程序的功能是模拟系统登录过程。从键盘读入一个账号的密码,如果输入的密码正确,就显示“欢迎光临!”;如果输入的密码错误,则显示“密码错误!”;如果用户输入的密码连续错误3次,则显示“你不是合法用户!”。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

     

源程序:

def f():

    ______________    global n  ____________________________

    if(n>3):

        print('你不是合法用户!')

        return

    else:

        k=input('请输入密码:')

        if(k=='123'):

            print('欢迎光临!')

            x=input('继续?(y/n)')

            if (x=='y' or x=='Y'):

                n=1

                f()

            else:

                return

        else:

            print('密码错误!')

            n=n+1

            f()

def main():

    global n

    n=1

    f()

main()

104. 下面程序的功能是遍历输出当前工作目录中的所有文件和文件夹。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

__________________  import os ________________________

s=[]

path=os.getcwd()

f=os.walk(path)

for dirpath,dirnames,filenames in f:

    for i in dirnames:

        s.append(os.path.join(dirpath,i))

    for i in filenames:

        s.append(os.path.join(dirpath,i))

for i in s:

    print(i)

105. 下面程序的功能是从键盘读入菱形图案的行数(上三角行数),构造该菱形图案,并将其存入文本文件“D:\user\a.txt”中。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

f=open(r'D:\user\a.txt','w')

n=int(input('n='))

for i in range(n):

    s=''

    for j in range(n-i-1):

        s+=' '

    for k in range(2*i+1):

        s+='*'

    f.write(s+'\n')

for i in range(n-1):

    s=''

    for j in range(i+1):

        s+=' '

    for k in range(_________________  2*(n-i-1)-1 _________________________):

        s+='*'

    f.write(s+'\n')

f.close()

with open('D:/user/a.txt','r') as f:

    s=f.read()

print(s)

106. 下面程序的功能是随机生成100个0~100的正整数,每个整数占一行,写入“D:\user\a.txt”文件中。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

import random

with open('d:/user/a.txt', _______________  ‘w’ ___________________________) as f:

    for i in range(100):  

        f.write(str(random.randrange(0,100))+'\n')

107. 下面程序的功能是随机生成100个0~100的正整数,每个整数占一行,写入“D:\user\a.txt”文件中。然后统计其中奇数的个数。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

import random

with open('d:/user/a.txt','w') as f:

    for i in range(100):

        f.write(str(random.randrange(0,100))+'\n')

n=0

with open('d:/user/a.txt','r') as f:

    for i in f:

        t=int(i)

        if(____________________  n % 2 ______________________):

            n=n+1

print(n)

108. 下面程序的功能是文本文件的复制,即将已经存在的“D:\user\a.txt”文件内容复制到文件“D:\user\b.txt”中。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

f1=open('d:/user/a.txt','r')

f2=open('d:/user/b.txt','w')

s=f1.read()

f2.write(____________________  s ______________________)

f1.close()

f2.close()

109. 下面程序的功能是从键盘读入一个字符串,将其转换为整数。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

import sys

x=input('x=')

try:

    y=int(x)

except Exception as __________________________________________:

    print(s)

    sys.exit(0)

else:

    print(y)

110. 下面程序的功能是从键盘读入一个整数,对除法运算进行分类异常处理。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

       

源程序:

try:

    x=eval(input('x='))

    y=12/x

except (NameError,ZeroDivisionError) as s:

    print(s)

except:

    print(_________________其他异常!’  _________________________)

else:

    print(y)

111. 下面程序的功能是从键盘读入一个整数,测试各种异常处理场景。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

       

源程序:

try:

    x=eval(input('x='))

    if(x==1):raise AttributeError('对象属性异常')

    elif(x==2):raise IOError('输入输出异常')

    elif(x==3):raise IndexError('索引异常')

    elif(x==4):raise KeyError('关键字异常')

    elif(x==5):raise NameError('名字异常')

    elif(x==6):raise TypeError('类型异常')

    elif(x==7):raise ValueError('值异常')

    elif(x==8):raise ZeroDivisionError('零除异常')

    elif(x==9):raise EOFError('文件结束异常')

    else:print('没有触发异常!')

    print('in try')

except (AttributeError,IOError,IndexError,KeyError,NameError,\

        TypeError,ValueError,ZeroDivisionError,EOFError) as s:

    print(s)

except:

    print('其他异常!')

else:

    print('正常!')

finally:

    print(____________________ ‘Goodbye!’  ______________________)

112. 下面程序的功能是从键盘读入一个整数,测试自定义零除异常类的异常处理。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

class MyException(________________ Exception  __________________________):

    def __init__(self,data):

        self.data=data

def main():

    try:

        x=eval(input('x='))

        if x==0:

            raise MyException('不能为0哦!')

        y=100/x

        print(y)

    except MyException as s:

        print(s)

    finally:

        print('Goodbye!')

main()

113. 下面程序的功能是从键盘读入一个整数,根据该整数,从字符串中提取指定字符。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

s='uestc'

i=eval(input('i='))

assert i<____________ len(s)  ______________________,'索引下标超出字符串的长度范围啦!'

print('s[{}]={}'.format(i,s[i]))

114. 下面程序的功能是从键盘读入一个整数,根据该整数,从字符串中提取指定字符。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

s='uestc'

try:

    i=eval(input('i='))

    assert i<len(s),'索引下标超出字符串的长度范围啦!'

    print('s[{}]={}'.format(i,s[i]))

except ___________________ AssertionError  _______________________ as e:

    print('这是断言错误!',e)

except:

    print('其他错误!')

115. 下面程序的功能是从键盘读入一个整数,根据该整数,从字符串中提取指定字符。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

s='uestc'

try:

    i=eval(input('i='))

    print('s[{}]={}'.format(i,s[i]))

except ______________________ IndexError  ____________________ as e:

    print(e)

except:

    print('其他错误!')

116. 下面程序的功能是从键盘读入一个字符串关键字,根据该字符串关键字,从字典中提取指定词条。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

d=dict(a=2,b=3,c=4)

try:

    key=input('key=')

    print("d['{}']={}".format(key,d[key]))

except ________________  KeyError __________________________ as e:

    print('字典中没有这个词条:',e)

except:

    print('其他错误!')

117. 下面程序的功能是从键盘读入一个文件名,然后打开该文件,读取其内容,再关闭该文件。假设D:\user\b.txt文件的内容为“我是b.txt文件!”。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

d=dict(a=2,b=3,c=4)

try:

    fn=input('fileName=')

    f=open('D:/user/'+fn,'r')

    print(f.read())

    f.close()

except ____________________ IOError  ______________________ as e:

    print('没有找到这个文件:',e)

except:

    print('其他错误!')

118. 下面程序的功能是从键盘读入一个变量名,输出其值。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

x,y,z=2,3,4

try:

    n=input('name=')

    print(eval(n))

except _____________________ NameError  _____________________ as e:

    print('没有找到这个变量:',e)

except:

    print('其他错误!')

119. 下面程序的功能是从键盘读入一个数据作为函数调用的实在参数。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

def f(s):

    s[2]=3

    return s[2]

try:

    x=eval(input('x='))

    y=f(x)

    print(y)

except __________________  TypeError ________________________ as e:

    print('类型不匹配:',e)

except:

    print('其他错误!')

120. 下面程序的功能是统计员工数量和显示员工信息。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

class Employee:

    empCount=__________________________________________

    def __init__(self,name,salary):

        self.name=name

        self.salary=salary

        Employee.empCount+=1

    def displayCount(self):

        print("empCount={}".format(Employee.empCount))

    def displayEmployee(self):

        print("name={},salary={}".format(self.name,self.salary))

def main():

    emp1=Employee("zhangyi",8000)

    emp2=Employee("zhanger",9000)

    emp1.displayEmployee()

    emp2.displayEmployee()

    print("empCount={}".format(Employee.empCount))

    emp1.displayCount()

main()

121. 下面程序的功能是创建父类Person,并派生出子类Man。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

class Person:

    def __init__(self,name,age):

        self.name=name

        self.age=age

    def print_age(self):

        print(self.name,".age=",self.age)

class Man(_____________________ Person  _____________________):

    work="Teacher"

    def print_age(self):

        print("{}'s age is {}".format(self.name,self.age))

    def print_work(self):

        print("{}'s work is {}".format(self.name,self.work))

def main():

    a=Man("Bob",30)

    a.print_age()

    a.print_work()

main()

122. 下面程序的功能是求圆、正方形和矩形的面积。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

import math

class Circle:

    def __init__(self,r):

        self.r=r

    def getArea(self):

        return math.pi*self.r**2

class Square:

    def __init__(self,size):

        self.size=size

    def getArea(self):

        return self.size*self.size

class Rectangle:

    def __init__(self,w,h):

        self.w=w

        self.h=h

    def getArea(self):

        return self.w*self.h

def main():

    a=Circle(2)

    b=Square(3)

    c=Rectangle(4, __________________________________________)

    print("a=",a.getArea())

    print("b=",b.getArea())

    print("c=",c.getArea())

main()

123. 下面程序的功能是实现“+”和“-”的运算符重载。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

提示:Python的运算符是通过调用对象的特殊方法来实现的。重写运算符所对应的特殊方法,就可以实现运算符的重载。详情参见本作业文档最后面的附录。

源程序:

class MyNumber:

    def __init__(self,value):

        self.data= _______________ value  ___________________________

    def __repr__(self):  # 对应于内置函数str(),用于显示数据

        return "MyNumber({})".format(self.data)

    def __add__(self,other):

        v=self.data+other.data

        return MyNumber(v)

    def __sub__(self,other):

        v=self.data-other.data

        return MyNumber(v)

def main():

    n1=MyNumber(30)

    n2=MyNumber(20)

    n3=n1+n2    # 等效为 n3=n1.__add__(n2)

    n4=n3-n2    # 等效为 n4=n3.__sub__(n2)

    print("n3.data=",n3.data)

    print(n1,"+",n2,"=",n3)

    # 等效为print(n1.__repr__(),"+",n2.__repr__(),"=",n3.__repr__())

    # 等效为print(str(n1),"+",str(n2),"=",str(n3))

    print(n3,"-",n2,"=",n4)

    # 等效为print(n3.__repr__(),"-",n2.__repr__(),"=",n4.__repr__())

    # 等效为print(str(n3),"-",str(n2),"=",str(n4))

main()

124. 编写一段程序实现下面的功能:定义一个Rectangle类,属性为左上角和右下角的平面坐标,编写方法,实现根据坐标计算矩形面积的功能。

class Rectangle:

    def __init__(self, a, b, c, d):

        self.a = a

        self.b = b

        self.c = c

        self.d = d

    def S_Rec(self):

        print('The area of the rectangle is:', end='')

        print((self.c-self.a) * (self.b-self.d))

r = Rectangle(0,1,2,0)

r.S_Rec()

125. 编写一段程序实现下面的功能:定义一个三维空间的点类Point,其属性是三维空间的坐标,再由它派生出一个直线类Line,能求直线的长度。

提示:从基类中继承的点的信息可以用于表示直线的中点。下面的二维点类仅供参考。

import math

class Point:

    def __init__(self,x=0,y=0):

        self.x=x

        self.y=y

    def __repr__(self):

        return "({},{})".format(self.x,self.y)

    def getX(self):

        return self.x

    def getY(self):

        return self.y

    def setX(self,x):

        self.x=x

    def setY(self,y):

        self.y=y

class Line(Point):

    def __init__(self,ps=Point(),pe=Point()):

        self.ps=ps

        self.pe=pe

        mx=(self.ps.getX()+self.pe.getX())/2

        my=(self.ps.getY()+self.pe.getY())/2

        self.setX(mx)

        self.setY(my)

    def printLine(self):

        print("1st:",self.getStartpoint())

        print("2nd:",self.getEndpoint())

        print("The Length of Line:",self.getLength())

        print("The Midpoint of Line:",self.getMidpoint())

    def getLength(self):

        dx=self.pe.getX()-self.ps.getX()

        dy=self.pe.getY()-self.ps.getY()

        return math.sqrt(dx*dx+dy*dy)

    def getStartpoint(self):

        return self.ps

    def getEndpoint(self):

        return self.pe

    def getMidpoint(self):

        return Point(self.x,self.y)

def main():

    ps=Point(-2,5)

    pe=Point(7,9)

    x=Line(ps,pe)

    x.printLine()  # 输出直线x的信息

main()

class Point:

    def __init__(self, x=0, y=0, z=0):

        self.x = x

        self.y = y

        self.z = z

    def __repr__(self):

        return '({},{},{})'.format(self.x, self.y, self.z)

    def getX(self):

        return self.x

    def getY(self):

        return self.y

    def getZ(self):

        return self.z

class Line(Point):

    def __init__(self, a=Point(), b=Point()):

        self.a = a

        self.b = b

    def printLine(self):

        print('First Point:', self.getPointa())

        print('Second Point:', self.getPointb())

        print('The length of the line is ', self.LineLength())

    def LineLength(self):

        x = self.a.getX() - self.b.getX()

        y = self.a.getY() - self.b.getY()

        z = self.a.getZ() - self.b.getZ()

        return pow((x**2+y**2+z**2), 1/2)

    def getPointa(self):

        return self.a

    def getPointb(self):

        return self.b

a = Point(0, 0, 0)

b = Point(0, 1, 0)

l = Line(a, b)

l.printLine()

-----------------------------------------------------------------------------------------------------------

附录:运算符重载

(1)什么是运算符重载

    让用户自定义的类生成的对象(实例)能够使用运算符进行操作

    只能对已经存在的运算符进行重载,不能自己臆造发明新的运算符

    运算符重载遵循三不变:优先级不变,结合性不变,运算量的个数不变

    运算符重载的目的是提高可读性,让用户自定义数据类型(即类class的对象)能够使用常规运算符进行运算处理。

(2)作用

    让用户自定义的实例像内建对象(即基本数据类型的变量或常量)一样进行运算符操作

    让程序简洁易读

    对用户自定义对象,将运算符赋予新的运算规则

    提醒:运算符重载时,最好遵循运算符原有功能,否则会降低可读性。如果运算符重载不能提高程序的可读性,还不如不进行运算符重载,直接使用普通方法(函数)。

    注意:可以用普通方法来实现运算符重载方法的功能。唯一的区别是:普通方法定义后需要人工调用(显示调用),而运算符重载方法定义后既可以自动调用(即隐式调用),也可以显示调用(即人工调用)。对于运算符重载方法,语法上可以显示调用,但为了提高可读性,还是尽量使用隐式调用,即使用与基本数据类型相同的运算表达式。

(3)算术运算符的重载

    方法名             运算符和表达式      说明

    __add__(self,rhs)        self + rhs          加法

    __sub__(self,rhs)         self - rhs          减法

    __mul__(self,rhs)         self * rhs         乘法

    __truediv__(self,rhs)      self / rhs          除法

    __floordiv__(self,rhs)      self //rhs         地板除

    __mod__(self,rhs)         self % rhs       取模(求余)

    __pow__(self,rhs)         self **rhs        幂运算

    注:rhs (right hand side) 右手边,lhs (left hand side) 左手边

说明:

    运算符重载的方法的参数已经有了固定的含义,不建议改变原有的运算符的含义及参数的意义

    二元运算符的重载方法格式:

    def __xx__(self,other):

        语句块

例:实现两个自定义列表的相加和列表自连接(乘整数)

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __add__(self,lst):

        return Mylist(self.data+lst.data)

    def __mul__(self,rhs):

        # rhs为int类型,不能用rhs.data

        return Mylist(self.data*rhs)

def main():

    L1=Mylist([1,2,3])

    L2=Mylist([4,5,6])

    L3=L1+L2  # 这是隐式调用运算符重载方法

    # 它等效为如下显式调用形式

    # L3=L1.__add__(L2)

    L4=L2+L1  # 等效为如下显式调用形式 L4=L2.__add__(L1)

    L5=L1*3    # 等效为如下显式调用形式 L5=L1.__mul__(3)

    print(L3)  # Mylist([1,2,3,4,5,6])  等效为如下显式调用形式 print(L3.__repr__())

    print(L4)  # Mylist([4,5,6,1,2,3])

    print(L5)  # Mylist([1,2,3,1,2,3,1,2,3])

main()

(4)反向运算符的重载

    当运算符的左侧为内建类型时,右侧为自定义类型进行算术运算符运算时会出现TypeError错误,因为无法修改内建类型的代码实现运算符重载,此时需要使用反向运算符的重载

    反向算术运算符的重载:

    方法名            运算符和表达式       说明

    __radd__(self,lhs)       lhs + self          加法

    __rsub__(self,lhs)       lhs - self          减法

    __rmul__(self,lhs)       lhs * self          乘法

    __rtruediv__(self,lhs)    lhs / self           除法

    __rfloordiv__(self,lhs)    lhs // self         地板除

    __rmod__(self,lhs)       lhs % self         取模(求余)

    __rpow__(self,lhs)       lhs ** self         幂运算

例:

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __add__(self,lst):

        return Mylist(self.data+lst.data)

    def __mul__(self, rhs):

        # rhs为int类型,不能用rhs.data

        return Mylist(self.data*rhs)

    def __rmul__(self,lhs):

        return Mylist(self.data*lhs)

def main():

    L1=Mylist([1,2,3])

    L2=Mylist([4,5,6])

    L3=3*L1     # 等效为 L3=L1.__rmul__(3)

    print(L3)   # 等效为 print(L3.__repr__())

    L1+=L2      # 等效为 L1=L1.__add__(L2)

    print(L1)

    L2*=3       # 等效为 L2=L2.__mul__(3)

    print(L2)

main()

(5)复合赋值算术运算符的重载

    以复合赋值算术运算符 x += y为例,此运算符会优先调用x.__iadd__(y)方法,如果没有__iadd__方法时,则会将复合赋值算术运算拆解为:x = x + y

    然后调用x = x.__add__(y)方法,如果再不存在__add__方法则会触发TypeError类型的错误异常

    复合赋值算术运算符的重载:

        方法名             运算符和表达式      说明

        __iadd__(self,rhs)       self += rhs        加法

        __isub__(self,rhs)       self -= rhs         减法

        __imul__(self,rhs)       self *= rhs         乘法

        __itruediv__(self,rhs)     self /= rhs        除法

        __ifloordiv__(self,rhs)    self //=rhs        地板除

        __imod__(self,rhs)       self %= rhs     取模(求余)

        __ipow__(self,rhs)       self **=rhs       幂运算

(6)比较算术运算符的重载

    比较算术运算符的重载:

        方法名           算符和表达式      说明

        __lt__(self,rhs)       self < rhs        小于

        __le__(self,rhs)       self <= rhs       小于等于

        __gt__(self,rhs)       self > rhs        大于

        __ge__(self,rhs)       self >= rhs       大于等于

        __eq__(self,rhs)       self == rhs       等于

        __ne__(self,rhs)       self != rhs       不等于

(7)位运算符重载

        方法名            运算符和表达式        说明

        __and__(self,rhs)      self & rhs            位与

        __or__(self,rhs)        self | rhs             位或

        __xor__(self,rhs)       self ^ rhs             位异或

        __lshift__(self,rhs)      self <<rhs            左移

        __rshift__(self,rhs)      self >>rhs            右移

(8)反向位运算符重载

        方法名            运算符和表达式        说明

        __and__(self,lhs)       lhs & rhs             位与

        __or__(self,lhs)         lhs | rhs             位或

        __xor__(self,lhs)        lhs ^ rhs             位异或

        __lshift__(self,lhs)      lhs <<rhs             左移

        __rshift__(self,lhs)      lhs >>rhs             右移

(9)复合赋值位相关运算符重载

        方法名             运算符和表达式       说明

        __iand__(self,rhs)       self & rhs           位与

        __ior__(self,rhs)        self | rhs            位或

        __ixor__(self,rhs)       self ^ rhs            位异或

        __ilshift__(self,rhs)      self <<rhs           左移

        __irshift__(self,rhs)      self >>rhs           右移

(10)一元运算符的重载

     方法名         运算符和表达式     说明

     __neg__(self)        - self           负号

     __pos__(self)        + self           正号

     __invert__(self)      ~ self           取反

语法

一、单项选择题

题号

1

2

3

4

5

6

7

8

9

10

答案

B

D

D

C

A

B

B

C

C

C

题号

11

12

13

14

15

16

17

18

19

20

答案

C

C

B

B

C

A

A

B

A

A

题号

21

22

23

24

25

26

27

28

29

30

答案

D

D

A

A

D

A

A

A

B

C

题号

31

32

33

34

35

36

37

38

39

40

答案

B

C

A

A

A

B

A

B

B

A

题号

41

42

43

44

45

46

47

48

49

50

答案

A

D

C

A

A

A

D

C

B

C

题号

51

52

53

54

55

56

57

58

59

60

答案

B

A

B

B

A

D

B

B

C

C

题号

61

62

63

64

65

66

67

68

69

70

答案

A

B

C

A

A

A

C

B

A

D

题号

71

72

73

74

75

76

77

78

79

80

答案

B

A

B

A

C

D

C

A

B

A

题号

81

82

83

84

85

86

87

88

89

90

答案

B

C

B

C

A

C

A

C

A

A

题号

91

92

93

94

95

96

97

98

99

100

答案

B

B

D

D

C

B

D

B

B

D

二、程序填空题

101. n//2

102. n%16

103. global n

104. import os

105. 2*(n-i-1)-1

106. ‘w’

107. t%2

108. s

109. s

110. ‘其他异常!’

111. ‘Goodbye!’

112. Exception

113. len(s)

114. AssertionError

115. IndexError

116. KeyError

117. IOError

118. NameError

119. TypeError

120. 0

121. Person

122. 5

123. value

124.

class Rectangle:

    def __init__(self, a, b, c, d):

        self.a = a

        self.b = b

        self.c = c

        self.d = d

    def S_Rec(self):

        print('The area of the rectangle is:', end='')

        print((self.c-self.a) * (self.b-self.d))

r = Rectangle(0,1,2,0)

r.S_Rec()

125.

class Point:

    def __init__(self, x=0, y=0, z=0):

        self.x = x

        self.y = y

        self.z = z

    def __repr__(self):

        return '({},{},{})'.format(self.x, self.y, self.z)

    def getX(self):

        return self.x

    def getY(self):

        return self.y

    def getZ(self):

        return self.z

class Line(Point):

    def __init__(self, a=Point(), b=Point()):

        self.a = a

        self.b = b

    def printLine(self):

        print('First Point:', self.getPointa())

        print('Second Point:', self.getPointb())

        print('The length of the line is ', self.LineLength())

    def LineLength(self):

        x = self.a.getX() - self.b.getX()

        y = self.a.getY() - self.b.getY()

        z = self.a.getZ() - self.b.getZ()

        return pow((x**2+y**2+z**2), 1/2)

    def getPointa(self):

        return self.a

    def getPointb(self):

        return self.b

a = Point(0, 0, 0)

b = Point(0, 1, 0)

l = Line(a, b)

l.printLine()

一、单项选择题

1. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f():

    pass

print(f())

A. 无任何输出    B. None     C. pass     D. 出错

2. 一个函数中可以有多少个return语句?(   D )

A. 0    B. 1     C. 2     D. 任意

3. 按照源程序文件方式运行下面程序段后的输出结果是( D   )

f()

def f():

    print('ok')

A. 无任何输出    B. None     C. ok     D. 出错

4. 按照源程序文件方式运行下面程序段后的输出结果是(    C)

def f(x,y):

    return x**2+y

print(f(2,3))

A. 2    B. 3     C. 7     D. 11

5. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(x,y):

    return x**2

    return y**2

    return x+y

print(f(2,3))

A. 4    B. 9     C. 5     D. 出错

6. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f():

    print('AA',end='')

    return

    print('BB',end='')

    return

print(f())

A. None    B. AANone     C. AABBNone     D. 出错

7. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f():

    return 2,3,4

def main():

    print(f())

    return

main()

A. 2,3,4    B. (2,3,4)     C. [2,3,4]     D. 出错

8. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

def f():

    print('AA',end='')

def main():

    print(f())

main()

A. 无任何输出    B. None     C. AANone     D. 出错

9. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

f=lambda:2

def main():

    print(f())

    return

main()

A. 无任何输出    B. None     C. 2     D. 出错

10. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

f=lambda x:(2,x,x**2)

def main():

    print(f(3))

    return

main()

A. 无任何输出    B. 2,3,9     C. (2, 3, 9)     D. 出错

11. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

f,g=lambda x:x**2,lambda y:2*y

def main():

    print('{},{}'.format(f(2),g(3)))

    return

main()

A. 无任何输出    B. None     C. 4,6     D. 出错

12. 按照源程序文件方式运行下面程序段后的输出结果是(   C )

def g():

    return lambda x,y:x+y

def main():

    f=g()

    print(f(2,3))

    return

main()

A. 无任何输出    B. None     C. 5     D. 出错

13. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

f=(lambda:2,lambda x:x*3,lambda y:y**2)

def main():

    print(f[0]()+f[1](2)+f[2](3))

    return

main()

A. 0    B. 17    C. None     D. 出错

14. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x):

    return x(2)

def main():

    y=f(lambda x:x**2)

    print(y)

    return

main()

A. 0    B. 4     C. None     D. 出错

15. 按照源程序文件方式运行下面程序段后的输出结果是( C   )

def f(x):

    x=3

def main():

    x=2

    f(x)

    print(x)

    return

main()

A. None    B. 0     C. 2     D. 3

16. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(x):

    x[1]=5

def main():

    x=[2,3,4]

    f(x)

    print(x)

    return

main()

A. [2,5,4]    B. [5,3,4]     C. [2,3,4]     D. [2,3,5]

17. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(x):

    x['a']=4

def main():

    x=dict(a=2,b=3)

    f(x)

    print(x)

    return

main()

A. {'a': 4, 'b': 3}    B. {'a': 2, 'b': 3}     C. {'a': 3, 'b': 4}     D. {'a': 2, 'b': 4}

18. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x,y):

    x,y=y,x

def main():

    x,y=2,3

    f(x,y)

    print('{},{}'.format(x,y))

    return

main()

A. 3,2    B. 2,3     C. 2,2     D. 3,3

19. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(s):

    s[0],s[1]=s[1],s[0]

def main():

    s=[2,3]

    f(s)

    print(s)

    return

main()

A. [3, 2]    B. [2, 3]     C. [2, 2]     D. [3, 3]

20. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(x,y=4,z=5):

    print(x,y,z,sep=',')

def main():

    f(2,3)

    return

main()

A. 2,3,5    B. 2,4,5     C. 2,4,3     D. 3,4,5

21. 按照源程序文件方式运行下面程序段后的输出结果是(   D

def f(x=4,y,z=5):

    print(x,y,z,sep=',')

def main():

    f(2,3)

    return

main()

A. 2,3,5    B. 4,2,5     C. 4,3,5     D. 出错

22. 按照源程序文件方式运行下面程序段后的输出结果是(  D  )

def f(x=4,y,z=5):

    print(x,y,z,sep=',')

def main():

    f(y=2,x=3)

    return

main()

A. 3,2,5    B. 4,2,5     C. 2,3,5     D. 出错

23. 按照源程序文件方式运行下面程序段后的输出结果是(    A)

def f(x,y=4,z=5):

    print(x,y,z,sep=',')

def main():

    f(y=2,x=3)

    return

main()

A. 3,2,5    B. 3,4,5     C. 2,3,5     D. 出错

24. 按照源程序文件方式运行下面程序段后的输出结果是(   A )

def f(x,y,*z):

    print(x,y,z,sep=',')

def main():

    f(2,3,4,5,6)

    return

main()

A. 2,3,(4,5,6)    B. 2,3,[ 4,5,6]     C. 2,3,{4,5,6}     D. 2,3,4,5,6

25. 按照源程序文件方式运行下面程序段后的输出结果是( D   )

def f(x=6,y=7,**z):

    print(x,y,z,sep=',')

def main():

    f(2,3,4,b=5)

    return

main()

A. 2,3,{None: 4, 'b': 5}    B. 2,3,{'b': 5}     C. 3,4,{'b': 5}     D. 出错

26. 按照源程序文件方式运行下面程序段后的输出结果是(   A )

def f(x=6,y=7,*z,**t):

    print(x,y,z,t,sep=',')

def main():

    f(2,a=4,b=5)

    return

main()

A. 2,7,(),{'a': 4, 'b': 5}     B. 6,7,(2,),{'a': 4, 'b': 5}

C. 2,7,(4,),{'b': 5}         D. 2,7,(4,5),{}

27. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(x=6,y=7,*z):

    print(x,y,z,sep=',')

def main():

    x,*y,z=2,3,4,5

    f(x,y,z)

    return

main()

A. 2,[3, 4],(5,)   B. 2,(3, 4),(5,)    C. 2,3,(4,5)    D. 2,[3, 4],(5)

28. 按照源程序文件方式运行下面程序段后的输出结果是(   A )

def f(x=6,y=7,*z):

    print(x,y,z,sep=',')

def main():

    x,y,*z=2,3,4,5

    f(x,y,z)

    return

main()

A. 2,3,([4, 5],)    B. 2,3,(4, 5,)     C. 2,3,[4, 5]     D. 2,3,([4, 5])

29. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x=6,y=7,*z):

    print(x,y,z,sep=',')

def main():

    x,*y,z=2,3,4,5

    f(x,*y,z)

    return

main()

A. 2,[3, 4],(5,)    B. 2,3,(4, 5)     C. 2,[3],(4, 5)     D. 2,[3,4], (5)

30. 按照源程序文件方式运行下面程序段后的输出结果是( C   )

def f(x,*y):

    m=x;

    for i in y:

        if(i>m):

            m=i

    return m

def main():

    z=f(3,4,2,5,6,8,6,7,1)

    print(z)

    return

main()

A. 1    B. 6     C. 8     D. 9

31. 按照源程序文件方式运行下面程序段后的输出结果是(  B  )

def f(x):

    a=2;

    x=3

    print(a,x,sep='',end='')

def g(x):

    a=4;

    x=x+5

    print(a,x,sep='',end='')

def main():

    a,x=2,3

    f(a)

    g(x)

main()

A. 23412    B. 2348     C. 26412    D. 2328

32. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

def f(x):

    a=2;

    x=3

    print(a,x,sep='',end='')

def g(x):

    global a

    a=a+4;

    x=x+5

    print(a,x,sep='',end='')

a,x=2,3

f(a)

g(x)

A. 23412    B. 2348     C. 2368    D. 2328

33. 按照源程序文件方式运行下面程序段后的输出结果是(    A)

x=2

def f(x=4):

    print(x,end='')

f(x)

x=3

f(x)

A. 23    B. 32     C. 22     D. 33

34. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

x=2

def f(x=4):

    print(x,end='')

def main():

    global x

    f(x)

    x=3

    f(x)

main()

A. 23    B. 32     C. 22     D. 33

35. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

s='uestc'

def f(i):

    if(i<-len(s)):

       return

    else:

        f(i-1)

    print(s[i],end='')

def main():

    f(-1)

main()

A. uestc    B. ctseu     C. None     D. 出错

36. 按照源程序文件方式运行下面程序段后的输出结果是( B   )

def f(i):

    if(i>=len(s)):

       return

    else:

        f(i+1)

    print(s[i],end='')

def main():

    global s

    s='uestc'

    f(0)

main()

A. uestc    B. ctseu     C. None     D. 出错

37. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        nonlocal x

        print(x,end='')

        x=4

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 2242    B. 2224     C. 2442     D. 3242

38. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        global x

        print(x,end='')

        x=4

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 2242    B. 2224     C. 2442     D. 3242

39. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        global x

        print(x,end='')

        x=4

        def h():

            print(x,end='')

            x=5

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 2242    B. 2224     C. 24422     D. 32422

40. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

def f(y=3):

    x=y

    print(x,end='')

    def g():

        global x

        print(x,end='')

        x=4

        def h():

            global x

            print(x,end='')

            x=5

        h()

    g()

    print(x,end='')

def main():

    global x

    x=2

    f(x)

    print(x,end='')

main()

A. 22425    B. 22455     C. 24422     D. 32422

41. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

def f(n):

    print(n,end='')

    if(n<1):

        return

    else:

        f(n-1)

    print(n,end='')

def main():

    f(3)

main()

A. 3210123    B. 32100123     C. 321123     D. 32123

42. 按照源程序文件方式运行下面程序段后的输出结果是(  D  )

def f():

    global x

    x=4

    y=5

    def g():

        nonlocal y

        global x

        x=6

        y=7

        print('{}{}'.format(x,y),end='')

    g()

    print('{}{}'.format(x,y),end='')

x=2

y=3

f()

print('{}{}'.format(x,y),end='')

A. 674723    B. 674523     C. 676767     D. 676763

43. 要将源程序模块文件搜索路径“D:\user\”加入sys.path中,正确的语句是(   C

A. import sys;sys.path.append('D:\user\')     B. import sys;sys.path.append(r'D:\user\')

C. import sys;sys.path.append("D:\\user\\")   D. import sys;sys.path.append(r"D:\user\")

44. 要将源程序模块文件搜索路径“D:\user\”加入sys.path中,错误的语句是(   A

A. import sys;sys.path.append(r'D:\user\')    B. import sys;sys.path.append('D:\\user\\')

C. import sys;sys.path+=["D:\\user\\"]       D. import sys;sys.path+=['D:\\user\\']

45. 按照源程序文件方式运行下面程序c.py后的输出结果是( A   )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print('AA',end='')

# D:\user\b.py

def g():

    print('BB',end='')

# D:\user\c.py

from a import f

from b import g

def main():

    f()

    g()

    print('CC')

main()

A. AABBCC    B. CC     C. 无输出     D. 出错

46. 按照源程序文件方式运行下面程序c.py后的输出结果是(   A

在D:\user\aa文件夹中建立如下a.py源程序文件:

# D:\user\aa\a.py

def f():

    print('AA',end='')

在D:\user\bb文件夹中建立如下b.py源程序文件:

# D:\user\bb\b.py

def g():

    print('BB',end='')

在D:\user\cc文件夹中建立如下c.py源程序文件:

# D:\user\cc\c.py

import sys

sys.path.append('D:\\user\\aa')

sys.path.append('D:\\user\\bb')

from a import f

from b import g

def main():

    f()

    g()

    print('CC')

main()

A. AABBCC    B. CC     C. 无输出     D. 出错

47. 按照源程序文件方式运行下面程序c.py后的输出结果是( D   )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

# D:\user\b.py

def g():

    print(__name__,end='')

# D:\user\c.py

from a import f

from b import g

def main():

    f()

    g()

    print(__name__,end='')

main()

A. abc    B. __main__bc     C. a__main__c     D. ab__main__

48. 按照源程序文件方式运行下面程序b.py后的输出结果是( C   )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

# D:\user\b.py

import a,c

def g():

    a.f()

    print(__name__,end='')

    c.main()

g()

# D:\user\c.py

def main():

    print(__name__,end='')

A. abc    B. __main__bc     C. a__main__c     D. ab__main__

49. 按照源程序文件方式运行下面程序a.py后的输出结果是(  B )

在D:\user文件夹中建立如下三个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

f()

# D:\user\b.py

def g():

    print(__name__,end='')

g()

# D:\user\c.py

def main():

    print(__name__,end='')

main()

A. a    B. __main__     C. a__main__     D. __main__a

50. 按照源程序文件方式运行下面程序a.py后的输出结果是(  C  )

在D:\user文件夹中建立如下两个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

if __name__=='__main__':

    f()

    import b

    b.g()

# D:\user\b.py

def g():

    print(__name__,end='')

if __name__=='__main__':

    g()

    import a

    a.f()

A. ab    B. __main__a     C. __main__b     D. __main____main__

51. 按照源程序文件方式运行下面程序b.py后的输出结果是(B   

在D:\user文件夹中建立如下两个Python源程序文件:

# D:\user\a.py

def f():

    print(__name__,end='')

if __name__=='__main__':

    f()

    import b

    b.g()

# D:\user\b.py

def g():

    print(__name__,end='')

if __name__=='__main__':

    g()

    import a

    a.f()

A. ab    B. __main__a     C. __main__b     D. __main____main__

52. 如果当前源程序模块文件是主模块文件,则其系统变量“__name__”的值为(  A  )

A. __main__              B. 其源程序文件的文件根名(不加后面的.py,即模块名)

C. 其源程序文件的路径    D. 其源程序文件所在的文件夹名字

53. 如果当前源程序模块文件是非主模块文件,则其系统变量“__name__”的值为( B  )

A. __main__              B. 其源程序文件的文件根名(不加后面的.py,即模块名)

C. 其源程序文件的路径    D. 其源程序文件所在的文件夹名字

54. 新建一个文本文件,欲对其进行读和写操作,则该文件的正确打开方式是( B   )

A. f=open(r'D:\user\a.txt','r+')      B. f=open(r'D:\user\a.txt','w+')

C. f=open(r'D:\user\a.txt','rb+')     D. f=open(r'D:\user\a.txt','wb+')

55. 打开一个已经存在的文本文件,欲对其进行读和写操作,则该文件的正确打开方式是(  A  )

A. f=open(r'D:\user\a.txt','r+')      B. f=open(r'D:\user\a.txt','w+')

C. f=open(r'D:\user\a.txt','rb+')     D. f=open(r'D:\user\a.txt','wb+')

56. 打开一个已经存在的二进制文件,欲在其原有内容后面写入一些新内容,则该文件的正确打开方式是(   D )

A. f=open(r'D:\user\a.txt','r+')       B. f=open(r'D:\user\a.txt','wb+')

C. f=open(r'D:\user\a.txt','a+')       D. f=open(r'D:\user\a.txt','ab+')

57. 下列哪种打开文件的方式会造成原文件内容被清除?(  B  )

A. f=open(r'D:\user\a.txt','r+')       B. f=open(r'D:\user\a.txt','w+')

C. f=open(r'D:\user\a.txt','a+')       D. f=open(r'D:\user\a.txt','ab+')

58. 用方法“f=open(r'D:\user\a.txt','r+')”打开文件,则关闭该文件的方法是(  B  )

A. close(f)    B. f.close()     C. close(f,'r+')     D. f.close('r+')

59. 已知文本文件“D:\user\t.txt”的内容如下,按照源程序文件方式运行下面各程序段后,输出结果与其余三项不同的是(C    )

# D:\user\t.txt

AA

BBB

CCCC

A.

f=open(r'D:\user\t.txt')

s=f.read()

print(s)

f.close()

B.

f=open(r'D:\user\t.txt','r')

while True:

    s=f.read(2)

    if not s:

        break

    print(s,end='')

f.close()

C.

f=open(r'D:\user\t.txt','r')

while True:

    s=f.readline()

    if not s:

        break

    print(s)

f.close()

D.

f=open(r'D:\user\t.txt')

for i in f:

    print(i,end='')

f.close()

60. 已知文本文件“D:\user\t.txt”的内容如下,按照源程序文件方式运行下面各程序段后,输出结果与其余三项不同的是(C)

AA

BBB

CCCC

A.

f=open(r'D:\user\t.txt')

s=[]

for i in f:

    s+=[i]

print(s)

f.close()

B.

f=open(r'D:\user\t.txt','r')

s=[]

while True:

    t=f.readline()

    if not t:

        break

    s+=[t]

print(s)

f.close()

C.

f=open(r'D:\user\t.txt','r')

s=[]

t=''

while True:

    i=f.read(1)

    if not i:

        break

    if (i!='\n'):

        t+=i

    else:

        t+='\n'

        s+=[t]

        t=''

print(s)

f.close()

D.

f=open(r'D:\user\t.txt','r')

s=f.readlines()

print(s)

f.close()

61. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

import string

f=open(r'D:\user\t.txt','w+')

f.write(string.digits+string.ascii_uppercase)

f.seek(0)

s=f.read(10)

print(s)

f.close()

A. 0123456789    B. ABCDEFGHIJ     C. 01234     D. ABCDE

62. 按照源程序文件方式运行下面程序段后的输出结果是(   B )

import string

f=open(r'D:\user\t.txt','w+')

f.write(string.digits+'\n'+string.ascii_uppercase+'\n'+string.ascii_lowercase)

print(f.tell(),end=',')

f.seek(0)

s=f.read(1)

print(f.tell(),end=',')

t=f.readline()

print(f.tell(),end=',')

print(len(s+t))

f.close()

A. 65,1,12,12    B. 66,1,12,11     C. 66,1,12,12     D. 65,1,12,11

63. 按照源程序文件方式运行下面程序段后的输出结果是(       C  )

import string

f=open(r'D:\user\t.dat','wb+')

s=string.digits+string.ascii_uppercase+string.ascii_lowercase

sb=s.encode()

f.write(sb)

print(f.tell(),end=',')

f.seek(-5,2)

t=f.read()

print(t,end=',')

print(f.tell())

f.close()

A. 0,b'vwxyz',62    B. 0,'vwxyz',62     C. 62,b'vwxyz',62     D. 62,'vwxyz',62

64. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

import string

f=open(r'D:\user\t.dat','wb+')

s=string.digits+string.ascii_uppercase+string.ascii_lowercase

sb=s.encode()

f.write(sb)

f.seek(-40,1)

print(f.tell(),end=',')

f.seek(-10,1)

print(f.tell())

f.close()

A. 22,12    B. 21,11     C. 21,12     D. 22,13

65. 按照源程序文件方式运行下面程序段后的输出结果是( A   )

import string

f=open(r'D:\user\t.dat','wb+')

s='电子科技大学'

sb=s.encode('gbk')

f.write(sb)

f.seek(-12,1)

print(f.tell(),end=',')

t=f.read(4)

x=t.decode('gbk')

print(x,end=',')

print(f.tell())

f.close()

A. 0,电子,4    B. 0,电子科技,4     C. 6,科技大学,18     D. 4,科技,8

66. 在交互命令模式下,获取当前工作目录的程序段是( A   )

A. import os;os.getcwd()       B. import os;os.chdir()

C. import os;os.listdir()        D. import os;os.mkdir()

67. 在交互命令模式下,创建“D:\aa”文件夹(目录)的程序段是(  C  )

A. import os;os.rmdir(r'D:\aa')     B. import os;os.listdir(r'D:\aa')

C. import os;os.mkdir(r'D:\aa')     D. import os;os.chdir(r'D:\aa')

68. 在交互命令模式下,列出“D:\user”文件夹(目录)中内容的程序段是(   B )

A. import os;os.rmdir(r'D:\user')     B. import os;os.listdir(r'D:\user')

C. import os;os.mkdir(r'D:\user')     D. import os;os.chdir(r'D:\user')

69. 在交互命令模式下,删除空目录“D:\aa”的程序段是( A   )

A. import os;os.rmdir(r'D:\aa')     B. import os;os.listdir(r'D:\aa')

C. import os;os.mkdir(r'D:\aa')     D. import os;os.chdir(r'D:\aa')

70. 在交互命令模式下,将系统当前目录改为“D:\aa”的程序段是(  D  )

A. import os;os.rmdir(r'D:\aa')     B. import os;os.listdir(r'D:\aa')

C. import os;os.mkdir(r'D:\aa')     D. import os;os.chdir(r'D:\aa')

71. 功能与下面程序段相同的是(  B  )

import os

path=os.getcwd()

s=os.listdir(path)

print(s)

A.

import os

path=os.getcwd()

s=os.walk(path)

print(s)

B.

import os

path=os.getcwd()

s=os.walk(path)

for dirpath,dirnames,filenames in s:

    print(filenames)

C.

import os

path=os.getcwd()

s=os.walk(path)

for dirpath,dirnames,filenames in s:

    print(dirpath)

D.

import os

path=os.getcwd()

s=os.walk(path)

for dirpath,dirnames,filenames in s:

    print(dirnames)

72. 查看文件“D:\user\a.txt”大小(单位是字节)的程序段是(  A  )

A.

import os

s=os.path.getsize(r'D:\user\a.txt')

print(s)

B.

import os

s=os.path.exists(r'D:\user\a.txt')

print(s)

C.

import os

s=os.stat(r'D:\user\a.txt')

print(s)

D.

import os

s=os.path.getctime(r'D:\user\a.txt')

print(s)

73. 判断文件“D:\user\a.txt”是否存在的程序段是( B   )

A.

import os

s=os.path.getsize(r'D:\user\a.txt')

print(s)

B.

import os

s=os.path.exists(r'D:\user\a.txt')

print(s)

C.

import os

s=os.stat(r'D:\user\a.txt')

print(s)

D.

import os

s=os.path.getctime(r'D:\user\a.txt')

print(s)

74. 将文件“D:\user\a.txt”改名为“D:\user\b.txt”,不能实现该功能的程序段是(  A  )

A.

import os

os.rename('D:\user\a.txt','D:\user\b.txt')

B.

import os

os.rename('D:/user/a.txt','D:/user/b.txt')

C.

import os,shutil

shutil.copyfile('D:/user/a.txt','D:/user/b.txt')

os.remove('D:/user/a.txt')

D.

import shutil

shutil.move('D:/user/a.txt','D:/user/b.txt')

75. 将文件“D:\user\a.txt”复制为“D:\b.txt”,正确的程序段是(  C  )

A.

import os

os.rename('D:\\user\\a.txt','D:\\b.txt')

B.

import os

os.remove('D:\\user\\a.txt','D:\\b.txt')

C.

import shutil

shutil.copyfile('D:\\user\\a.txt','D:\\b.txt')

D.

import shutil

shutil.move('D:\\user\\a.txt','D:\\b.txt')

76. 在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的( D   )

A. 什么也不读取    B. 一个字符     C. 一行数据     D. 所有数据

77. 在Python中可使用readline([size])来读取文件中的数据,如果参数size省略,则读取文件中的(  C  )

A. 什么也不读取    B. 一个字符     C. 一行数据     D. 所有数据

78. 在Python中可使用readlines([size])来读取文件中的数据,此时返回的数据为(  A  )

A. 列表    B. 字符     C. 字符串     D. 对象

79. 在Python中使用seek(offset)来移动文件位置指针,当offset为负值时,表示(  B  )

A. 文件指针向文件尾部方向移动    B. 文件指针向文件头部方向移动

C. 文件指针不向任何地方移动      D. 文件指针直接移动到文件末尾

80. 在Python中,欲对文件任意位置进行写入操作,则文件的打开方式应该是( A  )

A. 'w'    B. 'a'     C. 'a+'     D. 'w'或'a'

81. 在Python中,打开文件时没有指出打开方式,则默认的文件打开方式是(  B  )

A. 'w'    B. 'r'     C. 'a'     D. 'w+'

82. 在Python中,如果文件打开方式是'w',当向该文件写入‘uestc’时,则(  C  )

A. 将该字符串插入在文件头部           B. 将该字符串插入在文件尾部

C. 将用该字符串覆盖文件的原有内容     D. 报错

83. 在Python中,如果文件打开方式是'a',则打开文件时文件位置指针在(  B  )

A. 文件头部    B. 文件尾部     C. 文件中部     D. 随机位置

84. 在Python中,不能表示当前文件目录的是( C   )

A. '.'    B. './'     C. '..'或'../'     D. import os;os.getcwd()

85. 按照源程序文件方式运行下面程序段后的输出结果是( A  )

try:

    x=[3,4,5]

    y=2+x

    print(y)

except TypeError:

    print('类型不匹配!')

except SyntaxError:

    print('语法错误!')

except:

    print('其他错误!')

A. 类型不匹配!    B. 语法错误!     C. 其他错误!     D. [2,3,4,5]

86. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

try:

    x=x+2

except TypeError:

    print('AA')

except SyntaxError:

    print('BB')

except NameError:

    print('CC')

except:

    print('DD')

A. AA    B. BB     C. CC     D. DD

87. 按照源程序文件方式运行下面程序段后的输出结果是(  A  )

try:

    s=(2,3,4)

    s[1]=5

except TypeError:

    print('AA')

except SyntaxError:

    print('BB')

except NameError:

    print('CC')

except:

    print('DD')

A. AA    B. BB     C. CC     D. DD

88. 按照源程序文件方式运行下面程序段后的输出结果是(  C  )

try:

    x=1+2,2+3,3+4

except:

    print('AA',end='')

else:

    print('BB',end='')

finally:

    print('CC',end='')

print('DD',end='')

A. AA    B. AACCDD     C. BBCCDD     D. AABBCCDD

89. 在Python语言中定义一个类时,如果省略父类名,则默认的父类是( A   )

A. object    B. root     C. pass     D. None

90. 类中私有属性和私有方法的名称是(  A  )

A. 以双下划线(__)开头         B. 以双下划线(__)结尾

C. 用private声明                 D. 以单下划线(_)开头

91. 在Python中,类的构造方法名是( B   )

A. 与类名相同    B. __init__     C. __new__     D. 以@开头

92. 在类中方法外定义的属性是(  B  )

A. 实例属性    B. 类属性     C. 私有属性     D. 公有属性

93. 在Python中,哪种方法内只能访问类属性,不能访问实例属性?(  D  )

A. 实例方法    B. 类方法     C. 静态方法     D. 析构方法

94. 在Python中,用户自定义类直接继承的父类个数是(   D )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

95. 下列方法中,哪种方法可以没有形式参数?(  C  )

A. 带有装饰器@classmethod的方法      B. 实例方法

C. 带有装饰器@staticmethod的方法      D. 构造方法和析构方法

96. 在Python中,一个类有多少个类对象?(B   )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

97. 在Python中,一个类可以有多少个实例对象?(   D )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

98. 在Python中,一个类有多少个(有效的)构造方法?(  B  )

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

99. 在Python中,一个类可以有多少个类属性?(  B

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

100. 在Python中,一个类可以有多少个实例方法?(  D

A. 1个    B. 至少1个     C. 至少2个     D. 任意个

二、程序填空题

(为便于阅卷,不用抄题,只提交各小题答案。请将答案填写在答题纸上。)

101. 下面程序的功能是从键盘读入一个正整数,将其转换为二进制数,并输出之。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

def f(n):

    if(n==0):

        return

    else:

        f(_________________n//2         _________________________)

    print(n%2,end='')

def main():

    x=eval(input('x='))

    print('0b',end='')

    f(x)

main()

102. 下面程序的功能是从键盘读入一个正整数,将其转换为十六进制数,并输出之。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

def f(n):

    global s

    if(n==0):

        return

    else:

        f(n//16)

    print(s[____________________  n%16  ______________________],end='')

def main():

    global s

    s='0123456789ABCDEF'

    x=eval(input('x='))

    print('0x',end='')

    f(x)

main()

103. 下面程序的功能是模拟系统登录过程。从键盘读入一个账号的密码,如果输入的密码正确,就显示“欢迎光临!”;如果输入的密码错误,则显示“密码错误!”;如果用户输入的密码连续错误3次,则显示“你不是合法用户!”。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

     

源程序:

def f():

    ______________    global n  ____________________________

    if(n>3):

        print('你不是合法用户!')

        return

    else:

        k=input('请输入密码:')

        if(k=='123'):

            print('欢迎光临!')

            x=input('继续?(y/n)')

            if (x=='y' or x=='Y'):

                n=1

                f()

            else:

                return

        else:

            print('密码错误!')

            n=n+1

            f()

def main():

    global n

    n=1

    f()

main()

104. 下面程序的功能是遍历输出当前工作目录中的所有文件和文件夹。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

__________________  import os ________________________

s=[]

path=os.getcwd()

f=os.walk(path)

for dirpath,dirnames,filenames in f:

    for i in dirnames:

        s.append(os.path.join(dirpath,i))

    for i in filenames:

        s.append(os.path.join(dirpath,i))

for i in s:

    print(i)

105. 下面程序的功能是从键盘读入菱形图案的行数(上三角行数),构造该菱形图案,并将其存入文本文件“D:\user\a.txt”中。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

f=open(r'D:\user\a.txt','w')

n=int(input('n='))

for i in range(n):

    s=''

    for j in range(n-i-1):

        s+=' '

    for k in range(2*i+1):

        s+='*'

    f.write(s+'\n')

for i in range(n-1):

    s=''

    for j in range(i+1):

        s+=' '

    for k in range(_________________  2*(n-i-1)-1 _________________________):

        s+='*'

    f.write(s+'\n')

f.close()

with open('D:/user/a.txt','r') as f:

    s=f.read()

print(s)

106. 下面程序的功能是随机生成100个0~100的正整数,每个整数占一行,写入“D:\user\a.txt”文件中。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

import random

with open('d:/user/a.txt', _______________  ‘w’ ___________________________) as f:

    for i in range(100):  

        f.write(str(random.randrange(0,100))+'\n')

107. 下面程序的功能是随机生成100个0~100的正整数,每个整数占一行,写入“D:\user\a.txt”文件中。然后统计其中奇数的个数。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

import random

with open('d:/user/a.txt','w') as f:

    for i in range(100):

        f.write(str(random.randrange(0,100))+'\n')

n=0

with open('d:/user/a.txt','r') as f:

    for i in f:

        t=int(i)

        if(____________________  n % 2 ______________________):

            n=n+1

print(n)

108. 下面程序的功能是文本文件的复制,即将已经存在的“D:\user\a.txt”文件内容复制到文件“D:\user\b.txt”中。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

f1=open('d:/user/a.txt','r')

f2=open('d:/user/b.txt','w')

s=f1.read()

f2.write(____________________  s ______________________)

f1.close()

f2.close()

109. 下面程序的功能是从键盘读入一个字符串,将其转换为整数。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

import sys

x=input('x=')

try:

    y=int(x)

except Exception as __________________________________________:

    print(s)

    sys.exit(0)

else:

    print(y)

110. 下面程序的功能是从键盘读入一个整数,对除法运算进行分类异常处理。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

       

源程序:

try:

    x=eval(input('x='))

    y=12/x

except (NameError,ZeroDivisionError) as s:

    print(s)

except:

    print(_________________其他异常!’  _________________________)

else:

    print(y)

111. 下面程序的功能是从键盘读入一个整数,测试各种异常处理场景。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

       

源程序:

try:

    x=eval(input('x='))

    if(x==1):raise AttributeError('对象属性异常')

    elif(x==2):raise IOError('输入输出异常')

    elif(x==3):raise IndexError('索引异常')

    elif(x==4):raise KeyError('关键字异常')

    elif(x==5):raise NameError('名字异常')

    elif(x==6):raise TypeError('类型异常')

    elif(x==7):raise ValueError('值异常')

    elif(x==8):raise ZeroDivisionError('零除异常')

    elif(x==9):raise EOFError('文件结束异常')

    else:print('没有触发异常!')

    print('in try')

except (AttributeError,IOError,IndexError,KeyError,NameError,\

        TypeError,ValueError,ZeroDivisionError,EOFError) as s:

    print(s)

except:

    print('其他异常!')

else:

    print('正常!')

finally:

    print(____________________ ‘Goodbye!’  ______________________)

112. 下面程序的功能是从键盘读入一个整数,测试自定义零除异常类的异常处理。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

class MyException(________________ Exception  __________________________):

    def __init__(self,data):

        self.data=data

def main():

    try:

        x=eval(input('x='))

        if x==0:

            raise MyException('不能为0哦!')

        y=100/x

        print(y)

    except MyException as s:

        print(s)

    finally:

        print('Goodbye!')

main()

113. 下面程序的功能是从键盘读入一个整数,根据该整数,从字符串中提取指定字符。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

s='uestc'

i=eval(input('i='))

assert i<____________ len(s)  ______________________,'索引下标超出字符串的长度范围啦!'

print('s[{}]={}'.format(i,s[i]))

114. 下面程序的功能是从键盘读入一个整数,根据该整数,从字符串中提取指定字符。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

s='uestc'

try:

    i=eval(input('i='))

    assert i<len(s),'索引下标超出字符串的长度范围啦!'

    print('s[{}]={}'.format(i,s[i]))

except ___________________ AssertionError  _______________________ as e:

    print('这是断言错误!',e)

except:

    print('其他错误!')

115. 下面程序的功能是从键盘读入一个整数,根据该整数,从字符串中提取指定字符。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

s='uestc'

try:

    i=eval(input('i='))

    print('s[{}]={}'.format(i,s[i]))

except ______________________ IndexError  ____________________ as e:

    print(e)

except:

    print('其他错误!')

116. 下面程序的功能是从键盘读入一个字符串关键字,根据该字符串关键字,从字典中提取指定词条。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

d=dict(a=2,b=3,c=4)

try:

    key=input('key=')

    print("d['{}']={}".format(key,d[key]))

except ________________  KeyError __________________________ as e:

    print('字典中没有这个词条:',e)

except:

    print('其他错误!')

117. 下面程序的功能是从键盘读入一个文件名,然后打开该文件,读取其内容,再关闭该文件。假设D:\user\b.txt文件的内容为“我是b.txt文件!”。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

d=dict(a=2,b=3,c=4)

try:

    fn=input('fileName=')

    f=open('D:/user/'+fn,'r')

    print(f.read())

    f.close()

except ____________________ IOError  ______________________ as e:

    print('没有找到这个文件:',e)

except:

    print('其他错误!')

118. 下面程序的功能是从键盘读入一个变量名,输出其值。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

x,y,z=2,3,4

try:

    n=input('name=')

    print(eval(n))

except _____________________ NameError  _____________________ as e:

    print('没有找到这个变量:',e)

except:

    print('其他错误!')

119. 下面程序的功能是从键盘读入一个数据作为函数调用的实在参数。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

   

源程序:

def f(s):

    s[2]=3

    return s[2]

try:

    x=eval(input('x='))

    y=f(x)

    print(y)

except __________________  TypeError ________________________ as e:

    print('类型不匹配:',e)

except:

    print('其他错误!')

120. 下面程序的功能是统计员工数量和显示员工信息。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

class Employee:

    empCount=__________________________________________

    def __init__(self,name,salary):

        self.name=name

        self.salary=salary

        Employee.empCount+=1

    def displayCount(self):

        print("empCount={}".format(Employee.empCount))

    def displayEmployee(self):

        print("name={},salary={}".format(self.name,self.salary))

def main():

    emp1=Employee("zhangyi",8000)

    emp2=Employee("zhanger",9000)

    emp1.displayEmployee()

    emp2.displayEmployee()

    print("empCount={}".format(Employee.empCount))

    emp1.displayCount()

main()

121. 下面程序的功能是创建父类Person,并派生出子类Man。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

class Person:

    def __init__(self,name,age):

        self.name=name

        self.age=age

    def print_age(self):

        print(self.name,".age=",self.age)

class Man(_____________________ Person  _____________________):

    work="Teacher"

    def print_age(self):

        print("{}'s age is {}".format(self.name,self.age))

    def print_work(self):

        print("{}'s work is {}".format(self.name,self.work))

def main():

    a=Man("Bob",30)

    a.print_age()

    a.print_work()

main()

122. 下面程序的功能是求圆、正方形和矩形的面积。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

源程序:

import math

class Circle:

    def __init__(self,r):

        self.r=r

    def getArea(self):

        return math.pi*self.r**2

class Square:

    def __init__(self,size):

        self.size=size

    def getArea(self):

        return self.size*self.size

class Rectangle:

    def __init__(self,w,h):

        self.w=w

        self.h=h

    def getArea(self):

        return self.w*self.h

def main():

    a=Circle(2)

    b=Square(3)

    c=Rectangle(4, __________________________________________)

    print("a=",a.getArea())

    print("b=",b.getArea())

    print("c=",c.getArea())

main()

123. 下面程序的功能是实现“+”和“-”的运算符重载。程序按照源程序文件方式运行后的输入输出情况如下图所示。请在横线处填写适当的语句或表达式将程序补充完整。

提示:Python的运算符是通过调用对象的特殊方法来实现的。重写运算符所对应的特殊方法,就可以实现运算符的重载。详情参见本作业文档最后面的附录。

源程序:

class MyNumber:

    def __init__(self,value):

        self.data= _______________ value  ___________________________

    def __repr__(self):  # 对应于内置函数str(),用于显示数据

        return "MyNumber({})".format(self.data)

    def __add__(self,other):

        v=self.data+other.data

        return MyNumber(v)

    def __sub__(self,other):

        v=self.data-other.data

        return MyNumber(v)

def main():

    n1=MyNumber(30)

    n2=MyNumber(20)

    n3=n1+n2    # 等效为 n3=n1.__add__(n2)

    n4=n3-n2    # 等效为 n4=n3.__sub__(n2)

    print("n3.data=",n3.data)

    print(n1,"+",n2,"=",n3)

    # 等效为print(n1.__repr__(),"+",n2.__repr__(),"=",n3.__repr__())

    # 等效为print(str(n1),"+",str(n2),"=",str(n3))

    print(n3,"-",n2,"=",n4)

    # 等效为print(n3.__repr__(),"-",n2.__repr__(),"=",n4.__repr__())

    # 等效为print(str(n3),"-",str(n2),"=",str(n4))

main()

124. 编写一段程序实现下面的功能:定义一个Rectangle类,属性为左上角和右下角的平面坐标,编写方法,实现根据坐标计算矩形面积的功能。

class Rectangle:

    def __init__(self, a, b, c, d):

        self.a = a

        self.b = b

        self.c = c

        self.d = d

    def S_Rec(self):

        print('The area of the rectangle is:', end='')

        print((self.c-self.a) * (self.b-self.d))

r = Rectangle(0,1,2,0)

r.S_Rec()

125. 编写一段程序实现下面的功能:定义一个三维空间的点类Point,其属性是三维空间的坐标,再由它派生出一个直线类Line,能求直线的长度。

提示:从基类中继承的点的信息可以用于表示直线的中点。下面的二维点类仅供参考。

import math

class Point:

    def __init__(self,x=0,y=0):

        self.x=x

        self.y=y

    def __repr__(self):

        return "({},{})".format(self.x,self.y)

    def getX(self):

        return self.x

    def getY(self):

        return self.y

    def setX(self,x):

        self.x=x

    def setY(self,y):

        self.y=y

class Line(Point):

    def __init__(self,ps=Point(),pe=Point()):

        self.ps=ps

        self.pe=pe

        mx=(self.ps.getX()+self.pe.getX())/2

        my=(self.ps.getY()+self.pe.getY())/2

        self.setX(mx)

        self.setY(my)

    def printLine(self):

        print("1st:",self.getStartpoint())

        print("2nd:",self.getEndpoint())

        print("The Length of Line:",self.getLength())

        print("The Midpoint of Line:",self.getMidpoint())

    def getLength(self):

        dx=self.pe.getX()-self.ps.getX()

        dy=self.pe.getY()-self.ps.getY()

        return math.sqrt(dx*dx+dy*dy)

    def getStartpoint(self):

        return self.ps

    def getEndpoint(self):

        return self.pe

    def getMidpoint(self):

        return Point(self.x,self.y)

def main():

    ps=Point(-2,5)

    pe=Point(7,9)

    x=Line(ps,pe)

    x.printLine()  # 输出直线x的信息

main()

class Point:

    def __init__(self, x=0, y=0, z=0):

        self.x = x

        self.y = y

        self.z = z

    def __repr__(self):

        return '({},{},{})'.format(self.x, self.y, self.z)

    def getX(self):

        return self.x

    def getY(self):

        return self.y

    def getZ(self):

        return self.z

class Line(Point):

    def __init__(self, a=Point(), b=Point()):

        self.a = a

        self.b = b

    def printLine(self):

        print('First Point:', self.getPointa())

        print('Second Point:', self.getPointb())

        print('The length of the line is ', self.LineLength())

    def LineLength(self):

        x = self.a.getX() - self.b.getX()

        y = self.a.getY() - self.b.getY()

        z = self.a.getZ() - self.b.getZ()

        return pow((x**2+y**2+z**2), 1/2)

    def getPointa(self):

        return self.a

    def getPointb(self):

        return self.b

a = Point(0, 0, 0)

b = Point(0, 1, 0)

l = Line(a, b)

l.printLine()

-----------------------------------------------------------------------------------------------------------

附录:运算符重载

(1)什么是运算符重载

    让用户自定义的类生成的对象(实例)能够使用运算符进行操作

    只能对已经存在的运算符进行重载,不能自己臆造发明新的运算符

    运算符重载遵循三不变:优先级不变,结合性不变,运算量的个数不变

    运算符重载的目的是提高可读性,让用户自定义数据类型(即类class的对象)能够使用常规运算符进行运算处理。

(2)作用

    让用户自定义的实例像内建对象(即基本数据类型的变量或常量)一样进行运算符操作

    让程序简洁易读

    对用户自定义对象,将运算符赋予新的运算规则

    提醒:运算符重载时,最好遵循运算符原有功能,否则会降低可读性。如果运算符重载不能提高程序的可读性,还不如不进行运算符重载,直接使用普通方法(函数)。

    注意:可以用普通方法来实现运算符重载方法的功能。唯一的区别是:普通方法定义后需要人工调用(显示调用),而运算符重载方法定义后既可以自动调用(即隐式调用),也可以显示调用(即人工调用)。对于运算符重载方法,语法上可以显示调用,但为了提高可读性,还是尽量使用隐式调用,即使用与基本数据类型相同的运算表达式。

(3)算术运算符的重载

    方法名             运算符和表达式      说明

    __add__(self,rhs)        self + rhs          加法

    __sub__(self,rhs)         self - rhs          减法

    __mul__(self,rhs)         self * rhs         乘法

    __truediv__(self,rhs)      self / rhs          除法

    __floordiv__(self,rhs)      self //rhs         地板除

    __mod__(self,rhs)         self % rhs       取模(求余)

    __pow__(self,rhs)         self **rhs        幂运算

    注:rhs (right hand side) 右手边,lhs (left hand side) 左手边

说明:

    运算符重载的方法的参数已经有了固定的含义,不建议改变原有的运算符的含义及参数的意义

    二元运算符的重载方法格式:

    def __xx__(self,other):

        语句块

例:实现两个自定义列表的相加和列表自连接(乘整数)

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __add__(self,lst):

        return Mylist(self.data+lst.data)

    def __mul__(self,rhs):

        # rhs为int类型,不能用rhs.data

        return Mylist(self.data*rhs)

def main():

    L1=Mylist([1,2,3])

    L2=Mylist([4,5,6])

    L3=L1+L2  # 这是隐式调用运算符重载方法

    # 它等效为如下显式调用形式

    # L3=L1.__add__(L2)

    L4=L2+L1  # 等效为如下显式调用形式 L4=L2.__add__(L1)

    L5=L1*3    # 等效为如下显式调用形式 L5=L1.__mul__(3)

    print(L3)  # Mylist([1,2,3,4,5,6])  等效为如下显式调用形式 print(L3.__repr__())

    print(L4)  # Mylist([4,5,6,1,2,3])

    print(L5)  # Mylist([1,2,3,1,2,3,1,2,3])

main()

(4)反向运算符的重载

    当运算符的左侧为内建类型时,右侧为自定义类型进行算术运算符运算时会出现TypeError错误,因为无法修改内建类型的代码实现运算符重载,此时需要使用反向运算符的重载

    反向算术运算符的重载:

    方法名            运算符和表达式       说明

    __radd__(self,lhs)       lhs + self          加法

    __rsub__(self,lhs)       lhs - self          减法

    __rmul__(self,lhs)       lhs * self          乘法

    __rtruediv__(self,lhs)    lhs / self           除法

    __rfloordiv__(self,lhs)    lhs // self         地板除

    __rmod__(self,lhs)       lhs % self         取模(求余)

    __rpow__(self,lhs)       lhs ** self         幂运算

例:

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __add__(self,lst):

        return Mylist(self.data+lst.data)

    def __mul__(self, rhs):

        # rhs为int类型,不能用rhs.data

        return Mylist(self.data*rhs)

    def __rmul__(self,lhs):

        return Mylist(self.data*lhs)

def main():

    L1=Mylist([1,2,3])

    L2=Mylist([4,5,6])

    L3=3*L1     # 等效为 L3=L1.__rmul__(3)

    print(L3)   # 等效为 print(L3.__repr__())

    L1+=L2      # 等效为 L1=L1.__add__(L2)

    print(L1)

    L2*=3       # 等效为 L2=L2.__mul__(3)

    print(L2)

main()

(5)复合赋值算术运算符的重载

    以复合赋值算术运算符 x += y为例,此运算符会优先调用x.__iadd__(y)方法,如果没有__iadd__方法时,则会将复合赋值算术运算拆解为:x = x + y

    然后调用x = x.__add__(y)方法,如果再不存在__add__方法则会触发TypeError类型的错误异常

    复合赋值算术运算符的重载:

        方法名             运算符和表达式      说明

        __iadd__(self,rhs)       self += rhs        加法

        __isub__(self,rhs)       self -= rhs         减法

        __imul__(self,rhs)       self *= rhs         乘法

        __itruediv__(self,rhs)     self /= rhs        除法

        __ifloordiv__(self,rhs)    self //=rhs        地板除

        __imod__(self,rhs)       self %= rhs     取模(求余)

        __ipow__(self,rhs)       self **=rhs       幂运算

(6)比较算术运算符的重载

    比较算术运算符的重载:

        方法名           算符和表达式      说明

        __lt__(self,rhs)       self < rhs        小于

        __le__(self,rhs)       self <= rhs       小于等于

        __gt__(self,rhs)       self > rhs        大于

        __ge__(self,rhs)       self >= rhs       大于等于

        __eq__(self,rhs)       self == rhs       等于

        __ne__(self,rhs)       self != rhs       不等于

(7)位运算符重载

        方法名            运算符和表达式        说明

        __and__(self,rhs)      self & rhs            位与

        __or__(self,rhs)        self | rhs             位或

        __xor__(self,rhs)       self ^ rhs             位异或

        __lshift__(self,rhs)      self <<rhs            左移

        __rshift__(self,rhs)      self >>rhs            右移

(8)反向位运算符重载

        方法名            运算符和表达式        说明

        __and__(self,lhs)       lhs & rhs             位与

        __or__(self,lhs)         lhs | rhs             位或

        __xor__(self,lhs)        lhs ^ rhs             位异或

        __lshift__(self,lhs)      lhs <<rhs             左移

        __rshift__(self,lhs)      lhs >>rhs             右移

(9)复合赋值位相关运算符重载

        方法名             运算符和表达式       说明

        __iand__(self,rhs)       self & rhs           位与

        __ior__(self,rhs)        self | rhs            位或

        __ixor__(self,rhs)       self ^ rhs            位异或

        __ilshift__(self,rhs)      self <<rhs           左移

        __irshift__(self,rhs)      self >>rhs           右移

(10)一元运算符的重载

     方法名         运算符和表达式     说明

     __neg__(self)        - self           负号

     __pos__(self)        + self           正号

     __invert__(self)      ~ self           取反

语法:

    class 类名:

        def __xxx__(self):

            pass

例:

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __neg__(self):

        g=(-x for x in self.data)

        return Mylist(g)

    def __pos__(self):

        g=(abs(x) for x in self.data)

        return Mylist(g)

def main():

    s1=Mylist([1,-2,3,-4,5,-6])

    s2=-s1   #s2=s1.__neg__()

    print(s2)

    s3=+s1   #s3=s1.__pos__()

    print(s3)

main()

(11)in/not in 运算符重载

    格式:

    def __contains__(self,e):

        语句

    注: in / not in 返回布尔值 True / False

    当重载了__contains__后,in和not in运算符都可用

    not in 运算符的返回值与in相反

例:

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __contains__(self, e):

        return True if e in self.data else False

def main():

    s=Mylist([1,2,3,4,-5,6])

    if 2 in s:  # 等同于if s.__contains__(2)

        print('2在s内')

    else:

        print('2不在s内')

    if -4 not in s:  # 等同于if not s.__contains__(-4)

        print('-4不在s内')

    else:

        print('-4在s内')

main()

(12)索引和切片运算符重载方法

        方法名                  运算符和表达式      说明

        __getitem__(self,i)          x=self(i)           索引/切片取值

        __setitem__(self,i,v)         self[i]=v           索引/切片赋值

        __delitem__(self,i)          del self[i]          del语句删除索引/切片

        作用:

            让自定义的类型的对象能够支持索引和切片操作

例:

class Mylist:

    def __init__(self,iterable=()):

        self.__data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.__data)

    def __getitem__(self,i):

        '索引取值,i绑定[]内的元素'

        print('i的值',i)

        return self.__data[i]  # 返回data绑定列表中的第i个元素

    def __setitem__(self,i,v):

        '''此方法可以让自定义的列表支持索引赋值操作'''

        print('__setitem__被调用,i=',i,'v=',v)

        self.__data[i]=v

    def __delitem__(self,i):

        del self.__data[i]  # self.__data.pop(i)

        return self

        if type(i) is int:

            print('用户正在用索引取值')

        elif type(i) is slice:

            print('用户正在用切片取值')

            print('切片的起点是:',i.start)

            print('切片的终点是:',i.stop)

            print('切片的步长是:',i.step)

        elif type(i) is str:

            print('用户正在用字符串进行索引操作')

            # raise KeyError

        return self.__data[i]  # 返回data绑定的第i个元素

def main():

    s=Mylist([1,2,3,4,-5,6])

    print(s[3])  # 4   等效为 print(s.__getitem__(3))

    s[3]=400     #  等效为 s.__setitem__(3,400)

    print(s)  # Mylist([1,2,3,400,-5,6])   等效为 print(s.__repr__())

    del s[3]  #  等效为 s.__delitem__(3)

    print(s)  # Mylist([1,2,3,-5,6])   等效为 print(s.__repr__())

    print(s[::2])  # [1,3,6]

main()

:

    class 类名:

        def __xxx__(self):

            pass

例:

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __neg__(self):

        g=(-x for x in self.data)

        return Mylist(g)

    def __pos__(self):

        g=(abs(x) for x in self.data)

        return Mylist(g)

def main():

    s1=Mylist([1,-2,3,-4,5,-6])

    s2=-s1   #s2=s1.__neg__()

    print(s2)

    s3=+s1   #s3=s1.__pos__()

    print(s3)

main()

(11)in/not in 运算符重载

    格式:

    def __contains__(self,e):

        语句

    注: in / not in 返回布尔值 True / False

    当重载了__contains__后,in和not in运算符都可用

    not in 运算符的返回值与in相反

例:

class Mylist:

    def __init__(self,iterable=()):

        self.data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.data)

    def __contains__(self, e):

        return True if e in self.data else False

def main():

    s=Mylist([1,2,3,4,-5,6])

    if 2 in s:  # 等同于if s.__contains__(2)

        print('2在s内')

    else:

        print('2不在s内')

    if -4 not in s:  # 等同于if not s.__contains__(-4)

        print('-4不在s内')

    else:

        print('-4在s内')

main()

(12)索引和切片运算符重载方法

        方法名                  运算符和表达式      说明

        __getitem__(self,i)          x=self(i)           索引/切片取值

        __setitem__(self,i,v)         self[i]=v           索引/切片赋值

        __delitem__(self,i)          del self[i]          del语句删除索引/切片

        作用:

            让自定义的类型的对象能够支持索引和切片操作

例:

class Mylist:

    def __init__(self,iterable=()):

        self.__data=list(iterable)

    def __repr__(self):

        return "Mylist({})".format(self.__data)

    def __getitem__(self,i):

        '索引取值,i绑定[]内的元素'

        print('i的值',i)

        return self.__data[i]  # 返回data绑定列表中的第i个元素

    def __setitem__(self,i,v):

        '''此方法可以让自定义的列表支持索引赋值操作'''

        print('__setitem__被调用,i=',i,'v=',v)

        self.__data[i]=v

    def __delitem__(self,i):

        del self.__data[i]  # self.__data.pop(i)

        return self

        if type(i) is int:

            print('用户正在用索引取值')

        elif type(i) is slice:

            print('用户正在用切片取值')

            print('切片的起点是:',i.start)

            print('切片的终点是:',i.stop)

            print('切片的步长是:',i.step)

        elif type(i) is str:

            print('用户正在用字符串进行索引操作')

            # raise KeyError

        return self.__data[i]  # 返回data绑定的第i个元素

def main():

    s=Mylist([1,2,3,4,-5,6])

    print(s[3])  # 4   等效为 print(s.__getitem__(3))

    s[3]=400     #  等效为 s.__setitem__(3,400)

    print(s)  # Mylist([1,2,3,400,-5,6])   等效为 print(s.__repr__())

    del s[3]  #  等效为 s.__delitem__(3)

    print(s)  # Mylist([1,2,3,-5,6])   等效为 print(s.__repr__())

    print(s[::2])  # [1,3,6]

main()

四、测试代码

# 1 BDDCA
# def f():
#     pass
# print(f())# 5
# def f(x,y):
#     return x**2
#     return y**2
#     return x+y
# print(f(2,3))# 6 BBCCC
# def f():
#     print('AA',end='')
#     return
#     print('BB',end='')
#     return
# print(f())
# AANone# 7
# def f():
#     return 2,3,4
# def main():
#     print(f())
#     return
# main()
# (2, 3, 4)# 8
# def f():
#     print('AA',end='')
# def main():
#     print(f())
# main()
# AANone# print(print('AA'))
# AA
# None# 10
# f=lambda x:(2,x,x**2)
# def main():
#     print(f(3))
#     return
# main()
# (2, 3, 9)# 11 CCBBC
# def g():
#     return lambda x,y:x+y
# def main():
#     f=g()
#     print(f(2,3))
#     return
# main()
# 5# 13
# f=(lambda:2,lambda x:x*3,lambda y:y**2)
# def main():
#     print(f[0]()+f[1](2)+f[2](3))
#     return
# main()
# 17# 14
# def f(x):
#     return x(2)
# def main():
#     y=f(lambda x:x**2)
#     print(y)
#     return
# main()
# 4# 15
# def f(x):
#     x=3
# def main():
#     x=2
#     f(x)
#     print(x)
#     return
# main()
#  2# 16 AABAA
# def f(x):
#     x[1]=5
# def main():
#     x=[2,3,4]
#     f(x)
#     print(x)
#     return
# main()
# [2, 5, 4]#  17
# def f(x):
#     x['a']=4
# def main():
#     x=dict(a=2,b=3)
#     f(x)
#     print(x)
#     return
# main()
# {'a': 4, 'b': 3}# 18
# def f(x,y):
#     x,y=y,x
# def main():
#     x,y=2,3
#     f(x,y)
#     print('{},{}'.format(x,y))
#     return
# main()
# 2,3# 19
# def f(s):
#     s[0],s[1]=s[1],s[0]
# def main():
#     s=[2,3]
#     f(s)
#     print(s)
#     return
# main()
# [3, 2]# 20
# def f(x,y=4,z=5):
#     print(x,y,z,sep=',')
# def main():
#     f(2,3)
#     return
# main()
# 2,3,5
#
# 21
# def f(x=4,y,z=5):
#     print(x,y,z,sep=',')
# def main():
#     f(2,3)
#     return
# main()
# 出错
#
# 22
# def f(x=4,y,z=5):
#     print(x,y,z,sep=',')
# def main():
#     f(y=2,x=3)
#     return
# main()
# 出错
#
# 23
# def f(x,y=4,z=5):
#     print(x,y,z,sep=',')
# def main():
#     f(y=2,x=3)
#     return
# main()
# 3,2,5
#
# 24
# def f(x,y,*z):
#     print(x,y,z,sep=',')
# def main():
#     f(2,3,4,5,6)
#     return
# main()
# 2,3,(4, 5, 6)
#
# 26 AAABC
# def f(x=6,y=7,*z,**t):
#     print(x,y,z,t,sep=',')
# def main():
#     f(2,a=4,b=5)
#     return
# main()
# 2,7,(),{'a': 4, 'b': 5}
#
# 27
# def f(x=6,y=7,*z):
#     print(x,y,z,sep=',')
# def main():
#     x,*y,z=2,3,4,5
#     f(x,y,z)
#     return
# main()
# 2,[3, 4],(5,)
#
# 28
# def f(x=6,y=7,*z):
#     print(x,y,z,sep=',')
# def main():
#     x,y,*z=2,3,4,5
#     f(x,y,z)
#     return
# main()
# 2,3,([4, 5],)
#
# 29
# def f(x=6,y=7,*z):
#     print(x,y,z,sep=',')
# def main():
#     x,*y,z=2,3,4,5
#     f(x,*y,z)
#     print(x, y, z)
#     return
# main()
# 2,3,(4, 5)
# 2 [3, 4] 5
#
# 30
# def f(x,*y):
#     m=x;
#     for i in y:
#         if(i>m):
#             m=i
#     return m
# def main():
#     z=f(3,4,2,5,6,8,6,7,1)
#     print(z)
#     return
# main()
# 8# 31
# def f(x):
#     a=2;
#     x=3
#     print(a,x,sep='',end='')
# def g(x):
#     a=4;
#     x=x+5
#     print(a,x,sep='',end='')
# def main():
#     a,x=2,3
#     f(a)
#     g(x)
# main()
# 2348# 32
# def f(x):
#     a=2;
#     x=3
#     print(a,x,sep='',end='')
# def g(x):
#     global a
#     a=a+4;
#     x=x+5
#     print(a,x,sep='',end='')
# a,x=2,3
# f(a)
# g(x)
# 2368# 33
# x=2
# def f(x=4):
#     print(x,end='')
# f(x)
# x=3
# f(x)
# 23# 34
# x=2
# def f(x=4):
#     print(x,end='')
# def main():
#     global x
#     f(x)
#     x=3
#     f(x)
# main()
# 23# 35
# 递归
# s='uestc'
# def f(i):
#     if(i<-len(s)):
#        return
#     else:
#         f(i-1)
#     print(s[i],end='')
# def main():
#     f(-1)
# main()
# uestc# 36
# def f(i):
#     if(i>=len(s)):
#        return
#     else:
#         f(i+1)
#     print(s[i],end='')
# def main():
#     global s
#     s='uestc'
#     f(0)
# main()
# ctseu# 37
# def f(y=3):
#     x=y
#     print(x,end='')
#     def g():
#         nonlocal x
#         print(x,end='')
#         x=4
#     g()
#     print(x,end='')
# def main():
#     global x
#     x=2
#     f(x)
#     print(x,end='')
# main()
# 2242# 38
# def f(y=3):
#     x=y
#     print(x,end='')
#     def g():
#         global x
#         print(x,end='')
#         x=4
#     g()
#     print(x,end='')
# def main():
#     global x
#     x=2
#     f(x)
#     print(x,end='')
# main()
# 2224# 39
# def f(y=3):
#     x=y
#     print(x,end='')
#     def g():
#         global x
#         print(x,end='')
#         x=4
#         def h():
#             print(x,end='')
#             x=5
#     g()
#     print(x,end='')
# def main():
#     global x
#     x=2
#     f(x)
#     print(x,end='')
# main()
# 2224# 40
# def f(y=3):
#     x=y
#     print(x,end='')
#     def g():
#         global x
#         print(x,end='')
#         x=4
#         def h():
#             global x
#             print(x,end='')
#             x=5
#         h()
#     g()
#     print(x,end='')
# def main():
#     global x
#     x=2
#     f(x)
#     print(x,end='')
# main()
# 22425# 42
# def f():
#     global x
#     x=4
#     y=5
#     def g():
#         nonlocal y
#         global x
#         x=6
#         y=7
#         print('{}{}'.format(x,y),end='')
#     g()
#     print('{}{}'.format(x,y),end='')
# x=2
# y=3
# f()
# print('{}{}'.format(x,y),end='')
# 676763# 61
# import string, os
# # print(os.getcwd())
# os.chdir(r'E:\pythonProject  demo\练习\作业')
# f=open(r't.txt','w+')
# f.write(string.digits+string.ascii_uppercase)
# f.seek(0)
# s=f.read(10)
# print(s)
# f.close()
# 0123456789# 62
# import string, os
# os.chdir(r'E:\pythonProject  demo\练习\作业')
# f=open(r'a.txt','w+')
# f.write(string.digits+'\n'+string.ascii_uppercase+'\n'+string.ascii_lowercase)
# # f.write('\n') 一个换行符两个位置
# print(string.digits+'\n'+string.ascii_uppercase+'\n'+string.ascii_lowercase)
# print(f.tell(),end=',')
# f.seek(0)
# # print(f.read(1))
# s=f.read(1)
# # print(s)
# # print(type(s))
# print(f.tell(),end=',')
# t=f.readline()
# print(f.tell(),end=',')
# print(len(s+t))
# # print(len('\n')) 1
# f.close()# 65
# import string
# f=open(r't.dat','wb+')
# s='电子科技大学'
# sb=s.encode('gbk')
# f.write(sb)
# f.seek(-12,1)
# print(f.tell(),end=',')
# t=f.read(4)
# x=t.decode('gbk')
# print(x,end=',')
# print(f.tell())
# f.close()
# 0,电子,4# 71
import os
# path=os.getcwd()
# s=os.listdir(path)
# print(s)# path=os.getcwd()
# s=os.walk(path)
# print(s)
#
# path=os.getcwd()
# s=os.walk(path)
# for dirpath,dirnames,filenames in s:
#     print(filenames)
#
# path=os.getcwd()
# s=os.walk(path)
# for dirpath,dirnames,filenames in s:
#     print(dirpath)
#
# path=os.getcwd()
# s=os.walk(path)
# for dirpath,dirnames,filenames in s:
#     print(dirnames)# 73
# import os
# print(os.getcwd())
# s = os.path.getctime(r'E:\pythonProject  demo\练习\作业\python平时作业4.py')
# print(s)
# s = os.path.getsize(r'E:\pythonProject  demo\练习\作业\python平时作业4.py')
# print(s)
# s = os.path.exists(r'E:\pythonProject  demo\练习\作业\python平时作业4.py')
# print(s)
# s = os.stat(r'E:\pythonProject  demo\练习\作业\python平时作业4.py')
# print(s)# 85
# try:
#     x=[3,4,5]
#     y=2+x
#     print(y)
# except TypeError:
#     print('类型不匹配!')
# except SyntaxError:
#     print('语法错误!')
# except:
#     print('其他错误!')
# 类型不匹配!# 86
# try:
#     x=x+2
# except TypeError:
#     print('AA')
# except SyntaxError:
#     print('BB')
# except NameError:
#     print('CC')
# except:
#     print('DD')
# CC# 87
# try:
#     s=(2,3,4)
#     s[1]=5
# except TypeError:
#     print('AA')
# except SyntaxError:
#     print('BB')
# except NameError:
#     print('CC')
# except:
#     print('DD')# 88
# try:
#     x=1+2,2+3,3+4
#     print(x)
# except:
#     print('AA',end='')
# else:
#     print('BB',end='')
# finally:
#     print('CC',end='')
# print('DD',end='')
# BBCCDD# def f(**z):
#     print(z)
#
# f(a=1, b=3)
# {'a': 1, 'b': 3}# import sys
# sys.path.append(r':E:/pythonProject  demo/练习/作业/cc/')
# sys.path.append(r':E:\pythonProject  demo\练习作业\cc')
# sys.path.append(r':E:\\pythonProject  demo\\练习作业\\cc\\')
# sys.path.append(r":E:\\pythonProject  demo\\练习作业\\cc\\")
# sys.path.append(r':E:\\pythonProject  demo\\练习作业\\cc\\')
# sys.path.append(r':E:\\pythonProject  demo\\练习作业\\cc\\')
# sys.path += ['E:\\pythonProject  demo\\练习作业\\cc\\']
# sys.path += ["E:\\pythonProject  demo\\练习作业\\cc\\"]
#
# # 错误实例
# # sys.path.append(r':E:\pythonProject  demo\练习作业\cc\')
# # sys.path.append(r":E:\pythonProject  demo\练习作业\cc\")
# # sys.path.append(":E:\pythonProject  demo\练习作业\cc\")# 59
# f=open(r'E:/pythonProject  demo/练习/作业/f.txt')
# s=f.read()
# print(s)
# f.close()# f=open(r'E:/pythonProject  demo/练习/作业/f.txt','r')
# while True:
#     s=f.read(2)
#     if not s:
#         break
#     print(s,end='')
# f.close()# f=open(r'E:/pythonProject  demo/练习/作业/f.txt','r')
# while True:
#     s=f.readline()
#     if not s:
#         break
#     print(s)
# 这里的print自带\n,redline也会读入\n
# f.close()# f=open(r'f.txt')
# for i in f:
#     print(i,end='')
# f.close()#60
# f=open(r'f.txt')
# s=[]
# for i in f:
#     s+=[i]
# print(s)
# f.close()
#
# f=open(r'f.txt','r')
# s=[]
# while True:
#     t=f.readline()
#     if not t:
#         break
#     s+=[t]
# print(s)
# f.close()
#
# f=open(r'f.txt','r')
# s=[]
# t=''
# while True:
#     i=f.read(1)
#     if not i:
#         break
#     if (i!='\n'):
#         t+=i
#     else:
#         t+='\n'
#         s+=[t]
#         t=''
# print(s)
# f.close()
#
# f=open(r'f.txt','r')
# s=f.readlines()
# print(s)
# f.close()
# ['AA\n', 'BBB\n', 'CCCC']
# ['AA\n', 'BBB\n', 'CCCC']
# ['AA\n', 'BBB\n']
# ['AA\n', 'BBB\n', 'CCCC']# 74
# import os,shutil
# os.rename('E:/pythonProject  demo/练习/作业/ff.txt', 'E:/pythonProject  demo/练习/作业/f.txt')
# 下面这个是错误的,斜线不能这么画
# os.rename('E:\pythonProject  demo\练习\作业\f.txt', 'E:\pythonProject  demo\练习\作业\ff.txt')# shutil.copyfile('E:/pythonProject  demo/练习/作业/f.txt','E:/pythonProject  demo/练习/作业/ff.txt')
# os.remove('E:/pythonProject  demo/练习/作业/f.txt')# shutil.move('E:/pythonProject  demo/练习/作业/ff.txt', 'E:/pythonProject  demo/练习/作业/f.txt')# 填空题# 101
# 正整数转化为二进制
# def f(n):
#     if(n==0):
#         return
#     else:
#         f(n//2)
#     print(n%2,end='')
# def main():
#     x=eval(input('x='))
#     print('0b',end='')
#     f(x)
# main()# 102
# def f(n):
#     global s
#     if(n==0):
#         return
#     else:
#         f(n//16)
#     print(s[n%16],end='')
# def main():
#     global s
#     s='0123456789ABCDEF'
#     x=eval(input('x='))
#     print('0x',end='')
#     f(x)
# main()# 103
# def f():
#     global n
#     if(n>3):
#         print('你不是合法用户!')
#         return
#     else:
#         k=input('请输入密码:')
#         if(k=='123'):
#             print('欢迎光临!')
#             x=input('继续?(y/n)')
#             if (x=='y' or x=='Y'):
#                 n=1
#                 f()
#             else:
#                 return
#         else:
#             print('密码错误!')
#             n=n+1
#             f()
# def main():
#     global n
#     n=1
#     f()
# main()# 104
# import os
# s=[]
# path=os.getcwd()
# f=os.walk(path)
# for dirpath,dirnames,filenames in f:
#     for i in dirnames:
#         s.append(os.path.join(dirpath,i))
#     for i in filenames:
#         s.append(os.path.join(dirpath,i))
# for i in s:
#     print(i)# 105
# f=open(r'g.txt','w')
# n=int(input('n='))
# for i in range(n):
#     s=''
#     for j in range(n-i-1):
#         s+=' '
#     for k in range(2*i+1):
#         s+='*'
#     f.write(s+'\n')
# for i in range(n-1):
#     s=''
#     for j in range(i+1):
#         s+=' '
#     for k in range(2*(n-i-1)-1):
#         s+='*'
#     f.write(s+'\n')
# f.close()
# with open('g.txt','r') as f:
#     s=f.read()
# print(s)# 106
# import random
# with open('d.txt', 'w') as d:
#     for i in range(100):
#         d.write(str(random.randrange(0, 100))+'\n')# 107
# import random
# with open('e.txt', 'w') as e:
#     for i in range(100):
#         e.write(str(random.randrange(0, 100))+'\n')
# n = 0
# with open('e.txt') as e:
#     for i in e:
#         if int(i) % 2:
#             n += 1
# print(n)# 108
# f1=open('e.txt','r')
# f2=open('g.txt','w')
# s=f1.read()
# f2.write(s)
# f1.close()
# f2.close()# 109
# 异常处理机制
# import sys
# x=input('x=')
# try:
#     y=int(x)
# except Exception as s:
#     print(s)
#     sys.exit(0)
# else:
#     print(y)# 110
# try:
#     x=eval(input('x='))
#     y=12/x
# except (NameError,ZeroDivisionError) as s:
#     print(s)
# except:
#     print('其他异常!')
# else:
#     print(y)# 111
# 注意点:try里面raise异常类型,except可以有多个,里面输出异常说明
# try:
#     x=eval(input('x='))
#     if(x==1):raise AttributeError('对象属性异常')
#     elif(x==2):raise IOError('输入输出异常')
#     elif(x==3):raise IndexError('索引异常')
#     elif(x==4):raise KeyError('关键字异常')
#     elif(x==5):raise NameError('名字异常')
#     elif(x==6):raise TypeError('类型异常')
#     elif(x==7):raise ValueError('值异常')
#     elif(x==8):raise ZeroDivisionError('零除异常')
#     elif(x==9):raise EOFError('文件结束异常')
#     else:print('没有触发异常!')
#     print('in try')
# except (AttributeError,IOError,IndexError,KeyError,NameError,
#         TypeError,ValueError,ZeroDivisionError,EOFError) as s:
#     print(s)
# except:
#     print('其他异常!')
# else:
#     print('正常!')
# finally:
#     print('Goodbye!')# 112
# class MyException(Exception):
#     def __init__(self,data):
#         self.data=data
# def main():
#     try:
#         x=eval(input('x='))
#         if x==0:
#             raise MyException('不能为0哦!')
#         y=100/x
#         print(y)
#     except MyException as s:
#         print(s)
#     finally:
#         print('Goodbye!')
# main()# 113
# s='uestc'
# i=eval(input('i='))
# assert i<len(s),'索引下标超出字符串的长度范围啦!'
# print('s[{}]={}'.format(i,s[i]))# 输入输出
# i=6
# Traceback (most recent call last):
#   File "E:/pythonProject  demo/练习/作业/python平时作业4.py", line 844, in <module>
#     assert i<len(s),'索引下标超出字符串的长度范围啦!'
# AssertionError: 索引下标超出字符串的长度范围啦!# 114
# s='uestc'
# try:
#     i=eval(input('i='))
#     assert i<len(s),'索引下标超出字符串的长度范围啦!'
#     print('s[{}]={}'.format(i,s[i]))
# except AssertionError as e:
#     print('这是断言错误!',e)
# except:
#     print('其他错误!')# 输出
# i=10
# 这是断言错误! 索引下标超出字符串的长度范围啦!# 115
# s='uestc'
# try:
#     i=eval(input('i='))
#     print('s[{}]={}'.format(i,s[i]))
# except Exception as e:
# # except IndexError as e:
#     print(e)
# except:
#     print('其他错误!')# 116
# d=dict(a=2,b=3,c=4)
# try:
#     key=input('key=')
#     print("d['{}']={}".format(key,d[key]))
# except KeyError as e:
#     print('字典中没有这个词条:',e)
# except:
#     print('其他错误!')# 117
# d=dict(a=2,b=3,c=4)
# try:
#     fn=input('fileName=')
#     f=open(fn,'r')
#     print(f.read())
#     f.close()
# except IOError as e:
#     print('没有找到这个文件:',e)
# except:
#     print('其他错误!')# 118
# x,y,z=2,3,4
# try:
#     n=input('name=')
#     print(eval(n))
# except NameError as e:
#     print('没有找到这个变量:',e)
# except:
#     print('其他错误!')# 119
# def f(s):
#     s[2]=3
#     return s[2]
# try:
#     x=input('x=')
#     # print(x, type(x))
#     x = eval(x)
#     # print(x)
#     y=f(x)
#     print(y)
# except TypeError as e:
#     print('类型不匹配:',e)
# except:
#     print('其他错误!')# 120
# class Employee:
#     empCount=0
#     def __init__(self,name,salary):
#         self.name=name
#         self.salary=salary
#         Employee.empCount+=1
#     def displayCount(self):
#         print("empCount={}".format(Employee.empCount))
#     def displayEmployee(self):
#         print("name={},salary={}".format(self.name,self.salary))
# def main():
#     emp1=Employee("zhangyi",8000)
#     emp2=Employee("zhanger",9000)
#     emp1.displayEmployee()
#     emp2.displayEmployee()
#     print("empCount={}".format(Employee.empCount))
#     emp1.displayCount()
# main()# 121
# class Person:
#     def __init__(self,name,age):
#         self.name=name
#         self.age=age
#     def print_age(self):
#         print(self.name,".age=",self.age)
# class Man(Person):
#     work="Teacher"
#     def print_age(self):
#         print("{}'s age is {}".format(self.name,self.age))
#     def print_work(self):
#         print("{}'s work is {}".format(self.name,self.work))
# def main():
#     a=Man("Bob", 30)
#     a.print_age()
#     a.print_work()
# main()# 122
# import math
# class Circle:
#     def __init__(self,r):
#         self.r=r
#     def getArea(self):
#         return math.pi*self.r**2
# class Square:
#     # 正方形
#     def __init__(self,size):
#         self.size=size
#     def getArea(self):
#         return self.size*self.size
# class Rectangle:
#     # 矩形
#     def __init__(self,w,h):
#         self.w=w
#         self.h=h
#     def getArea(self):
#         return self.w*self.h
# def main():
#     a=Circle(2)
#     b=Square(3)
#     c=Rectangle(4, 5)
#     print("a=",a.getArea())
#     print("b=",b.getArea())
#     print("c=",c.getArea())
# main()# # 123
# class MyNumber:
#     def __init__(self,value):
#         self.data= value
#
#     def __repr__(self):  # 对应于内置函数str(),用于显示数据
#         return "MyNumber({})".format(self.data)
#
#     def __add__(self,other):
#         v=self.data+other.data
#         return MyNumber(v)
#
#     def __sub__(self,other):
#         v=self.data-other.data
#         return MyNumber(v)
#
#
# def main():
#     n1=MyNumber(30)
#     n2=MyNumber(20)
#     n3=n1+n2    # 等效为 n3=n1.__add__(n2)
#     n4=n3-n2    # 等效为 n4=n3.__sub__(n2)
#     print("n3.data=",n3.data)
#     print(n1,"+",n2,"=",n3)
#     # 等效为print(n1.__repr__(),"+",n2.__repr__(),"=",n3.__repr__())
#     # 等效为print(str(n1),"+",str(n2),"=",str(n3))
#     print(n3,"-",n2,"=",n4)
#     # 等效为print(n3.__repr__(),"-",n2.__repr__(),"=",n4.__repr__())
#     # 等效为print(str(n3),"-",str(n2),"=",str(n4))
# main()# 124. 编写一段程序实现下面的功能:定义一个Rectangle类,
# 属性为左上角和右下角的平面坐标,编写方法,实现根据坐标计算矩形面积的功能
#
# class Rectangle:
#     def __init__(self, a, b, c, d):
#         self.a = a
#         self.b = b
#         self.c = c
#         self.d = d
#
#     def S_Rec(self):
#         print('The area of the rectangle is:', end='')
#         print((self.c-self.a) * (self.b-self.d))
#
# r = Rectangle(0,1,2,0)
# r.S_Rec()# 125. 编写一段程序实现下面的功能:定义一个三维空间的点类Point,
# 其属性是三维空间的坐标,再由它派生出一个直线类Line,能求直线的长度class Point:def __init__(self, x=0, y=0, z=0):self.x = xself.y = yself.z = zdef __repr__(self):return '({},{},{})'.format(self.x, self.y, self.z)def getX(self):return self.xdef getY(self):return self.ydef getZ(self):return self.zclass Line(Point):def __init__(self, a=Point(), b=Point()):self.a = aself.b = bdef printLine(self):print('First Point:', self.getPointa())print('Second Point:', self.getPointb())print('The length of the line is ', self.LineLength())def LineLength(self):x = self.a.getX() - self.b.getX()y = self.a.getY() - self.b.getY()z = self.a.getZ() - self.b.getZ()return pow((x**2+y**2+z**2), 1/2)def getPointa(self):return self.adef getPointb(self):return self.b
a = Point(0, 0, 0)
b = Point(0, 1, 0)
l = Line(a, b)
l.printLine()# import math
# class Point:
#     def __init__(self,x=0,y=0):
#         self.x=x
#         self.y=y
#     def __repr__(self):
#         return "({},{})".format(self.x,self.y)
#     def getX(self):
#         return self.x
#     def getY(self):
#         return self.y
#     def setX(self,x):
#         self.x=x
#     def setY(self,y):
#         self.y=y
# class Line(Point):
#     def __init__(self,ps=Point(),pe=Point()):
#         self.ps=ps
#         self.pe=pe
#         mx=(self.ps.getX()+self.pe.getX())/2
#         my=(self.ps.getY()+self.pe.getY())/2
#         self.setX(mx)
#         self.setY(my)
#     def printLine(self):
#         print("1st:",self.getStartpoint())
#         print("2nd:",self.getEndpoint())
#         print("The Length of Line:",self.getLength())
#         print("The Midpoint of Line:",self.getMidpoint())
#     def getLength(self):
#         dx=self.pe.getX()-self.ps.getX()
#         dy=self.pe.getY()-self.ps.getY()
#         return math.sqrt(dx*dx+dy*dy)
#     def getStartpoint(self):
#         return self.ps
#     def getEndpoint(self):
#         return self.pe
#     def getMidpoint(self):
#         return Point(self.x,self.y)
# def main():
#     ps=Point(-2,5)
#     pe=Point(7,9)
#     x=Line(ps,pe)
#     x.printLine()  # 输出直线x的信息
# main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【朝夕Net社区技术专刊】Core3.1 WebApi集群实战专题-Corre3.1WebApi配置集成日志/配置Swagger...

欢迎大家阅读《朝夕Net社区技术专刊》第2期我们致力于.NetCore的推广和落地&#xff0c;为更好的帮助大家学习&#xff0c;方便分享干货&#xff0c;特创此刊&#xff01;很高兴你能成为首期读者&#xff0c;文末福利不要错过哦&#xff01;本文通过3大部分进行解读&#xff1a…

python 16进制补零_Python输出16进制不带0x补零,整数转16进制,字符串转16进制

python输出16进制不带0x补零&#xff0c;整数转16进制&#xff0c;字符串转16进制在开发中&#xff0c;我们偶尔会遇到需要将数据通过控制台打印出来&#xff0c;以检查数据传输的准确性。例如调试服务端刚接到的二进制数据(里面包含很多非可见字符&#xff0c;也就是ascii码之…

一文读懂开源许可证异同

对开源许可证异同的对比并非源自担忧。对开源许可证进行比较并不容易&#xff0c;什么 copyleft 啦&#xff0c;什么宽松许可证啦&#xff0c;光 GNU 就有 GPL 2 和 GPL 3 之分&#xff0c;OSI 批准的许可证就有八十多个&#xff0c;而开源生态下存在了数百个许可证。对于我们这…

WARNING: Ignoring invalid distribution -ip

原因: 之前安装插件失败/中途退出&#xff0c;导致插件安装出现异常导致 解决方案: 进入你的项目里面,进入venv文件夹,进入Lib,进入site-packages,删除~ip开头的文件如图所示

根据后序和中序求二叉树的层序

题目描述&#xff1a;给出二叉树的后序和中序序列&#xff0c;输出二叉树的层序遍历序列。 题目分析&#xff1a;中序遍历为左根右&#xff0c;后序遍历为左右根&#xff0c;所以后序遍历的最后一个节点为根节点&#xff0c;在中序遍历上找出根节点的位置&#xff0c;将树分为…

mysql数据剪切到新表_6、MySQL核心DDL语句

命令类型服务器端命令获取命令帮助数据库管理查看数据库基础变量SQL组成创建修改删除表管理创建示例一示例二示例三一个常见的创建表结构的示例表修改改名表结构修改添加/删除字段修改字段键管理索引索引管理视图视图操作命令类型服务器端命令DDL&#xff1a;数据定义语言&…

pycharm里面下载pip(不用去官网)

注意:pycharm版本较低的话右侧有个"",一样的效果

C++ stringstream输入方式

在题目中&#xff0c;我们有时候会遇到不知道要输入多少个元素&#xff0c;这个时候我们要怎么读取呢&#xff1f; 采用stringstream输入方式&#xff0c;头文件为< sstream > 代码如下&#xff1a; #include <iostream> #include <cstring> #include <…

基于.NET下的人工智能|利用ICSharpCore搭建基于.NET Core的机器学习和深度学习的本地开发环境...

每个人都习惯使用Python去完成机器学习和深度学习的工作&#xff0c;但是对于习惯于某种特定语言的人来说&#xff0c;转型不是那么容易的事。这两年我花了不少时间在Python&#xff0c;毕竟工作的重心也从移动开发转为机器学习和深度学习。感谢我的老板给我很大的空间去开拓新…

ValueError: check_hostname requires server_hostnamejie解决方案

原因: 1. 下载包带的插件等级高了 2. 网络代理没关 3.pip误删 解决方案: 对应上面原因: 1.终端(terminal)输入代码 pip install urllib31.25.112. 3.针对第三点 https://blog.csdn.net/weixin_53051556/article/details/118566675

万稞pw80线切割编程软件_模具设计编程培训哪些内容?

模具设计编程培训哪些内容&#xff1f;一&#xff0e;UG、PROE三维产品设计班1)产品设计流程&#xff1b;2)三维造型、各类产品结构设计3)产品表面处理工艺4)UG、PROE 3D造型、抄板、工程图、逆向工程、点云处理。5)100多套家电、医疗器械、汽车、手机、电动工具设计案例讲解二…

UVA - 548 Tree

输入一个二叉树的中序和后序遍历&#xff0c;请你输出一个叶子节点&#xff0c;该叶子节点到根的数值总和最小&#xff0c;且这个叶子是编号最小的那个。 输入&#xff1a; 您的程序将从输入文件中读取两行(直到文件结尾)。第一行是树的中序遍历值序列,第二行是树的后序遍历值序…

.NET Core开发实战(第14课:自定义配置数据源:低成本实现定制化配置方案)--学习笔记...

14 | 自定义配置数据源&#xff1a;低成本实现定制化配置方案这一节讲解如何定义自己的数据源&#xff0c;来扩展配置框架扩展步骤1、实现 IConfigurationSource2、实现 IConfigurationProvider3、实现 AddXXX 扩展方法&#xff0c;用来作为注入的快捷方式源码链接&#xff1a;…

uml类图例子_转:(中文命名)UML类图新手入门级介绍

下文转于 2019-05-10。2020-03-10 发觉本出自2007 年出版的《大话设计模式》一书&#xff08;作者: 程杰&#xff09;第一章。于是将文末原链接删去。转载注&#xff1a; 中文命名的优势在UML图这样专注业务逻辑且完全符号化语法&#xff08;与英语无关&#xff09;的工具中特别…

API是什么

定义: API 是用于构建应用程序软件的一组子程序定义&#xff0c;协议和工具。一般来说&#xff0c;这是一套明确定义的各种软件组件之间的通信方法。 接口interface: 各个组件发生交互的区域 协议protocol: 规定了各部分之间如何进行交流的一系列规则的集合 格式format: …

瓷砖铺放-dfs

题目描述 有一长度为N(1< &#xff2e;< 10)的地板&#xff0c;给定两种不同瓷砖&#xff1a;一种长度为1&#xff0c;另一种长度为2&#xff0c;数目不限。要将这个长度为N的地板铺满&#xff0c;一共有多少种不同的铺法&#xff1f; 例如&#xff0c;长度为4的地面一共…

2020年学python_Python学习路线图(2020年最新版)

PythonPython开发Python语言Python学习路线图(2020年最新版)这是我刚开始学习python时的一套学习路线&#xff0c;从入门到上手。(不敢说精通&#xff0c;哈哈~)希望对大家有帮助哈~一、Python入门、环境搭建、变量、数据类型二、Python运算符、条件结构、循环结构三、Python函…

开源、免费、企业级的SiteServer CMS .NET CORE 7.0 预览版发布

经过连续不断地开发与完善&#xff0c;SiteServer CMS .NET CORE 版本终于在今天与大家见面了&#xff0c;版本为7.0.0-preview1&#xff0c;我们将在未来几个月收集大家的反馈&#xff0c;修复与完善产品&#xff0c;最终发布能够稳定运行的7.0正式版。基于.NET CORE的跨平台性…