Python期末考试复习题

最近为了帮助女朋友准备Python期末考试,找了一份试卷并做了一个解析,现在与大家分享一下。试卷来源:中国大学MOOC(猴博士爱讲课)

一、单项选择题

 1. 以下变量命名正确的是(C)

A. &a         B. 1b          C._ c           D. for

考点:

1、python变量名大小写敏感(python变量名区分大小写,也就是Student和student在python语言中代表两个不同的名字。)

2、python的变量名字中可以包含英文、下划线、数字,但是不能以数字开头,也就是说,student_id、student1、student_1、student、_student、_等都是合理的命名,但是1student就是非法的命名。

3、不能使用Python的关键字(例如 ifforwhile等)作为变量名、函数名或类名。

解析:

A. &a:变量名不能以特殊字符 & 开头,不合法。

B. 1b:变量名不能以数字开头,不合法。

C. _c:这是一个合法的变量名,以 _ 开头,后面跟着字母或数字,符合Python的命名规则。

D. for:for 是Python的关键字,不能用作变量名。

2. Python 表达式中,可以控制运算优先顺序的是(A)

A. 圆括号()          B. 尖括号<>                C. 方括号[]                 D. 大括号{}

解析:

在Python中,圆括号 () 可以用来控制表达式的运算优先级。当一个表达式中存在多个运算符时,Python 根据运算符的优先级进行计算。

例如:

a = 2 + 3 * 4

根据默认的运算符优先级,乘法运算 3 * 4 会先于加法运算 2 + 12,所以 a的值为 14

a = (2 + 3) * 4
在这种情况下,先进行加法运算,得到 5,然后乘以 4,所以a 的值为 20

3. 已知 a=1,b=3,执行 b*=a+2 后,b 的值是(C)

A. 3          B. 5           C. 9        D. 15

解析:

这条语句相当于 b = b * (a + 2)

 4. print(type([1,2,3,4]))的输出结果是(B )

A. <class 'tuple'>   B. <class 'list'>   C. <class 'set'>    D. <class 'dict'>

解析:

逐步分析这个表达式 print(type([1,2,3,4]))

[1, 2, 3, 4] 是一个包含整数的列表。

type([1, 2, 3, 4]) 表示获取 [1, 2, 3, 4] 这个列表的类型。

print(type([1, 2, 3, 4])) 则打印出获取到的类型。

A. <class 'tuple'> (元组)

元组使用圆括号 () 定义,元素之间用逗号分隔。元组是不可变的,意味着一旦创建,其内容不可更改。

example_tuple = (1, 2, 3)
print(type(example_tuple))  # 输出 <class 'tuple'>

B.<class 'list'> (列表)
列表使用方括号 [] 定义,元素之间用逗号分隔。列表是可变的,可以动态地添加、删除或修改其中的元素。

example_list = [1, 2, 3]
print(type(example_list))  # 输出 <class 'list'>

C. <class 'set'> (集合)
集合使用花括号 {} 定义,元素之间同样用逗号分隔。集合是无序且不重复的集合元素。

example_set = {1, 2, 3}
print(type(example_set))  # 输出 <class 'set'>

D. <class 'dict'> (字典)
字典使用花括号 {} 定义,元素以键-值对的形式表示,键和值之间用冒号 : 分隔,键-值对之间用逗号分隔。字典是可变的,可以动态地添加、删除或修改其中的键值对

example_dict = {'a': 1, 'b': 2, 'c': 3}
print(type(example_dict))  # 输出 <class 'dict'>

5.以下数据类型中,(A)是不可变类型
A. 元组        B. 列表       C. 字典          D. 集合

解析:

元组是不可变的数据类型,一旦创建后,无法修改元组的元素

列表是可变的数据类型,可以通过增加、删除或修改元素来改变列表的内容

字典是可变的数据类型,可以通过添加、删除或修改键值对来改变字典的内容

集合是可变的数据类型,可以通过添加或删除元素来改变集合的内容

6.已知 s="教 Python",则 s[3:-2]的值为(D)

A. "h"        B. "tho"            C. "ho"           D. "th"

解析:

给定字符串 s = "教 Python",我们来分析每个索引位置对应的字符:

s[0] = '教'

s[1] = 'P'

s[2] = 'y'

s[3] = 't'

s[4] = 'h'

s[5] = 'o'

s[6] = 'n'

根据切片的语法 s[start:end]

s[3:-2] 中,3 表示从索引为 3 的字符开始,即 "t"

-2 表示倒数第二个字符,即 'o'

因此,切片 s[3:-2] 包含从索引 3 到倒数第二个字符之前的部分,即 't''o'但不包括倒数第二个字符本身

所以,s[3:-2] 的值是 "th"

7.下面代码的输出结果是(C)   A. 无敌         B. 寂寞          C. 空虚           D. 顶峰

