Python 基础语法(上篇 + 下篇)——综合自测题

Python 基础语法(上篇 + 下篇)------综合自测题

📋 自测说明

  • 适用章节:第一期(环境搭建与数据基石)+ 第二期(运算符全解与实战演练)
  • 题型设置:填空题(10题)、判断题(10题)、代码改错题(5题)、代码补全题(4题)、简答题(4题)、实战输出题(4题)
  • 难度梯度:⭐(基础)→ ⭐⭐(中等)→ ⭐⭐⭐(综合)
  • 建议时长:60~90 分钟
  • 答案位置:本自测题末尾附完整答案与解析

一、填空题(每空 2 分,共 20 分)

请将正确答案填写在横线上。

  1. Python 安装成功后,在命令行中输入 ________ 可以查看已安装的 Python 版本号。(⭐)
  2. 在 pip 的配置文件中,index-url 参数用于指定 ________。(⭐)
  3. Python 中使用 ________ 个空格作为标准缩进单位。(⭐)
  4. 以下变量的命名中,符合 Python 命名规范的是:________(填序号)。(⭐)
    • A. 2nd_place
    • B. student_name
    • C. class(保留字)
    • D. StudentName(类名规范,非变量)
  5. 在 Python 中,True 等价于整数 ____,False 等价于整数 ____。(⭐)
  6. int(3.99) 的返回值是 ____。(⭐)
  7. 表达式 10 // 3 的返回值是 ____,10 % 3 的返回值是 ____。(⭐)
  8. Python 中逻辑运算符 andor 遵循 ________ 求值原则。(⭐)
  9. 字符串 'hello'.upper() 的返回值是 ________。(⭐)
  10. 表达式 ~9 的返回值是 ____。(⭐⭐)

二、判断题(每题 2 分,共 20 分)

判断下列说法是否正确,正确的打 ,错误的打

  1. ( )Python 中的变量必须先声明类型才能使用。
  2. ( )listtuple 的主要区别之一是 list 可变而 tuple 不可变。
  3. ( )在 Python 中,/// 的运算结果类型完全相同。
  4. ( )字典中的键(key)可以是列表类型。
  5. ( )f-string 格式化字符串时,{} 中可以写任意合法的 Python 表达式。
  6. ( )continue 语句会终止整个循环的执行。
  7. ( )in 运算符可以判断一个元素是否在字符串、列表、元组和字典的值中。
  8. ( )strip() 方法默认只能删除字符串两端的空格,不能删除其他字符。
  9. ( )range(1, 10, 2) 生成的序列包含数字 9。
  10. ( )isinstance(3.14, int) 的返回值为 True

三、代码改错题(每题 4 分,共 20 分)

以下每段代码均有 1~2 处错误,请指出错误并给出修正后的代码。

第 1 题(⭐)

python

复制代码
score = input("请输入成绩:")
if score >= 60:
    print("及格")
else:
    print("不及格")

第 2 题(⭐)

python

复制代码
i = 1
while i <= 10
    print(i)
    i += 1

第 3 题(⭐⭐)

python

复制代码
name = "张三"
age = 18
info = "姓名:" + name + ",年龄:" + age + "岁"
print(info)

第 4 题(⭐⭐)

python

复制代码
numbers = [1, 2, 3, 4, 5]
for i in range(5):
    if i == 3:
        continue
    print(numbers[i])
else:
    print("循环正常结束")

第 5 题(⭐⭐)

python

复制代码
text = "  Hello World  "
text.strip()
print(text)

四、代码补全题(每题 5 分,共 20 分)

请根据注释提示,补全以下代码中缺失的部分。

第 1 题(⭐):计算 1 到 100 的累加和

python

复制代码
total = 0
i = 1
while ________:      # 补全循环条件
    total += i
    ________         # 补全循环变量的更新
print(f"1到100的和为:{total}")

第 2 题(⭐⭐):判断一个数是否为偶数,并输出对应的布尔值

python

复制代码
num = 8
is_even = ________   # 补全表达式,判断是否为偶数
print(f"{num} 是偶数:{is_even}")

