Python

深度学习模型框架

TensorFlow、PyTorch、Keras、MXNet、Caffe、Theano、CNTK、Chainer、DL4J、FastAI

基础语法

  1. 某python程序中定义了X=【1,2】,那么X*2的值为(49)

    A. 【1,2,1,2】 答案:A 解析:列表的乘法操作是将列表重复指定的次数。

  2. 以下关于Python的说法中错误的是(49) A. Python是一种解释型语言 B. Python是一种面向对象的语言 C. Python是一种弱类型语言 D. Python是一种静态类型语言

    答案:D 解析:Python是一种动态类型语言,变量的类型是在运行时确定的,而不是在编译时确定的。

  3. 在Python语言中,(50)是一种不可变的、有序的序列结构,其中元素可以重复 A. 列表 B. 元组 C. 字典 D. 集合

    答案:B 解析:元组是不可变的、有序的序列结构,元素可以重复。列表是可变的、有序的序列结构,元素可以重复。字典是无序的、可变的键值对集合,键不能重复。集合是无序的、可变的唯一元素集合,元素不能重复。

  4. 在Python中,表达式2***3的结果是(44)。 A. 6 B. 8 C. 9 D. 5

    答案:B 解析:在Python中,运算符表示幂运算,2***3表示2的3次方,结果是8。

  5. 在Python中,设a=2, b=3,表达式a<b and b>=3的值是(61)。 A. True B. False

    答案:A 解析:a<b的值为True,b>=3的值为True,True and True的值为True。

  6. 元组的表示形式

    • () # 空元组, 等价于tuple()
    • (1,) # 单元素元组
    • (1,2,3) # 多元素元组

    特别注意: (1) 不是元组,是数字1

  7. 执行以下 Python 语句之后,列表x 为 ( ) D.[1,2,3,[4,5]]

    x=[1,2,3]

    x.append([4,5])

  8. 执行以下Python语句之后,列表y为( )。 B.[1,2,3,4,5,6]

    x=[1,2,3]

    y=x+[4,5,6]

  9. 关于Python,下列说法正确的是( ) B

    A.用try捕获异常,有except,无需执行finaly : finaly 总会被执行

    B.可以使用 raise关键字来手动抛出异常

    C.except Exception可以捕获所有异常: BaseException是所有异常的基类,捕获所有异常用BaseException

    D.可以用switch...case语句表示选择结构: Python中没有内置的switch...case语句

  10. 字典是Python语言中的一个复合数据类型,现定义字典dict1如下,则不正确的语句为()。dict1={name':'David','age'.10,'class':'first}

    A.dict1['age']=15 ✅ 正确。修改键 'age' 的值,变成 15。

    B.del dict1[1] ❌ 错误。字典的键是 'name''age''class',没有键 1,会抛出 KeyError: 1

    C.del dict1 ✅ 正确。可以删除整个字典对象。之后再访问 dict1 会报错 NameError,但语句本身没问题。

    D.print(dict1 ['name']) ✅ 正确。输出 "David"


🐍 Python 入门常见坑题 — 单选题版

1. 在 Python3 中,list(range(5)) 的结果是( )

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

range 不包含结束值。


2. 在 Python3 中,list(range(10, 0, -2)) 的结果是( )

A. [10,8,6,4,2,0] B. [10,8,6,4,2] ✅ C. [8,6,4,2,0] D. [10,8,6,4]

负步长也不包含 stop。


3. 表达式 1/2 的结果是( )

A. 0 B. 0.5 ✅ C. 1 D. Error

Python3 默认真除法。


4. 表达式 1//2 的结果是( )

A. 0 ✅ B. 0.5 C. 1 D. Error

// 是整除。


5. -3 // 2 的值是( )

A. -1 B. -2 ✅ C. 1 D. 2

向下取整,不是向零取整。


6. -3 % 2 的值是( )

A. -1 B. 1 ✅ C. 2 D. -2

余数符号跟除数一致。


7. 0.1+0.2==0.3 的结果是( )

A. True B. False ✅ C. None D. Error

浮点精度误差。


8. [1,2]*2 的结果是( )

