(单选题)【单选题】下列关于Python中变量说法错误的是( )
A. 变量无须指定类型
B. 变量不必事先声明
C. 变量无须先创建和赋值可直接使用
D. 可以使用del删除变量
答案:C
(单选题)下面关于Python语言特点的描述,错误的是( )
A. Python语言是开源、跨平台的语言。
B. Python语言具有可移植性。
C. Python语言是FLOSS之一,可以使用但不能随意进行改动。
D. Python语言是解释性语言,通过解释器将源码转换成字节码。
答案:C
(单选题)Python语言的拥有者是( )
A. SUN
B. PSF
C. ORACAL
D. GOOGLE
答案:B
解析:Python 语言的概述 Pyhthon 是 蟒蛇的意思。 python 语言的拥有者是 Python Software Foundation (PSF)RSF是一个非盈利 组织 ,致力于保护 Python 语言开放、开源和发展。
(单选题)不正确的python标识符是
A. stu_info
B. var_1
C. myname
D. 1c
答案:D
解析:标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
标识符不能和 Python 中的保留字相同。有关保留字,。
Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
(单选题)不是python常用文件类型
A. .py
B. .pyc
C. .java
D. .pyw
答案:C
(单选题)python中能够起注释作用的是
A. @
B. !
C. #
D. ¥
答案:C
(单选题)在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中的语句
(单选题)python中导致程序中断的事件为
A. 错误
B. 警告
C. 消息
D. 异常
答案:D
(单选题)下列选项中表示类的公有成员的是
A. xxx
B. xxx
C. xxx
D. xxx
答案:A
解析:类的成员,是类的数据成员和类的方法的统称。为了控制对类的成员的访问权限,类的成员分:公有、保护 、私有三种类型。
一、公有成员
任何时候都可以访问的成员即为公有成员,在定义类的公有成员时没有什么特殊的要求。
二、保护成员
名称以一条下划线“”开头的成员为保护成员。例如:_x、_fun()。保护成员一般都是可以访问的,只是不能用“from module import * ”语句把其它模块定义的保护成员导入到当前模块。
三、私有成员
名称以两条下划线“”开头的成员为私有成员。例如:__x、__fun()。私有成员一般不能在类的定义语句外访问。
(单选题)python3.x默认编码类型是
A. Unicode
B. GBK
C. ASCII
D. UTF-8
答案:A
(单选题)导入模块的关键字是
A. import
B. class
C. def
D. From
答案:A
(单选题)下列选项中不属于python的特点的是
A. 简单
B. 面向对象
C. 低级语言
D. 可移植性好
答案:C
(单选题)下列哪个语句在Python中是非法的?
A. x=y=2
B. x=y+2
C. x=y=“a”
D. x=y=True
答案:B
解析:B,y没有被复制
(单选题)属于python保留字的是
A. while
B. vb
C. python
D. Hello
答案:A
(单选题)Python中没有的语句是
A. if语句
B. switch语句
C. while语句
D. for语句
答案:B
(单选题)不支持面向对象程序开发技术的程序设计语言是()
A. C
B. JAVA
C. C#
D. Python
答案:A
(单选题)不是python开发环境的是
A. IDEL
B. pycharm
C. Visual C++
D. anaconda3
答案:C
(单选题)Python语言的创始人是( )。
A. Guido van Ros
B.Andy Rubin
C.James Gosling
D. Anders Hejlsberg
答案:A
(单选题)以下选项中,不是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.
(单选题)ls = [3.5, “Python”, [10, “LIST”], 3.6],ls[2][–1][1]的运行结果是
A. I
B. P
C. Y
D. L
答案:A
(单选题)关于局部变量和全局变量,以下选项中描述错误的是
A. 局部变量和全局变量是不同的变量,但可以使用global保留字在函数内部使用全局变量
B. 局部变量是函数内部的占位符,与全局变量可能重名但不同
C. 函数运算结束后,局部变量不会被释放
D. 局部变量为组合数据类型且未创建,等同于全局变量
答案:C
(单选题)以下选项中,正确地描述了浮点数0.0和整数0相同性的是
A. 它们使用相同的计算机指令处理方法
B. 它们具有相同的数据类型
C. 它们具有相同的值
D. 它们使用相同的硬件执行单元
答案:C
(单选题)如果 Python 程序执行时,产生了 “unexpected indent” 的错误,其原因是:
A. 代码中使用了错误的关键字
B. 代码中缺少“:”符号
C. 代码里的语句嵌套层次太多
D. 代码中出现了缩进不匹配的问题
答案:D
(单选题)以下关于 Python 程序语法元素的描述,错误的选项是:
A. 段落格式有助于提高代码可读性和可维护性
B. 虽然 Python 支持中文变量名,但从兼容性角度考虑还是不要用中文名
C. true 并不是 Python 的保留字
D. 并不是所有的 if、while、def、class 语句后面都要用 ‘:’ 结尾
答案:D
解析:python区分大小写
(单选题)表达式 ‘y’<‘x’ == False 的结果是:
A. True
B. Error
C. None
D. False
答案:D
(单选题)关于 Python 的复数类型,以下选项中描述错误的是()
A. 复数的虚数部分通过后缀“J”或者“j”来表示
B. 对于复数 z,可以用 z.real 获得它的实数部分
C. 对于复数 z,可以用 z.imag 获得它的实数部分
D. 复数类型表示数学中的复数
答案:C
解析:对于复数 z,可以用 z.imag 获得它的虚数部分
(单选题)关于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
(单选题)以下对数值运算操作符描述错误的选项是()
A. Python 提供了9个基本的数值运算操作符
B. Python 数值运算操作符也叫做内置操作符
C. Python 二元数学操作符都有与之对应的增强赋值操作符
D. Python 数值运算操作符需要引用第三方库 math
答案:D
(单选题)关于数据组织的维度描述正确的是()
A. 二维数据由对等关系的有序或无序数据构成
B. 高维数据由关联关系数据构成
C. CSV 是一维数据
D. 一维数据采用线性方式存储
答案:D
(单选题)以下关于字符串类型的操作的描述,错误的是:
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)
(单选题)以下关于组合数据类型的描述,错误的是:
A. 集合类型是一种具体的数据类型
B. 序列类似和映射类型都是一类数据类型的总称
C. python 的集合类型跟数学中的集合概念一致,都是多个数据项的无序组合
D. 字典类型的键可以用的数据类型包括字符串,元组,以及列表
答案:D
解析:目前我已知的除了list、dict、set和内部带有以上三种类型的tuple之外,其余的对象都能当key
(单选题)以下关于字典类型的描述正确,的是:
A. 字典类型可迭代,即字典的值还可以是字典类型的对象
B. 表达式 for x in d: 中,假设d是字典,则x是字典中的键值对
C. 字典类型的键可以是列表和其他数据类型
D. 字典类型的值可以是任意数据类型的对象
答案:D
(单选题)执行语句listl=[“北京”,“上海”,”广州”,“深圳"];print(listl[2])的结果是
A. 北京
B. 上海
C. 广州
D. 深圳
答案:C
(单选题)列表最后一个元素的索引为
A. 0
B. -1
C. 65536
D. 列表长度不固定,不能索引
答案:B
(单选题)表达式{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
解析:|,并集
(单选题)不属于集合中的元素的特点的是
A. 有序
B. 无序
C. 不重复
D. 不可以用索引访问
答案:A
(单选题)下列哪种数据类型中的元素是无序的?
A. 字典
B. 字符串
C. 列表
D. 以上都不是
答案:A
(单选题)创建后不可以修改其中元素的是
A. 元组
B. 元祖
C. 列表
D. 集合
答案:A
(单选题)字典中元素的值(Value)可以是哪种类型的数据?
A. 数字类型
B. 字符串
C. 列表
D. 前面三项都可以
答案:D
(单选题)创建空集合的方法是
A. set()
B. set(‘’)
C. {}
D. {‘’}
答案:A
(单选题)删除一个已经创建的字典dict应该使用的语句是
A. pop语句
B. clear语句
C. del语句
D. close语句
答案:C
(单选题)以下关于异常处理语句的说法中正确的是
A. 一个try后面接一个或多个finally语句
B. finally语句中的代码段不一定会被执行
C. 一个try后面接一个或多个except子句
D. try可以不和except或finally 语句一起使用
答案:C
(单选题)表达式3 or 5的值为
A. 3
B. 5
C. 2
D. 8
答案:A
(单选题)下面哪个选项能够实现Python循环结构
A. loop
B. do-while
C. while
D. If
答案:C
(单选题)下列有关break 语句与continue语句不正确的是
A. 当多个循环语句彼此嵌套时,break语句只适用于最里层的语句。
B. continue 语句执行后,继续执行循环语句的后续语句。
C. continue 语句类似于break语句,也必须在for、while循环中使用。
D. break 语句结束循环,继续执行循环语句的后续语句。
答案:B
(单选题)下列选项中不能用来判断一个整数n是偶数的是
A. n%2= =0
B. n%2!=1
C. n/2= =n//2
D. n/2!=n//2
答案:D
解析:
(单选题)与if语句中的表达式x==0等价的表达式是
A. not x
B. x=0
C. x
D. x!=0
答案:A
(单选题)下面哪个选项是实现多路分支的最佳控制结构?
A. if
B. try
C. if-elif-else
D. if-else-else
答案:C
(单选题)在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)表达式结果可能是
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、
答案: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 。
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]))