第 3 题(⭐⭐):使用列表推导式生成 1~20 中所有偶数的平方

python

复制代码
numbers = range(1, 21)
squares_of_even = ________   # 补全列表推导式
print(squares_of_even)

第 4 题(⭐⭐):将列表中的字符串按指定格式拼接

python

复制代码
fruits = ["苹果", "香蕉", "橙子"]
result = ________   # 使用 join 方法拼接,用 " | " 分隔
print(result)       # 期望输出:苹果 | 香蕉 | 橙子

五、简答题(每题 5 分,共 20 分)

第 1 题 (⭐):请简述 Python 中 /// 运算符的区别,并各举一个示例。

第 2 题 (⭐⭐):简述 Python 中 breakcontinue 语句的区别,并说明它们分别在什么场景下使用。

第 3 题 (⭐⭐):请简述 listtuplesetdict 四种数据类型的核心区别(从是否可变、是否有序、元素是否唯一三个维度对比)。

第 4 题 (⭐⭐⭐):请简述 % 格式化、format() 方法和 f-string 三种字符串格式化方式的优劣,并说明在实际开发中如何选择。

六、实战输出题(每题 5 分,共 20 分)

请写出以下程序的运行结果(或执行效果描述)。

第 1 题(⭐):写出以下代码的运行结果。

python

复制代码
x = 5
y = 2
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x // y)
print(x ** y)

第 2 题(⭐⭐):写出以下代码的运行结果。

python

复制代码
text = "Python"
result = ""
for char in text:
    if char == "o":
        continue
    result += char
print(result)

第 3 题(⭐⭐⭐):写出以下代码的运行结果。

python

复制代码
a = 10
b = 20
result = (a > b) and (b > 0)
print(result)
result = (a < b) or (b < 0)
print(result)
result = not (a == 10)
print(result)

第 4 题(⭐⭐⭐):写出以下代码的运行结果。

python

复制代码
def demo():
    for i in range(1, 4):
        for j in range(1, i + 1):
            print(j, end="")
        print()

demo()

📝 答案与解析

一、填空题答案

题号 答案 解析
1 python --version 验证 Python 是否安装成功并查看版本
2 镜像源(或 PyPI 镜像服务器地址) index-url 指定包下载的源地址
3 4 PEP 8 推荐使用 4 个空格作为缩进
4 B. student_name 小写 + 下划线是 Python 变量命名的推荐风格
5 1,0 boolint 的子类
6 3 浮点数转整数直接截断小数部分
7 3,1 10 // 3 = 310 % 3 = 1
8 短路 当结果确定时不再计算剩余表达式
9 'HELLO' 将所有字母转为大写
10 -10 按位取反公式 ~x = -x - 1

二、判断题答案

题号 答案 解析
1 Python 是动态类型语言,变量无需预先声明类型
2 list 可变(增删改),tuple 不可变
3 / 返回浮点数,// 返回整数(整除)
4 字典的键必须是不可变类型,列表是可变类型
5 {} 中可以写变量、运算、函数调用等表达式
6 continue 只跳过本次循环,不终止整个循环
7 字典中的 in 判断的是,不是值
8 strip() 可传入参数删除指定字符
9 range(1, 10, 2) 生成 1, 3, 5, 7, 9
10 3.14float 类型,isinstance(3.14, int) 返回 False

三、代码改错题答案

第 1 题(⭐)

  • 错误input() 返回的是字符串,直接与整数比较会报错。
  • 修正

python

复制代码
score = int(input("请输入成绩:"))  # 添加 int() 转换
if score >= 60:
    print("及格")
else:
    print("不及格")

第 2 题(⭐)

  • 错误while 语句缺少末尾的冒号 :
  • 修正

python

复制代码
i = 1
while i <= 10:        # 添加冒号
    print(i)
    i += 1

第 3 题(⭐⭐)

  • 错误 :字符串与整数不能直接用 + 拼接,需要将年龄转为字符串。
  • 修正

python