A. [1,2,1,2] ✅ B. [2,4] C. [1,2,2,4] D. Error

* 是复制拼接,不是乘法。


9. [[]]*3 修改第一个元素后结果是( )

A. [[1],[],[]] B. [[1],[1],[1]] ✅ C. [1,1,1] D. Error

是同一个列表引用。


10. [] is [] 的结果是( )

A. True B. False ✅ C. None D. Error

is 比较地址,不是值。


11. bool('False') 的结果是( )

A. False B. True ✅ C. None D. Error

非空字符串都为 True。


12. int('010') 的结果是( )

A. 8 B. 10 ✅ C. 0 D. Error

Python3 不把 010 当八进制。


13. 'abc'[::-1] 的结果是( )

A. 'abc' B. 'cba' ✅ C. ['a','b','c'] D. Error

切片可以倒序。


14. 'abc'.find('d') 的结果是( )

A. -1 ✅ B. 0 C. None D. Error

find 找不到返回 -1,不报错。


15. 'abc'.index('d') 的结果是( )

A. -1 B. None C. Error ✅ D. 0

index 找不到会 ValueError


16. {} == set() 的结果是( )

A. True B. False ✅ C. None D. Error

{} 是字典,不是空集合。


17. True + True 的结果是( )

A. 2 ✅ B. True C. False D. Error

布尔是 int 子类。


19. input() 读取到的数据类型是( )

A. int B. str ✅ C. float D. list

永远是字符串。


20. 'a' in 'abc' 的结果是( )

A. True ✅ B. False C. Error D. None

in 可判断子串。


21. (1,) 的类型是( )

A. int B. tuple ✅ C. list D. str

单元素元组必须带逗号。


22. (1) 的类型是( )

A. int ✅ B. tuple C. list D. str

没逗号就是整数。


23. list('abc') 的结果是( )

A. ['abc'] B. ['a','b','c'] ✅ C. ('a','b','c') D. Error

字符串会被拆成字符。


24. set([1,1,2]) 的结果是( )

A. {1,1,2} B. {1,2} ✅ C. [1,2] D. Error

集合自动去重。


25. {} 的类型是( )

A. set B. dict ✅ C. list D. tuple

{} 默认是空字典。


26. {1,2} & {2,3} 的结果是( )

A. {1,2,3} B. {1,3} C. {2} ✅ D. Error

& 是交集。


27. {1,2} ^ {2,3} 的结果是( )

A. {1,2,3} B. {1,3} ✅ C. {2} D. {}

^ 是对称差集。


28. {'a':1}['b'] 的结果是( )

A. None B. 0 C. Error ✅ D. ''

key 不存在会 KeyError


29. {'a':1}.get('b') 的结果是( )

A. Error B. 0 C. None ✅ D. ''

get 找不到返回 None。


30. [1,2]+[3] 的结果是( )

A. [1,2,3] ✅ B. [1,2,6] C. [1,2]+[3] D. Error

列表 + 是拼接。


31. [1,2]*2 的结果是( )

A. [1,2,1,2] ✅ B. [2,4] C. [1,2,2,4] D. Error

* 是复制拼接。


32. [] == [] 的结果是( )

A. True ✅ B. False C. None D. Error

比值相等。


33. [] is [] 的结果是( )

A. True B. False ✅ C. None D. Error

is 比地址。


34. type([]) 的结果是( )

A. <class 'list'> ✅ B. <type 'list'> C. list D. Error

type 返回类对象。


35. id([]) == id([]) 的结果是( )

A. True B. False ✅ C. Error D. None

不同对象地址不同。


36. hash([]) 的结果是( )

A. 整数 B. Error ✅ C. None D. []

列表不可哈希。


37. hash((1,2)) 的结果是( )

A. 整数 ✅ B. Error C. None D. ()

元组可哈希。


38. bool([0]) 的结果是( )

A. False B. True ✅ C. 0 D. Error

非空列表为 True。


39. bool([]) 的结果是( )

A. False ✅ B. True C. None D. Error

空容器为 False。


40. bool('') 的结果是( )

A. False ✅ B. True C. None D. Error

空字符串为 False。