x=10
if x<0 or x>=20:
    print("无敌")
elif 0<=x<5:
    print("寂寞")
elif x in [11, 30, 10]:
    print("空虚")
else:
    print("顶峰")

解析:

首先,我们评估 if 条件语句:

x < 0 or x >= 20:这个条件是 False,因为 x = 100,不满足 x < 0,且不满足 x >= 20

然后,我们进入 elif 分支: elif 0 <= x < 5:这个条件也是 False,因为 x = 10,不满足 0 <= x < 5

接着 elif x in [11, 30, 10]:这个条件也是 Truex = 10在列表 [11, 30, 10] 中。

10. 下面的语句能创建一个空集合的是(C)

A. a=[]        B. a={}         C. a=set()         D. a=()

解析:

在Python中,创建一个空集合的正确方式是使用 set() 函数

A. a = []:这会创建一个空列表,而不是集合。列表使用方括号 []

B. a = {}:这实际上创建了一个空字典,而不是集合。在Python中,空的花括号 {} 表示空字典

D. a = ():这会创建一个空的元组,而不是集合。元组使用圆括号 ()

11.for 或者 while 与 else 搭配使用时,关于执行 else 语句块描述正确的是( B)

A. 仅循环非正常结束后执行(以 break 结束)

B. 仅循环正常结束后执行

C. 总会执行         

D. 永不执行

考点:

forwhile 循环与 else 搭配使用时,关于执行 else 语句块的描述如下:

        如果循环是正常结束(即没有被 break 中断),则 else 语句块会被执行。

        如果循环是由于遇到 break 语句而非正常结束,则 else 语句块不会被执行。

举例:

正常结束:

for i in range(5):
    print(i)
else:
    print("循环结束")

在这个例子中,for 循环会迭代 range(5),即从 0 到 4。因为没有 break 语句中断循环,所以循环正常结束。因此,会执行 else 语句块,输出 "循环结束"

非正常结束:

for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("循环结束")

在这个例子中,for 循环迭代 range(5),但是当 i == 3 时,执行 break 语句中断了循环。因此,循环是非正常结束的,else 语句块不会被执行。

12. float(5)的结果是(C)

A. 5         B. "5"         C. 5.0         D. '5' 

float(5) 的结果是将整数 5 转换为浮点数

A. 5:整数 5。

B. "5":包含字符 "5" 的字符串。

C. 5.0:浮点数,即带有小数点的数值。

D. '5':包含字符 '5' 的字符串。

13.循环语句中,能提前进入下一次循环的语句是(D)

A. for 语句         B. break 语句         C. while 语句        D. continue 

A. for 语句for 语句用于遍历可迭代对象的元素,不是一个可以直接控制循环流程的语句。

B. break 语句break 语句用于终止当前循环,退出循环体,不会进入下一次循环。

C. while 语句while 语句定义了一个条件循环,不是一个用于控制进入下一次循环的语句。

D. continuecontinue 语句用于跳过当前循环块中剩余的代码,直接进入下一次循环的迭代。

14. 下面代码的输出结果是 (C)

A.2        B.0        C.6        D.3

def yunsuan(a, b=3)
    print(a*b)

yunsuan(2)

函数定义

def yunsuan(a, b=3):
    print(a * b)

这行代码定义了一个名为 yunsuan 的函数,它有两个参数 a 和 b。其中,b 的默认值设置为 3,这意味着如果调用函数时不提供 b 的值,它将默认为 3

print(a * b):这一行代码在函数体内部,计算并打印 a * b 的结果。在函数调用 yunsuan(2) 中,a 的值是 2,而由于没有显式提供 b 的值,因此 b 将使用默认值 3。因此,表达式 2 * 3 将会计算结果并打印出来。

15. 下面打开文件的语句里错误的是 (C)

A. a=open("wenjian.txt", "rb+")

B. a=open("D:\\data\\wenjian.txt", "rb+")

C. a=open("D:\data\wenjian.txt", "rb+")

D. a=open("D:/考试不挂/wenjian.txt", "rb+")

C. a=open("D:\data\wenjian.txt", "rb+")

这个选项中,路径字符串中的反斜杠 \ 并没有被转义或者使用原始字符串。在 Python 中,\d 会被解释为转义字符序列,这会导致字符串不是预期的路径。

二.填空题

1.已知 a=9/3,那 print(a)的输出结果是3.0

2.已知 a="11"+"12",print(a)的输出结果是1112

在 Python 中,当对两个字符串进行加法操作时,它们会被连接成一个新的字符串。这种操作称为字符串拼接

3.{1, 2, 3} | {2, 3, 4} 的值为: {1, 2, 3, 4}

在 Python 中,{1, 2, 3} | {2, 3, 4} 表示集合的并集操作。集合是一种无序且元素唯一的数据结构。