复制代码
name = "张三"
age = 18
info = "姓名:" + name + ",年龄:" + str(age) + "岁"  # 使用 str() 转换
# 或使用 f-string
info = f"姓名:{name},年龄:{age}岁"
print(info)

第 4 题(⭐⭐)

  • 错误range(5) 产生 0~4,对应 numbers[4] 是最后一个元素。无索引越界错误,但更常见写法是 range(len(numbers))。此处代码逻辑正确,只是在循环中 continue 跳过了 i=3,此时执行 print(numbers[3]) 被跳过,所以输出 1, 2, 3, 5,然后执行 else 输出"循环正常结束"。代码本身能正确运行。
  • 为更严谨,建议改为

python

复制代码
numbers = [1, 2, 3, 4, 5]
for num in numbers:   # 直接遍历列表更简洁
    if num == 3:
        continue
    print(num)
else:
    print("循环正常结束")

第 5 题(⭐⭐)

  • 错误 :字符串是不可变类型,strip() 返回新字符串,原字符串不变。
  • 修正

python

复制代码
text = "  Hello World  "
text = text.strip()   # 将返回值赋回给变量
print(text)           # 输出:Hello World

四、代码补全题答案

第 1 题(⭐)

python

复制代码
total = 0
i = 1
while i <= 100:      # 补全循环条件
    total += i
    i += 1           # 补全循环变量的更新
print(f"1到100的和为:{total}")

第 2 题(⭐⭐)

python

复制代码
num = 8
is_even = num % 2 == 0   # 补全表达式,判断是否为偶数
print(f"{num} 是偶数:{is_even}")

第 3 题(⭐⭐)

python

复制代码
numbers = range(1, 21)
squares_of_even = [x**2 for x in numbers if x % 2 == 0]   # 补全列表推导式
print(squares_of_even)

第 4 题(⭐⭐)

python

复制代码
fruits = ["苹果", "香蕉", "橙子"]
result = " | ".join(fruits)   # 使用 join 方法拼接
print(result)                 # 输出:苹果 | 香蕉 | 橙子

五、简答题答案

第 1 题(⭐)

/ 是真除法,无论操作数是什么类型,结果都返回浮点数

// 是整除(地板除),返回不大于商的最大整数(向下取整),结果的类型取决于操作数类型。

python