41. True == 1 的结果是( )

A. True ✅ B. False C. None D. Error

布尔是 int 子类。


42. False == 0 的结果是( )

A. True ✅ B. False C. None D. Error

False 也是 0。


45. None == False 的结果是( )

A. True B. False ✅ C. None D. Error

None 不等于 False。


46. None is None 的结果是( )

A. True ✅ B. False C. None D. Error

None 是单例对象。


47. if 0: 会执行吗?( )

A. 会 B. 不会 ✅ C. Error D. None

0 为 False。


48. if [0]: 会执行吗?( )

A. 会 ✅ B. 不会 C. Error D. None

非空列表为 True。


49. if []: 会执行吗?( )

A. 会 B. 不会 ✅ C. Error D. None

空列表为 False。


50. while 1: 会( )

A. 执行一次 B. 不执行 C. 无限循环 ✅ D. 报错

1 为 True。


51. break 语句会( )

A. 结束整个程序 B. 结束当前循环 ✅ C. 跳到下次循环 D. 结束函数

break 只管当前循环。


52. continue 语句会( )

A. 结束当前循环 ✅ B. 结束整个循环 C. 跳出程序 D. 结束函数

跳过本次,继续下一轮。


53. return 会( )

A. 返回 None B. 结束函数 ✅ C. 跳出循环 D. 结束程序

立刻结束当前函数。


54. for i in range(3): else: 中的 else 会( )

A. 永不执行 B. 总是执行 ✅ C. 遇 break 才执行 D. 随机执行

没 break 就执行。


55. for...elseelse 不执行的条件是( )

A. for 完成 B. for 被 break ✅ C. for 有 continue D. for 没内容

有 break 则不进 else。


56. pass 语句的作用是( )

A. 跳出 B. 占位 ✅ C. 报错 D. 延迟

什么都不做。


57. input() 默认返回类型是( )

A. int B. str ✅ C. float D. None

一律字符串。


58. 执行:

x = input()  # 输入 123
print(x + 1)

结果是( )

A. 124 B. 报错 ✅ C. 1231 D. Error

字符串不能直接加整数。

59. 函数未写 return 时,返回( )

A. 0 B. None ✅ C. False D. Error

默认返回 None。


60. return 语句没有值时返回( )

A. 0 B. None ✅ C. False D. Error

隐式返回 None。


函数参数定义顺序正确的是( )

A. *args, **kwargs, 普通参数 B. 位置, *args, 关键字, **kwargs ✅ C. **kwargs, *args D. 任意顺序

必须这个顺序。


70. Python 是( )

A. 静态、强类型 B. 动态、强类型 ✅ C. 静态、弱类型 D. 动态、弱类型

动态绑定,但不会自动隐式转类型。


71. __init__ 是( )

A. 析构函数 B. 构造函数 ✅ C. 工厂函数 D. 静态方法

创建对象时调用。


72. __str__ 控制( )

A. 打印输出 ✅ B. 运算符重载 C. 对象比较 D. 类型检查

print(obj) 用它。


73. 类变量是( )

A. 每个对象独立一份 B. 所有对象共享一份 ✅ C. 不可修改 D. 随机生成

类变量所有实例共用。


74. 实例变量是( )

A. 类共享 B. 实例独立 ✅ C. 只读 D. 常量

每个对象自己维护。


75. self 是( )

A. 类本身 B. 模块 C. 当前实例对象 ✅ D. 全局对象

实例方法第一个参数。


76. 可以在类实例上动态添加属性吗?( )

A. 可以 ✅ B. 不可以 C. 只读 D. 报错

Python 对象可以后加属性。


77. isinstance(obj, Class) 用来( )

A. 检查是否同一个对象 B. 检查类型 ✅ C. 检查内存地址 D. 检查模块

类型判断。


78. issubclass(Sub, Super) 用来( )

A. 判断是否同类型 B. 判断是否子类 ✅ C. 判断对象相等 D. 判断继承次数

继承关系检查。


79. __repr__ 用于( )

A. 交互式输出 ✅ B. 打印输出 C. 比较 D. 类型检查

用于 >>> obj


80. __len__ 决定( )