并集操作 | 将两个集合的所有元素合并成一个新的集合,同时去除重复的元素。因此,{1, 2, 3} | {2, 3, 4} 的结果是一个包含元素 1, 2, 3, 4 的新集合

4.转义字符“\n”的含义是回车换行

5.使用 global 关键字,可以在函数内给全局变量赋值

6.表达式 3 >= 2 的结果是True

7.print(chr(ord("B")))的输出结果是B

ord("B") 返回字符 "B" 的 Unicode 码点,即整数值。

chr(66) 返回 Unicode 码点 66 对应的字符,即 "B"

8. 在 Python 中用 None 表示空类型

9. 在 Python 标准库 math 中,用来计算平方根的函数是 sqrt()

10. Python 语言的单行注释以 # 开头

单行注释

# 这是单行注释
x = 5  # 可以放在代码行的末尾

多行注释

"""
这是
多行
注释
"""

三、程序阅读题

1.请写出下面程序执行后,程序的输出结果。

a = "豹子讲Python!".upper()
b = a[3:−1]
c = b+"成绩"
d = "科目:{},{}".format(b, c)
print(d)

a = "豹子讲 Python!".upper()  # 将字符串转换为大写
b = a[3:-1]  # 取字符串切片,从索引3开始到倒数第2个字符(不包括最后一个字符)
c = b + "成绩"  # 拼接字符串
d = "科目:{},{}".format(b, c)  # 格式化字符串
print(d)  # 输出结果

科目:PYTHON,PYTHON 成绩

2.阅读如下代码,代码运行后,b= [9, 7, 4, 1]

a = [9, 1, 5, 4, 11]

# 修改列表 a 的第三个元素(索引为2)为7
a[2] = 7

# 在列表 a 的末尾追加元素6
a.append(6)

# 切片操作,从列表 a 中取出从开头到倒数第3个元素(不包括倒数第3个元素)的子列表
b = a[:-2]

# 对列表 b 进行降序排序
b.sort(reverse=True)

3. 试写出下面程序运行后,屏幕会输出的内容

i = 5
while i > 1:
    i = i - 1
    if i == 4:
        continue
    if i == 2:
        break
    print(i)
i = i * 2
print(i)
'''
答案:
3
4
'''

四、编程题

1. 编写程序,使用自定义函数,要求如下:

1) 函数名称为:qiu;

2) qiu 函数的参数:两个,正整数 a 与 b;

3) 执行函数后,会输出 a+b 的值;

4) 函数的返回值是 a-b 的结果。

def qiu(a, b):
    # 输出 a+b 的值
    print("a + b =", a + b)
    # 返回 a-b 的结果
    return a - b

# 测试函数
a = 10
b = 5
c = qiu(a, b)
print("a - b =", c)

2.编写代码完成如下功能:

1) 初始化建立字典 a,包含内容是:"猴博士": 100, "傻狍子": 0 ;

2) 向字典 a 中添加键值对"莎勒巴·鸡": 10 ;

3) 修改字典 a 中"莎勒巴·鸡"对应的值为 12 ;

4) 删除字典 a 中"傻狍子"对应的键值对 ;

5) 输出字典 a 里,内容大于 60 的名字 。

# 1. 初始化建立字典 a
a = {
    "猴博士": 100,
    "傻狍子": 0
}

# 2. 向字典 a 中添加键值对 "莎勒巴·鸡": 10
a["莎勒巴·鸡"] = 10

# 3. 修改字典 a 中 "莎勒巴·鸡" 对应的值为 12
a["莎勒巴·鸡"] = 12

# 4. 删除字典 a 中 "傻狍子" 对应的键值对
if "傻狍子" in a:
    del a["傻狍子"]

# 5. 输出字典 a 中值大于 60 的键名
for name, value in a.items():
    if value > 60:
        print(name)

3.已知我们要花 100 元,购买鸡、鸭、鹅,已知鸡 3 元一只,鸭 2 元一只,鹅 0.5 元一只, 我们共要买 100 只,请编程输出满足要求的鸡鸭鹅只数

# 思路:
# 设鸡、鸭、鹅的数量分别为 x, y, z,则有以下方程:
# x + y + z = 100  (总数量为100只)
# 3x + 2y + 0.5z = 100  (总花费为100元)

# 使用两层循环遍历可能的组合,找到满足条件的组合
for x in range(101):  # 鸡的数量 x 可能从 0 到 100
    for y in range(101):  # 鸭的数量 y 可能从 0 到 100
        z = 100 - x - y  # 计算鹅的数量 z
        
        # 判断是否满足总花费为 100 元的条件
        if 3*x + 2*y + 0.5*z == 100:
            print(f"鸡:{x} 只,鸭:{y} 只,鹅:{z} 只")
  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值