复制代码
print(10 / 3)    # 3.3333333333333335(浮点数)
print(10 // 3)   # 3(整数)
print(10.0 // 3) # 3.0(浮点数)

第 2 题(⭐⭐)

对比维度 break continue
作用 终止整个循环,跳出循环体 跳过本次循环的剩余代码,进入下一次循环
循环是否继续 不再继续 继续下一次循环
适用场景 提前找到目标后退出(如查找元素) 某些条件不满足时跳过处理(如过滤数据)

python

复制代码
# break 示例:找到 5 后停止
for i in range(10):
    if i == 5:
        break
    print(i)   # 输出 0, 1, 2, 3, 4

# continue 示例:跳过偶数
for i in range(5):
    if i % 2 == 0:
        continue
    print(i)   # 输出 1, 3

第 3 题(⭐⭐)

数据类型 是否可变 是否有序 元素是否唯一 创建示例
list(列表) ✅ 可变 ✅ 有序 ❌ 允许重复 [1, 2, "a"]
tuple(元组) ❌ 不可变 ✅ 有序 ❌ 允许重复 (1, 2, "a")
set(集合) ✅ 可变 ❌ 无序 必须唯一 {1, 2, 3}
dict(字典) ✅ 可变 ❌ 无序(Python 3.7+ 按插入顺序) 必须唯一 {"name": "Tom"}

白话理解

  • 列表:购物车,可随意增减,有顺序。
  • 元组:密封档案盒,放入后不可更改。
  • 集合:自动去重的收纳盒,无序存放。
  • 字典:新华字典,通过"键"快速查找对应的"值"。

第 4 题(⭐⭐⭐)

对比维度 % 格式化 format() f-string
引入版本 Python 1.x Python 3.0 Python 3.6
语法简洁度 一般(需记忆格式符) 较好 ⭐ 最简洁
可读性 一般 较好 ⭐ 最好
表达式支持 不支持 支持 ⭐ 完全支持
性能 较慢 中等 ⭐ 最快
适用场景 维护老旧代码 动态构建格式化模板 日常开发首选

选择建议

  1. 日常开发 :首选 f-string,语法简洁、性能最好、可读性最强。
  2. 需要动态构建格式化模板 (如模板内容来自配置文件或数据库):使用 format(),因为模板可以动态生成。
  3. 维护 Python 3.5 或更早版本的旧代码 :使用 % 格式化保持一致性。

六、实战输出题答案

第 1 题(⭐)

text

复制代码
7
3
10
2.5
2
25

解析

  • 5 + 2 = 7
  • 5 - 2 = 3
  • 5 * 2 = 10
  • 5 / 2 = 2.5(注意:除法结果为浮点数)
  • 5 // 2 = 2(整除,向下取整)
  • 5 ** 2 = 25(幂运算)

第 2 题(⭐⭐)

text

复制代码
Pythn

解析

  • 遍历字符串 "Python",依次取字符 'P', 'y', 't', 'h', 'o', 'n'
  • 当字符为 'o' 时执行 continue,跳过本次循环的剩余代码
  • 其他字符拼接到 result
  • 最终输出 Pythn(缺少 'o'

第 3 题(⭐⭐⭐)

text

复制代码
False
True
False

解析

  • (a > b)False(10 > 20 不成立),and 短路,整个表达式返回 False
  • (a < b)True(10 < 20 成立),or 短路,整个表达式返回 True
  • (a == 10)Truenot TrueFalse

第 4 题(⭐⭐⭐)

text

复制代码
1
12
123

解析

  • 外层 i 从 1 到 3
  • 内层 j 从 1 到 i,输出 j 的值
  • 每行结束后换行
  • 第1行:j 从1到1,输出 1
  • 第2行:j 从1到2,输出 12
  • 第3行:j 从1到3,输出 123

📊 自测评分参考

得分范围 评级 建议
100~120 分 ⭐⭐⭐ 优秀 基础扎实,可以自信地进入下一期学习
80~99 分 ⭐⭐ 良好 局部知识点有遗漏,建议回顾错题对应的章节
60~79 分 ⭐ 合格 部分核心概念还不够牢固,建议重读笔记中对应的章节并动手练习
60 分以下 🔴 待加强 建议重新学习第一、二期笔记,配合代码实战逐个知识点攻克

🔜 下一步建议

完成自测后,您可以根据评分结果决定学习节奏:

  • 优秀/良好 :可以直接进入 第五期(组合数据类型) 的学习。
  • 合格/待加强:建议先回顾本自测中的错题所对应的笔记章节,动手将相关代码重新运行一遍,确保每一个概念都真正理解后再继续。

祝学习顺利!🚀

相关推荐
浮江雾1 小时前
Flutter第四节------核心概念学习笔记:从基础语法到异步编程
linux·服务器·开发语言·笔记·flutter·入门·基础
FoldWinCard1 小时前
D4 Linux 进程 内存 等命令
linux·运维·服务器
在线OJ的阿川1 小时前
仿muduo库实现高并发服务器
linux·服务器·c++
埃博拉酱1 小时前
Pip/Conda 混用导致的 CRT 版本冲突问题:[WinError 1114] 动态链接库(DLL)初始化例程失败
windows·python
刘小八1 小时前
LangGraph 人机交互实战:Interrupt、人工审批与工作流恢复
人工智能·python·人机交互
j7~2 小时前
【Linux 系统】二十.进程间通信(共享内存、消息队列、信号量)
linux·运维·消息队列·共享内存·信号量·system v
YMWM_2 小时前
python-venv虚拟环境
linux·开发语言·python
万俟淋曦2 小时前
【ROS2】动作通信机制 Action 代码示例(C++版)
linux·人工智能·机器人
Tbisnic2 小时前
23.大模型开发:深度学习----CNN 卷积神经网络 与 RNN 循环神经网络
人工智能·python·rnn·深度学习·cnn·ai大模型