A. 对象大小 B. len(obj) 返回值 ✅ C. 类型长度 D. 索引范围

控制 len() 行为。


81. try/except 用来( )

A. 处理错误 ✅ B. 定义函数 C. 声明变量 D. 跳出循环

捕获异常。


82. finally 里的代码( )

A. 有异常不执行 B. 永远执行 ✅ C. 没异常不执行 D. 随机执行

无论是否异常都会执行。


83. raise 用来( )

A. 捕获异常 B. 抛出异常 ✅ C. 清除异常 D. 忽略异常

主动扔异常出去。


84. open() 默认模式是( )

A. 二进制 B. 文本 ✅ C. 追加 D. 只读二进制

默认文本模式 'r'


85. open() 默认编码是( )

A. ASCII B. UTF-8 ✅ C. GBK D. Latin-1

Python3 默认 UTF-8。


86. f.read() 读到末尾时返回( )

A. None B. '' ✅ C. EOF D. Error

空字符串。


87. f.readline() 一次读取( )

A. 一行 ✅ B. 所有行 C. 一字节 D. 全部内容

顾名思义。


88. f.readlines() 读取结果类型是( )

A. list ✅ B. str C. tuple D. dict

列表,每行为一个元素。


89. 使用 with open() as f: 的好处是( )

A. 速度更快 B. 自动关闭文件 ✅ C. 自动加锁 D. 自动保存

上下文自动关闭。


90. 文件没 close() 有可能( )

A. 立即释放内存 B. 数据未写入 ✅ C. 变为只读 D. 自动删除

缓冲区未刷新。


91. import 同一模块多次( )

A. 每次都会重新执行 B. 只执行一次 ✅ C. 会报错 D. 随机执行

已加载模块会缓存。


92. help() 用于( )

A. 查看源码 B. 查看文档 ✅ C. 查看字节码 D. 查看类图

内置文档查询。


93. dir(obj) 会( )

A. 显示对象属性列表 ✅ B. 打印对象内容 C. 打印对象地址 D. 打印对象类型

列出所有成员。


94. type(123) 返回( )

A. int B. <class 'int'> ✅ C. 'int' D. Error

返回类型对象。


95. id(obj) 返回( )

A. 哈希值 B. 内存地址标识 ✅ C. 类型名 D. 对象大小

用于判断对象是否相同。


96. hash() 作用是( )

A. 返回对象大小 B. 返回对象哈希值 ✅ C. 返回对象地址 D. 返回对象类型

仅限可哈希对象。


97. ==is 分别比较( )

A. 地址 / 值 B. 值 / 地址 ✅ C. 类型 / 值 D. 值 / 类型

考点常考。


98. Python 是( )

A. 强类型语言 ✅ B. 弱类型语言 C. 无类型语言 D. 静态语言

不会自动类型转换。


99. Python 是( )

A. 静态语言 B. 动态语言 ✅ C. 编译语言 D. 类型语言

运行时确定类型。


100. Python 中注释使用( )

A. // B. # ✅ C. -- D. /* */

单行注释用 #


101. 执行:

a = [1,2,3]
b = a[:]
b[0] = 9
print(a)

结果是( )

A. [9,2,3] B. [1,2,3] ✅ C. [9,9,9] D. Error

[:] 是浅拷贝,新列表。

102. 执行:

a = [[0]]*3
a[0][0] = 1
print(a)

结果是( )

A. [[1],[0],[0]] B. [[1],[1],[1]] ✅ C. [1,1,1] D. Error

同一子列表被重复引用。


103. 3 < 4 < 5 的结果是( )

A. True ✅ B. False C. Error D. None

支持链式比较,等价于 3<4 and 4<5


104. True or 1/0 的结果是( )

A. True ✅ B. ZeroDivisionError C. False D. None

or 短路,左边 True 不再执行右边。


105. [] and 1/0 的结果是( )

A. ZeroDivisionError B. [] ✅ C. 1/0 D. None

and 短路,左边 False 直接返回。


106.

(1,2)*2 的结果是( )

A. (1,2,1,2) ✅ B. [1,2,1,2] C. Error D. None