Python期末复习题(二)

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:
    # 处理类型为ExceptionType1的异常
except ExceptionType2:
    # 处理类型为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 ] )
# 当元组只有一个元素时要添加逗号,即(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()
# 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’。(×)
# Python中的eval()函数是一个内建函数,它将字符串作为参数,并将其解析为Python表达式并执行。它返回		  	表达式的结果。本题答案应该为 14,整型。
5、放在一对三引号之间的内容都会被认为是注释。(×)
# 在Python中,一对三单引号(''')或三双引号(""")之间的内容并不被认为是注释,而是被解释为多行字符串。

# 如果给这个的左边添加变量接收,是能够打印出来的
'''
    Hello World
'''
6、同一个列表对象中的元素对象可以各不相同。(√)
# 例如
list = ['1', 2, (2,), True]
7、random.randint(1, 10) 的功能:随机产生一个 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)  # 输出:6

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]) 
# 结果为 False

print([2] in [1, [2], 3])
# 结果为 True

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) )  # 输出结果为5

def add(x, y):
    return x + y
print( add(y=3, x=2) )  # 输出结果为5

def add(x, y=0):
    return x + y
print( add(2) )  # 输出结果为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:
    # 类属性,记录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': '奔驰'}]

# 将 car1 和 car2 添加进list
list.append(car1)
list.append(car2)

# 新增一个Car对象
dict = {
    'name': '美利达',
    'color': '蓝色',
    'type': '自行车'
}
# 使用序列解包,实例化 car3 对象
car3 = _______

# 添加 car3 进 list对象
list.append(car3)

# 打印 Car的实例总数
print(______)

# 打印 list中所有是Car类型的元素
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用于向集合添加
3isinstance。判断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):
    # 内循环遍历 i+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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值