Python期末复习题(二)
一、选择题
1、下列选项中,不属于Python语言特点的是(D)
A. 简单易学 B. 免费开源 C. 面向对象 D. 编译型语言
2、以下哪种数据类型不能被修改(B)
A. list B. tuple C. dictionary D. set
3、Python内置的集成环境是(B)
A. Pycharm B. IDLE C. Pip D. PyInstaller
4、已知X = [1,2] ,y = [3,4],那么X+Y的结果为(C)
A. 4 B. 6 C. [1,2,3,4] D. [4,6]
5、执行 print( ‘2’ * 4) 的结果为?(C)
A. 8 B. 0 C. 2222 D. 程序错误
6、函数 print(a,b,c,sep = ’ : ',end = ‘#’) 的结果为(C)
A. abc B. a : b : c C. a : b : c# D. abc#
7、执行 print([1,2] * 2) 的结果为(B)
A. [2,4] B. [1,2,1,2] C. 错误 D. [1,2] [1,2]
8、Python用什么来区分代码块(D)
A. 大括号 B. 中括号 C. 小括号 D. 缩进
9、在完整的异常捕获语句中,各子句的顺序为(A)
A. try->except->else->finally B. try->else->except->finally
C. try->except->finally->else D. try->else->finally->except
try :
except ExceptionType1:
except ExceptionType2:
else :
finally :
10、已知 f = lambda x: x**2,那么表达式f(10)的值为(D)
A. 0 B. 10 C. 20 D. 100
11、以下不是tuple类型的是(A)
A. (1) B. ( 1 , 2 ) C. ( {} , 1 ) D. ( [ { ‘a’ : 1 } ] , [ ‘b’ , 1 ] )
12、print( [ 1 , 2 , 3 , ‘1’ , ‘2’ , ‘3’ ] [ : -2] ) 语句的执行结果为(B)
A. 2 B. [ 1, 2, 3 ,‘1’] C. [ ‘2’, ‘3’] D. [ 1, 2, 3 ,‘1’, ‘2’]
13、列表 list = [1,2,3],以下语句错误的是(B)
A. list[-1] B. list[3] C. list.append(4) D. list.pop()
14、代码 print(10 / 2 == 5.0) 的输出结果为(A)
A. True B. False C. 1 D. 0
15、下列方法中负责初始化属性的是(B)
A. _ del _() B. _ init _() C. _ init() D. _ add _()
二、判断题
1、Python是一种动态类型语言,不需要声明变量的类型。(√)
2、字符串是Python中的一种不可变数据类型。(√)
3、集合中的元素不能是列表类型。(√)
4、print(eval(“2 + 3 * 4”)) 的输出结果为 ‘14’。(×)
5、放在一对三引号之间的内容都会被认为是注释。(×)
'''
Hello World
'''
6、同一个列表对象中的元素对象可以各不相同。(√)
list = [ '1' , 2 , ( 2 , ) , True ]
7、random.randint(1, 10) 的功能:随机产生一个 1 到 10之间的浮点数。(×)
8、Python的None表示空类型。(√)
9、调用函数时,在参数前加入 * 表示序列解包。(√)
def add_numbers ( a, b, c) :
return a + b + c
numbers = [ 1 , 2 , 3 ]
result = add_numbers( * numbers)
print ( result)
10、Python是一种面向过程的语言。(×)
三、填空题
1、表达式 2 ** 3 * 4 % 5的值为_____________。(答案:2)
2、Python列表切片操作如果不指定结束索引,默认为____________。(答案:0)
3、用于移除列表中元素的方法是_____________。(答案:remove)
4、子类使用什么方法可以调用父类_________。(答案:super())
5、[2] in [1, 2, 3] 的结果为_____________。(答案:False)
print ( [ 2 ] in [ 1 , 2 , 3 ] )
print ( [ 2 ] in [ 1 , [ 2 ] , 3 ] )
6、列表、元组、字符串是______________序列。(答案:有序)
7、list( range(1, 10 ,3) ) 的自行结果为_________。(答案:[1,4,7] )
8、字典对象的_____________方法返回字典的“键”列表,_____________方法返回字典的“值”对象。(答案:keys()、values())
9、_____________方法用于向集合添加元素。(答案:add() )
10、Python中_____________方法用于执行SQL语句。(答案:execute() )
connect( ) 方法创建连接对象。
cursor( ) 方法创建Cursor( ) 对象。
execute( ) 方法执行SQL语句。
commit( ) 方法提交对数据库的修改。
close( ) 方法关闭连接。
四、简答题
1、请简述Python语言的特点
答案:
1 、简单易学。结构简单,语法简洁,代码结构清晰,与其他语言相比可以用较少的代码实现相同的功能。
2 、免费开源。Python是开源软件,可以免费获取并自由分发,用户多,资源丰富,发展速度快。
3 、丰富的库。拥有丰富的标准库,除了内置的庞大的标准库,还有定义丰富第三方库。
4 、可移植。任何装有Python解释器的环境均可执行Python代码。
5 、面向对象。Python是一种面向对象编程的语言。
2、简述位置参数传递、关键字参数传递、默认值参数传递的区别
答案:
位置参数传递:位置参数是指函数调用时按照参数在函数定义中的位置顺序传递的参数。
关键字参数传递:关键字参数是指在函数调用时,通过参数名指定传递的参数值。这种方式可以不按照参数顺序传递,只需指定参数名和对应的值即可。
默认值参数传递:默认值参数是指在函数定义时为参数指定一个默认值,当函数调用时没有传递该参数的值时,将使用默认值。
def add ( x, y) :
return x + y
print ( add( 2 , 3 ) )
def add ( x, y) :
return x + y
print ( add( y= 3 , x= 2 ) )
def add ( x, y= 0 ) :
return x + y
print ( add( 2 ) )
五、程序填空题
1、以下是一个递归函数,实现累乘功能,请补充完整
def func ( a= 10 ) :
if a > 1 :
return_____
else :
return_____
n = 5
result = ______
print ( result )
答案:a* func( a- 1 ) 、1 、func( n) 、120
2、请根据注释的提示内容完成程序的补充。
class Car :
count = 0
def __init__ ( self, name, color, type ) :
self. name = name
______
self. type = type
______
def getInfo ( self) :
print ( f"名字为 { self. name} 的车,它的颜色为 { self. color} ,类型为 { self. type } " )
car1 = Car( '宝马' , '黑色' , '汽车' )
car2 = Car( '豪爵' , '红色' , '摩托车' )
list = [ 1 , '2' , { 'name' : '奔驰' } ]
list . append( car1)
list . append( car2)
dict = {
'name' : '美利达' ,
'color' : '蓝色' ,
'type' : '自行车'
}
car3 = _______
list . append( car3)
print ( ______)
for l in _____
if isinstance ( ______) :
l. getInfo( )
答案:
第一空:self. color = color
第二空:Car. count += 1
第三空:Car( ** dict )
第四空:Car. count
第五空:list :( ps: 注意冒号不要丢)
第六空:l, Car
1 、序列解包。* 用于对元组、列表,** 用于对字典解包
2 、添加元素。append用于向列表添加,add用于向集合添加
3 、isinstance 。判断a是否是b的子类
4 、列表中的元素可以是任何类型的
5 、__init__是构造方法,self代表当前实例化对象
六、编程题
1、使用冒泡排序法对 [ 52 , 96 , 35 , 185 , 26 , 12.5 , -15 , 66 ] 进行排序并输出排序的结果
参考答案:
list = [ 52 , 96 , 35 , 185 , 26 , 12.5 , - 15 , 66 ]
len = len ( list )
for i in range ( len - 1 ) :
for j in range ( i + 1 , len ) :
if list [ j] < list [ i] :
temp = list [ i]
list [ i] = list [ j]
list [ j] = temp
for l in list :
print ( l)
2、在当前 .py 文件下有一个 “学生身份证码对照表.txt” ( 编码为utf-8 )。文件中,每一行有姓名、身份证这两个数,(用空格分割)。你需从控制台接收依次接收name、code(身份证码的后六位)这两个值。读取txt文件,判断输入的学生信息是否在对照表中,存在请输出yes,否则输出no。
参考答案:
name = input ( '请输入姓名: ' )
code = input ( '请输入身份证后六位: ' )
def isExist ( ) :
with open ( '学生身份证码对照表.txt' , 'r' , encoding= 'UTF-8' ) as file :
for l in file :
f_name, f_code = l. split( ' ' )
f_code = f_code[ - 7 : - 1 ]
if name == f_name and code == f_code:
return True
return False
if ( isExist( ) ) :
print ( 'yes' )
else :
print ( 'no' )