Python期末复习

一、选择题

  1. (单选题)【单选题】下列关于Python中变量说法错误的是( )
    A. 变量无须指定类型
    B. 变量不必事先声明
    C. 变量无须先创建和赋值可直接使用
    D. 可以使用del删除变量
    答案:C

  2. (单选题)下面关于Python语言特点的描述,错误的是( )
    A. Python语言是开源、跨平台的语言。
    B. Python语言具有可移植性。
    C. Python语言是FLOSS之一,可以使用但不能随意进行改动。
    D. Python语言是解释性语言,通过解释器将源码转换成字节码。
    答案:C

  3. (单选题)Python语言的拥有者是( )
    A. SUN
    B. PSF
    C. ORACAL
    D. GOOGLE
    答案:B
    解析:Python 语言的概述 Pyhthon 是 蟒蛇的意思。 python 语言的拥有者是 Python Software Foundation (PSF)RSF是一个非盈利 组织 ,致力于保护 Python 语言开放、开源和发展。

  4. (单选题)不正确的python标识符是
    A. stu_info
    B. var_1
    C. myname
    D. 1c
    答案:D
    解析:标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
    标识符不能和 Python 中的保留字相同。有关保留字,。
    Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。

  5. (单选题)不是python常用文件类型
    A. .py
    B. .pyc
    C. .java
    D. .pyw
    答案:C

  6. (单选题)python中能够起注释作用的是
    A. @
    B. !
    C. #
    D. ¥
    答案:C

  7. (单选题)在Python中没有的异常处理关键字是()
    A. throw
    B. try
    C. except
    D. Else
    答案:A
    解析:与python异常相关的关键字:
    raise:手动抛出/引发异常:raise [exception[,data]
    try/except:捕获异常并处理
    pass:忽略异常
    as:定义异常实例(except IOError as e)
    finally:无论是否出现异常,都执行的代码
    else:如果try中的语句没有引发异常,则执行else中的语句

  8. (单选题)python中导致程序中断的事件为
    A. 错误
    B. 警告
    C. 消息
    D. 异常
    答案:D

  9. (单选题)下列选项中表示类的公有成员的是
    A. xxx
    B. xxx
    C. xxx
    D. xxx
    答案:A
    解析:类的成员,是类的数据成员和类的方法的统称。为了控制对类的成员的访问权限,类的成员分:公有、保护 、私有三种类型。
    一、公有成员
    任何时候都可以访问的成员即为公有成员,在定义类的公有成员时没有什么特殊的要求。
    二、保护成员
    名称以一条下划线“
    ”开头的成员为保护成员。例如:_x、_fun()。保护成员一般都是可以访问的,只是不能用“from module import * ”语句把其它模块定义的保护成员导入到当前模块。
    三、私有成员
    名称以两条下划线“
    ”开头的成员为私有成员。例如:__x、__fun()。私有成员一般不能在类的定义语句外访问。

  10. (单选题)python3.x默认编码类型是
    A. Unicode
    B. GBK
    C. ASCII
    D. UTF-8
    答案:A

  11. (单选题)导入模块的关键字是
    A. import
    B. class
    C. def
    D. From
    答案:A

  12. (单选题)下列选项中不属于python的特点的是
    A. 简单
    B. 面向对象
    C. 低级语言
    D. 可移植性好
    答案:C

  13. (单选题)下列哪个语句在Python中是非法的?
    A. x=y=2
    B. x=y+2
    C. x=y=“a”
    D. x=y=True
    答案:B
    解析:B,y没有被复制

  14. (单选题)属于python保留字的是
    A. while
    B. vb
    C. python
    D. Hello
    答案:A

  15. (单选题)Python中没有的语句是
    A. if语句
    B. switch语句
    C. while语句
    D. for语句
    答案:B

  16. (单选题)不支持面向对象程序开发技术的程序设计语言是()
    A. C
    B. JAVA
    C. C#
    D. Python
    答案:A

  17. (单选题)不是python开发环境的是
    A. IDEL
    B. pycharm
    C. Visual C++
    D. anaconda3
    答案:C

  18. (单选题)Python语言的创始人是(  )。
    A. Guido van Ros
    B.Andy Rubin
    C.James Gosling
    D. Anders Hejlsberg
    答案:A

  19. (单选题)以下选项中,不是Python语言保留字的是
    A. except
    B. do
    C. pass
    D. While
    答案:B
    解析:Python 3.7.2 中的 35 个保留字
    False、None、True、and、as、assert、async、await、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield.

  20. (单选题)ls = [3.5, “Python”, [10, “LIST”], 3.6],ls[2][–1][1]的运行结果是
    A. I
    B. P
    C. Y
    D. L
    答案:A

  21. (单选题)关于局部变量和全局变量,以下选项中描述错误的是
    A. 局部变量和全局变量是不同的变量,但可以使用global保留字在函数内部使用全局变量
    B. 局部变量是函数内部的占位符,与全局变量可能重名但不同
    C. 函数运算结束后,局部变量不会被释放
    D. 局部变量为组合数据类型且未创建,等同于全局变量
    答案:C

  22. (单选题)以下选项中,正确地描述了浮点数0.0和整数0相同性的是
    A. 它们使用相同的计算机指令处理方法
    B. 它们具有相同的数据类型
    C. 它们具有相同的值
    D. 它们使用相同的硬件执行单元
    答案:C

  23. (单选题)如果 Python 程序执行时,产生了 “unexpected indent” 的错误,其原因是:
    A. 代码中使用了错误的关键字
    B. 代码中缺少“:”符号
    C. 代码里的语句嵌套层次太多
    D. 代码中出现了缩进不匹配的问题
    答案:D

  24. (单选题)以下关于 Python 程序语法元素的描述,错误的选项是:
    A. 段落格式有助于提高代码可读性和可维护性
    B. 虽然 Python 支持中文变量名,但从兼容性角度考虑还是不要用中文名
    C. true 并不是 Python 的保留字
    D. 并不是所有的 if、while、def、class 语句后面都要用 ‘:’ 结尾
    答案:D
    解析:python区分大小写

  25. (单选题)表达式 ‘y’<‘x’ == False 的结果是:
    A. True
    B. Error
    C. None
    D. False
    答案:D

  26. (单选题)关于 Python 的复数类型,以下选项中描述错误的是()
    A. 复数的虚数部分通过后缀“J”或者“j”来表示
    B. 对于复数 z,可以用 z.real 获得它的实数部分
    C. 对于复数 z,可以用 z.imag 获得它的实数部分
    D. 复数类型表示数学中的复数
    答案:C
    解析:对于复数 z,可以用 z.imag 获得它的虚数部分

  27. (单选题)关于Python语言数值操作符,以下选项中描述错误的是()
    A. x//y表示x与y之整数商,即不大于x与y之商的最大整数
    B. x**y表示x的y次幂,其中,y必须是整数
    C. x%y表示x与y之商的余数,也称为模运算
    D. x/y表示x与y之商
    答案:B

  28. (单选题)以下对数值运算操作符描述错误的选项是()
    A. Python 提供了9个基本的数值运算操作符
    B. Python 数值运算操作符也叫做内置操作符
    C. Python 二元数学操作符都有与之对应的增强赋值操作符
    D. Python 数值运算操作符需要引用第三方库 math
    答案:D

  29. (单选题)关于数据组织的维度描述正确的是()
    A. 二维数据由对等关系的有序或无序数据构成
    B. 高维数据由关联关系数据构成
    C. CSV 是一维数据
    D. 一维数据采用线性方式存储
    答案:D

  30. (单选题)以下关于字符串类型的操作的描述,错误的是:
    A. str.replace(x,y)方法把字符串str中所有的x子串都替换成y
    B. 想把一个字符串str所有的字符都大写,用str.upper()
    C. 想获取字符串str的长度,用字符串处理函数 str.len()
    D. 设 x = ’aa’ ,则执行x*3的结果是‘aaaaaa’
    答案:C
    解析:C,应该是len(str)

  31. (单选题)以下关于组合数据类型的描述,错误的是:
    A. 集合类型是一种具体的数据类型
    B. 序列类似和映射类型都是一类数据类型的总称
    C. python 的集合类型跟数学中的集合概念一致,都是多个数据项的无序组合
    D. 字典类型的键可以用的数据类型包括字符串,元组,以及列表
    答案:D
    解析:目前我已知的除了list、dict、set和内部带有以上三种类型的tuple之外,其余的对象都能当key

  32. (单选题)以下关于字典类型的描述正确,的是:
    A. 字典类型可迭代,即字典的值还可以是字典类型的对象
    B. 表达式 for x in d: 中,假设d是字典,则x是字典中的键值对
    C. 字典类型的键可以是列表和其他数据类型
    D. 字典类型的值可以是任意数据类型的对象
    答案:D

  33. (单选题)执行语句listl=[“北京”,“上海”,”广州”,“深圳"];print(listl[2])的结果是
    A. 北京
    B. 上海
    C. 广州
    D. 深圳
    答案:C

  34. (单选题)列表最后一个元素的索引为
    A. 0
    B. -1
    C. 65536
    D. 列表长度不固定,不能索引
    答案:B

  35. (单选题)表达式{1,2,3}|{2,3,4}的值为
    A. {1,2,3,3,2,4}
    B. {1,2,3}
    C. {1,2,3,4}
    D. {1,2,3,3,4}
    答案:C
    解析:|,并集
    在这里插入图片描述

  36. (单选题)不属于集合中的元素的特点的是
    A. 有序
    B. 无序
    C. 不重复
    D. 不可以用索引访问
    答案:A

  37. (单选题)下列哪种数据类型中的元素是无序的?
    A. 字典
    B. 字符串
    C. 列表
    D. 以上都不是
    答案:A

  38. (单选题)创建后不可以修改其中元素的是
    A. 元组
    B. 元祖
    C. 列表
    D. 集合
    答案:A

  39. (单选题)字典中元素的值(Value)可以是哪种类型的数据?
    A. 数字类型
    B. 字符串
    C. 列表
    D. 前面三项都可以
    答案:D

  40. (单选题)创建空集合的方法是
    A. set()
    B. set(‘’)
    C. {}
    D. {‘’}
    答案:A

  41. (单选题)删除一个已经创建的字典dict应该使用的语句是
    A. pop语句
    B. clear语句
    C. del语句
    D. close语句
    答案:C

  42. (单选题)以下关于异常处理语句的说法中正确的是
    A. 一个try后面接一个或多个finally语句
    B. finally语句中的代码段不一定会被执行
    C. 一个try后面接一个或多个except子句
    D. try可以不和except或finally 语句一起使用
    答案:C

  43. (单选题)表达式3 or 5的值为
    A. 3
    B. 5
    C. 2
    D. 8
    答案:A

  44. (单选题)下面哪个选项能够实现Python循环结构
    A. loop
    B. do-while
    C. while
    D. If
    答案:C

  45. (单选题)下列有关break 语句与continue语句不正确的是
    A. 当多个循环语句彼此嵌套时,break语句只适用于最里层的语句。
    B. continue 语句执行后,继续执行循环语句的后续语句。
    C. continue 语句类似于break语句,也必须在for、while循环中使用。
    D. break 语句结束循环,继续执行循环语句的后续语句。
    答案:B

  46. (单选题)下列选项中不能用来判断一个整数n是偶数的是
    A. n%2= =0
    B. n%2!=1
    C. n/2= =n//2
    D. n/2!=n//2
    答案:D
    解析:

  47. (单选题)与if语句中的表达式x==0等价的表达式是
    A. not x
    B. x=0
    C. x
    D. x!=0
    答案:A

  48. (单选题)下面哪个选项是实现多路分支的最佳控制结构?
    A. if
    B. try
    C. if-elif-else
    D. if-else-else
    答案:C

  49. (单选题)在Python中,适合访问序列或迭代对象的循环语句是
    A. while
    B. for
    C. if
    D. Else
    答案:B

1、关于 Python 语言的特点,以下选项中描述错误的是
A、Python 语言是非开源语言 B、Python 语言是跨平台语言
C、Python 语言是多模型语言 D、Python 语言是脚本语言
答案:A

2、以下对Python程序设计风格描述错误的选项是
A、Python中允许把多条语句写在同一行
B、Python语句中,增加缩进表示语句块的开始,减少缩进表示语句块的退出
C、Python可以将一条长语句分成多行显示,使用续航符“\”
D、Python中不允许把多条语句写在同一行
答案:A

3、python中能够起注释作用的是
A、@ B、! C、# D、¥
答案:C

4、python3.x默认编码类型是
A、Unicode B、GBK C、ASCII D、UTF-8
答案:A

5、关于 import 引用,以下选项中描述错误的是
A、使用 import turtle 引入turtle 库
B、可以使用 from turtle import setup 引入 turtle 库
C、使用 import turtle as t 引入 turtle 库,取别名为 t
D、import 保留字用于导入模块或者模块中的对象
答案:B
解析:选项中使用 from turtle import setup 导入的是 turtle 库中setup函数,而不是整个turtle库

6、以下对数值运算操作符描述错误的选项是
A、Python 提供了9个基本的数值运算操作符
B、Python 数值运算操作符也叫做内置操作符
C、Python 二元数学操作符都有与之对应的增强赋值操作符
D、Python 数值运算操作符需要引用第三方库 math
答案:D

7、关于Python整数类型,以下选项描述正确的是:
A、3.14不是整数类型的数值
B、type(100)表达式结果可能是<class ‘int’>,也可能是<class ‘float’>
C、oct(100)表达式结果获得十六进制数
D、hex(100)表达式结果获得八进制数
答案:A

8、Python不支持的数据类型有
A、char B、int C、float D、list
答案:A
解析:python不支持的数据类型是char 、byte类型

9、下列哪条语句在Python中是非法的
A、a=b=c=1 B、a=(b=c+1) C、a,b=b,c D、a+=b
答案:B
解析:因为将 x = (y = z + 1) 中右半部分括起来后,相当于把一个赋值表达式赋值给变量 x,因此出现语法错误。
正确的赋值语法应把括号去掉,即: x = y = z + 1

10、当被调用函数中的形参发生变化时,实参没有发生变化。实参可以是下列哪种数据类型
A、列表 B、字典 C、集合 D、元组
答案:D

11、函数的返回语句为return 1,[2],3,则函数返回结果为
A、1,2,3 B、[1,[2],3] C、{1,[2],3} D、都不是
答案:D

12、创建空集合的方法是
A、set() B、set(‘’) C、{} D、{‘’}
答案:A

13、删除一个已经创建的字典dict应该使用的语句是
A、pop语句 B、clear语句 C、del语句 D、close语句
答案:C

14、表达式{1,2,3}|{2,3,4}的值为
A、{1,2,3,3,2,4} B、{1,2,3}
C、{1,2,3,4} D、{1,2,3,3,4}
答案:C

15、列表最后一个元素的索引为
A、0 B、-1 C、65536 D、列表长度不固定,不能索引
答案:B

16、以下关于组合数据类型的描述,错误的是:
A、集合类型是一种具体的数据类型
B、序列类似和映射类型都是一类数据类型的总称
C、python 的集合类型跟数学中的集合概念一致,都是多个数据项的无序组合
D、字典类型的键可以用的数据类型包括字符串,元组,以及列表
答案:D

17、表达式3 or 5的值为(2分)
A、3 B、5 C、2 D、8
答案:A

18、下面哪个选项能够实现Python循环结构
A、loop B、do-while C、while D、if
答案:C

19、下列选项中不能取代seq位置的是
for item in seq:
pass
A、{1;2;3;4;5} B、range(0,10)
C、"Hello” D、(1,2,3)
答案:A
解析:sequence(序列)是一组有顺序的元素的集合

20、不是面向对象程序设计的特征是
A、封装 B、可视化 C、继承 D、多态
答案:B

21、能对对象进行初始化的方法是
A、抽象方法 B、构造方法 C、静态方法 D、析构方法
答案:B

22、表达式3<5>2的值为
A、True B、1 C、false D、False
答案:A
解析:类似于3<5&&5>2

23、range(1,20,4)中包含整数的个数为
A、4 B、5 C、6 D、19
答案:B

24、print()函数中的end默认参数为
A、‘’ B、‘/t’ C、‘/n’ D、‘\n’
答案:D

25、表达式[x for x in range(10) if x%2==1]的结果是( )
A、语法错误
B、[0, 2, 4, 6, 8]
C、(1, 3, 5, 7, 9)
D、[1, 3, 5, 7, 9]
答案:D

1、每个程序都具有的统一的运算模式是:
A、顺序计算模式 B、输入输出模式 C、函数调用模式 D、IPO 模式
答案:B

2、以下选项中,不是Python语言特点的是()
A、变量声明:Python语言具有使用变量需要先定义后使用的特点
B、平台无关:Python程序可以在任何安装了解释器的操作系统环境中执行
C、黏性扩展:Python语言能够集成C、C++等语言编写的代码
D、强制可读:Python语言通过强制缩进来体现语句间的逻辑关系
答案:A

3、Python语言的创始人是(  )。
A、 Guido van Ros B、 Andy Rubin
C、 James Gosling D、 Anders Hejlsberg
答案:A

4、不是python常用文件类型
A、.py B、.pyc C、.java D、.pyw
答案:C

5、导入模块的关键字是
A、import B、class C、def D、from
答案:A

6、属于python保留字的是(2分)
A、while B、vb C、python D、hello
答案:A

7、以下关于 Python 字符串的描述中,错误的是
A、字符串是字符的序列,可以按照单个字符或者字符片段进行索引
B、字符串包括两种序号体系:正向递增和反向递减
C、Python 字符串提供区间访问方式,采用 [N:M] 格式,表示字符串中从 N 到 M 的索引子字符串(包含 N 和 M)
D、字符串是用一对双引号" "或者单引号’ '括起来的零个或者多个字符
答案:C

8、关于 Python 的复数类型,以下选项中描述错误的是
A、复数的虚数部分通过后缀“J”或者“j”来表示
B、对于复数 z,可以用 z.real 获得它的实数部分
C、对于复数 z,可以用 z.imag 获得它的实数部分
D、复数类型表示数学中的复数
答案:C

9、关于Python语言的变量,以下选项中说法正确的是
A、随时声明、随时使用、随时释放 B、随时命名、随时赋值、随时使用
C、随时声明、随时赋值、随时变换类型 D、随时命名、随时赋值、随时变换类型
答案:B

10、关于Python语言数值操作符,以下选项中描述错误的是
A、x//y表示x与y之整数商,即不大于x与y之商的最大整数
B、x**y表示x的y次幂,其中,y必须是整数
C、x%y表示x与y之商的余数,也称为模运算
D、x/y表示x与y之商
答案:B

11、ls = [3.5, “Python”, [10, “LIST”], 3.6],ls[2][ –1][1]的运行结果是
A、I B、P C、Y D、L
答案:A

12、以下对 Python 程序缩进格式描述错误的选项是:
A、不需要缩进的代码顶行写,前面不能留空白
B、缩进可以用 tab 键实现,也可以用多个空格实现
C、严格的缩进可以约束程序结构,可以多层缩进
D、缩进是用来格式美化 Python 程序的
答案:D

13、如果 Python 程序执行时,产生了 “unexpected indent” 的错误,其原因是:
A、代码中使用了错误的关键字 B、代码中缺少“:”符号
C、代码里的语句嵌套层次太多 D、代码中出现了缩进不匹配的问题
答案:D

14、python中常用的输出函数是
A、str() B、print() C、input() D、pring()
答案:B

15、{“飞机”,”火车”,”轮船”}是哪种类型的数据
A、列表 B、元组 C、字典 D、集合
答案:D

16、列表支持索引的方式是
A、双向索引 B、单向索引 C、正向索引 D、逆向索引
答案:B

17、可以用来创建一个元组的方法是
A、list() B、dict() C、tuple() D、set()
答案:C

18、创建后不可以修改其中元素的是
A、元组 B、元祖 C、列表 D、集合
答案:A

19、下列哪种数据类型中的元素是无序的?
A、字典 B、字符串 C、列表 D、以上都不是
答案:A

20、_________中,程序判断某个条件是否成立,以决定是否重复执行某部分代码。
A、循环结构 B、顺序结构 C、条件结构 D、都不是
答案:A

21、下列有关break 语句与continue语句不正确的是
A、当多个循环语句彼此嵌套时,break语句只适用于最里层的语句。
B、continue 语句执行后,继续执行循环语句的后续语句。
C、continue 语句类似于break语句,也必须在for.while循环中使用。
D、break 语句结束循环,继续执行循环语句的后续语句。
答案:B

22、设 str = ‘python’,想把字符串的第一个字母大写,其他字母还是小写,正确的选项是:(2分)
A、print(str[0].upper()+str[1:])
B、print(str[1].upper()+str[-1:1])
C、print(str[0].upper()+str[1:-1])
D、print(str[1].upper()+str[2:])
答案:A

23、 表达式 type(eval(‘45’)) 的结果是:
A、<class ‘float’> B、<class ‘str’> C、None D、<class ‘int’>
答案:D
解析:eval是Python的一个内置函数,功能十分强大,这个函数的作用是,返回传入字符串的表达式的结果。就是说:将字符串当成有效的表达式 来求值 并 返回计算结果。

24、赋值语句a = ‘x’ if ‘False’ else 'y’的结果是( )
A、x B、False C、y D、语法错误
答案:D

25、若str=“\ta\tbc”,len(str)的值是
A、3 B、5 C、7 D、9
答案:B

二、填空题

1、Python安装扩展库常用的是 pip 工具。
2、表达式int(‘11111’, 2)的值为 31
3、表达式divmod(36, 12)的值为 (3,0)
解析: divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
4、表达式chr(ord(‘b’)+1)的值为 c
解析:ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符他的输入时数字
5、表达式 {1:‘a’, 2:‘b’, 3:‘c’}.get(4, ‘d’) 的值为 d
6、切片操作list(range(6))[::2]执行结果为 [0,2,4]
7、使用运算符测试集合A是否为集合B的真子集的表达式为 A<B
8、表达式’123’ * 3的值为 123123123
9、已知x = [1, 2, 3, 2, 3],执行语句x.pop()之后,x的值为 [1, 2, 3, 2]
10、表达式max([‘121’, ‘34’])的值为 ‘34’
11、Python运算符中用来计算集合并集的是 |
12、表达式“[3] in [1, 2, 3, 4]”的值为 False
13、使用pip工具在线安装Excel文件操作扩展库openpyxl的完整命令是 pip install openpyxl
14、运算符% 可以 (可以/不可以)对浮点数进行求余数操作。
15、表达式sum([1, 2, 3])的值为 6
16、表达式 {1, 2, 3, 4} - {3, 4, 5, 6}的值为 {1, 2}
17、已知x = [1, 2, 3, 2, 3, 1],表达式x.index(3)的值为 2
18、表达式(2) == (2,)的值为 False
19、表达式set([1, 2, 3, 2, 3, 1])的值为 {1, 2, 3}
20、字符串、元组和 列表(或英文list) 类型是Python中有序的序列。

三、判断题

1、已知 x = 3,那么赋值语句 x = ‘abcedfg’ 是无法正常执行的。 错误
2、Python使用缩进来体现代码之间的逻辑关系。 正确
3、元组可以作为字典的“键”。 正确
4、无法删除集合中指定位置的元素,只能删除特定值的元素。 正确
5、只允许在循环结构中嵌套选择结构,不允许在选择结构中嵌套循环结构。 错误
6、lambda表达式在功能上等价于函数,但是不能给lambda表达式起名字,只能用来定义匿名函数。 错误
(Lamba表达式是一个匿名函数)
7、字典中存放的value值不可以重复。 错误
8、函数的关键字参数必须在形式参数之后。正确
9、对文件进行写操作时,writelines()函数可以将多行数据写到文件中。 正确
10、使用内置函数open()以读模式打开文件之后,通过文件对象的read()方法读取且不带任何参数时,表示读取文件中从当前位置开始直到文件尾的全部内容。 正确
11、在Windows平台上编写的Python程序无法在Unix平台运行。错误
12、pip命令也支持扩展名为.whl的文件直接安装Python扩展库。 正确
13、元组可以作为字典的“键”。正确
14、尽管可以使用import语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个标准库或扩展库。正确
15、假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。正确
16、x = 9999**9999这样的语句在Python中无法运行,因为数字太大超出了整型变量的表示范围。错误
17、数字3和数字5直接作为条件表达式时,作用是一样的,都表示条件成立。正确
18、选择结构必须带有else或elif子句。错误
19、Python中的类可以继承多个类。正确
20、Python是通用编译器将程序编译成二进制代码再运行。错误

四、编程题

1.编写一个程序,它将在2000年至3200年(包括在内)找到所有这些年份:可被7整除,但不是5的倍数。得到的数字应按逗号分隔的顺序打印在一行上。
在这里插入图片描述
2.给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。有效字符串需满足以下要求: 1,左括号必须用相同类型的右括号闭合。 2,左括号必须以正确的顺序闭合。 3,注意空字符串可被认为是有效字符串。
例如,"{{()}}"就是一个闭合的有效字符串。

def demo(s):
    stack = []
    for i in s:
        if i == "(" or i == "[" or i == "{":
            stack.append(i)
        elif i == ")":
            if len(stack) == 0 or stack.pop() != "(":
                return False
        elif i == "]":
            if len(stack) == 0 or stack.pop() != "[":
                return False
        elif i == "}":
            if len(stack) == 0 or stack.pop() != "{":
                return False
    return True if len(stack) == 0 else False

res1 = demo("{[{()}]()}")
print(res1 == True)
res2 = demo("{}())))[]")
print(res2 == False)
res3 = demo("")
print(res3 == True)

解析:这里我们运用 栈 里面 先进后出 的思想来处理问题。
遍历字符串中的每一个括号
定义一个空列表,如果遇到左括号,就存储到列表中
如果遇到右括号,判断列表是否为空,不为空就弹出列表中最后一个左括号,并判断右括号和弹出的左括号是否匹配,不匹配则返回 False
如果遇到右括号,且列表为空,那么也就表示列表中没有匹配的括号,则直接返回 False
遍历结束,最后再判断列表是否为空,不为空则表示左/右括号有多余的,返回 False ; 为空则表示是闭合的有效字符串,返回 True

3.编写程序,实现输入一个整数计算给定数的阶乘的程序。
例如输入:8
则输出为:40320
在这里插入图片描述
4.已知任意两个日期,计算出两个日期之间相隔的天数。

import time
def demo(day1, day2):
    time_array1 = time.strptime(day1, "%Y-%m-%d")
    timestamp_day1 = int(time.mktime(time_array1))
    time_array2 = time.strptime(day2, "%Y-%m-%d")
    timestamp_day2 = int(time.mktime(time_array2))
    result = (timestamp_day2 - timestamp_day1) // 60 // 60 // 24
    return result

day1 = "2018-07-09"
day2 = "2020-09-26"
day_diff = demo(day1, day2)
print("两个日期的间隔天数:{} ".format(day_diff))

解析:这里我们运用 Python 里面内置模块 time 来处理问题。
已知2个日期,格式为 yyyy-mm-dd
通过 time.strptime() 方法,把日期时间字符串解析为时间元组
通过 time.mktime() 方法,把时间元祖转换为时间戳
根据2个日期对应的时间戳,得到2个日期相差的秒数,进而计算出间隔天数

5.输入整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含),并打印字典。
例如输入:8
则输出为:
{1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}
在这里插入图片描述
6.针对一个只含数字的字符串,对其每3个数字进行一次翻转,如下:
字符串:123456789 ==> 翻转后:321654987
如果最后待翻转的不足3个字符,也同样进行翻转,如下:
字符串:12345678 ==> 翻转后:32165487

def demo(s):
    new_str = ""
    for i in range(len(s)):
        if (i + 1) % 3 == 0:
            new_str += s[i-2:i+1][::-1]
    if len(s) != len(new_str):
        new_str += s[len(new_str):][::-1]
return new_str

old_str = "12345678"
print(demo(old_str))

解析:
遍历字符串
每间隔3个字符,对其进行翻转,然后拼接到新字符串
遍历结束后,判断新字符串的长度,是否和原字符串一致
如果不一致则需要对剩余部分字符进行翻转,再拼接到新字符串

7.设计一个自定义函数,实现功能如下:给定一个含 n 个正整数的非空列表 nums ,其中 nums[i] 在区间 [1, n] 内。请找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以列表的形式返回结果。
例如:
给定一个列表:[4, 3, 2, 7, 8, 2, 3, 1],返回结果:[5, 6]
给定一个列表:[1, 1],返回结果:[2]

def findDisappearedNumbers(nums):
    res = []
    tmp_set = set(nums)
    for i in range(1, len(nums) + 1):
        if i not in tmp_set:
            res.append(i)
    return res

8.设计程序,实现:每间隔5秒,随机输出10个不重复的4位数

import random, time
def random_number():
    data = set()
    while len(data) < 10:
        data.add(random.randint(1000, 9999))
    return data
while True:
    print("本次输出10个不重复的4位数:{}".format(random_number()))
time.sleep(5)

解析:这里我们运用 Python 里面内置模块 random 和 time 来处理问题。
创建一个空集合 set() ,其元素不允许重复
通过 random.randint(a, b) 方法,用于生成指定范围内的整数,生成的随机数N:a <= N <= b
通过集合 add() 方法,将随机数存储到集合中
通过 time.sleep(5) 方法,实现每隔5秒处理一次

9.已知一个数列:1、1、2、3、5、8、13、……,其规律为从第3项开始,每一项都等于其前两项的和,这个数列就是斐波那契数列。
请求出符合斐波那契数列规律的第11项。

def fib_show(n):
    a, b = 0, 1
    while n > 0:
        a, b = b, a + b
        n -= 1
    return a

print("斐波那契数列 第11项:{}".format(fib_show(11)))
或
def fib_recursive(n):
    if n == 1 or n == 2:
        return 1
    return fib_recursive(n - 1) + fib_recursive(n - 2)

print("斐波那契数列 第11项:{}".format(fib_recursive(11)))

10.给定一个列表和一个目标值N,列表中元素均为不重复的整数。请从该列表中找出和为目标值N的两个整数,然后只返回其对应的下标组合。
注意:列表中同一个元素不能使用两遍。
例如:
给定列表 [2, 7, 11, 15],目标值N为 18,因为 7 + 11 = 18,那么返回的结果为 (1, 2)
给定列表 [2, 7, 11, 6, 13],目标值N为 13,因为 2 + 11 = 13,7 + 6 = 13,那么符合条件的结果为 (0, 2)、(1, 3)

def find_two_number(nums, target):
    res = []
    for i in range(len(nums)):
        for j in range(len(nums)):
            if i != j and nums[i] + nums[j] == target and (i, j) not in res and (j, i) not in res:
                res.append((i, j))
    return res

nums = [1, 2, 4, 3, 6, 5]
target = 7
res = find_two_number(nums, target)
print("列表中两数之和为 {} 的下标组合为:{}".format(target, res))

11.如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。
例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
请按照从小到大的顺序输出 1000 以内的水仙花数(3位数),并用"逗号"分隔输出结果

for i in range(100, 1000):
    # // 使用取模,分别取出百位数、10位数、个位数
    # /// k = i // 10 % 10, 需要注意运算符号和运算顺序
    a = i // 100  # 整除获得百位数
    b = i // 10 % 10  # 或者b = (i % 100) // 10
    c = i % 10  # 个位数
    if i == a ** 3 + b ** 3 + c ** 3:
        print(i, end=",")
print("\b ", end="")

12.给定一个无序列表,列表中元素均为不重复的整数。
请找出列表中有没有比它前面元素都大,比它后面的元素都小的数,如果不存在则返回-1,存在则显示其索引。

def find_number_index(nums):
    if len(nums) < 1:
        return -1
    res = []
    for i in range(len(nums)):
        left_max, right_min = max(nums[:i + 1]), min(nums[i:])
        if nums[i] >= left_max and nums[i] <= right_min:
            res.append(i)
    return res if res else -1


nums = [21, 11, 45, 56, 9, 66, 77, 89, 78, 68, 100, 120, 111]
print(find_number_index(nums))

13.设计一个程序爬取豆瓣热门影片信息,根据提供的url(页面content.decode如图所示),
解析信息并按照“影片名称:评分”的形式输出结果。

import json

import requests

url = "https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20" \
      "&page_start=20 "
header = {"User-Agent": "Mozilla/5.0 Chrome/58.0.3029.110 Safari/537.36"}
res = requests.get(url, headers=header)
s = res.content.decode()
# 将json的字符串转为python中的数据结构
movies = json.loads(s)
# print(movies)遍历列表获取所有的电影信息
for m in movies["subjects"]:
    print("{}:{}".format(m["title"], m["rate"]))

14.根据世界酒类饮品数据进行以下分析:
1、查看不饮酒的国家;
2、查看各大陆不饮酒的国家分布情况;
3、查看亚洲国家喝酒量排名;
4、查看喝烈酒最多的大陆。

import pandas as pd

df = pd.read_csv("drinks.csv")
# 哪些国家不饮酒
print(df[df['total_litres_of_pure_alcohol'] == 0])

# 不饮酒的国家分布
sub1 = df[df['total_litres_of_pure_alcohol'] == 0]
temp1 = sub1['continent'].value_counts()
print(temp1)

# 亚洲国家平均喝酒的数量排名
print(df[df['continent'] == 'AS'].sort_values('total_litres_of_pure_alcohol', ascending=False))

# 哪一个大陆喝啤酒最多
print(df.groupby("continent")['beer_servings'].mean().sort_values(ascending=False))

str = "\ta\tbc"
print(len(str))

print(max([121, 34]))
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