当前位置:首页>python>【python 编程三级通关秘籍】从基础到进阶的关键一跃!

【python 编程三级通关秘籍】从基础到进阶的关键一跃!

  • 2026-10-11 07:51:46
【python 编程三级通关秘籍】从基础到进阶的关键一跃!

三级的知识点比前两级更深入、更抽象,很多同学学完之后会觉得有点难。别担心!今天这篇文章就是为你量身打造的编程三级总复习宝典!我们会用最简单的比喻、最清晰的代码,把所有重点、难点一网打尽。看完这篇,你不仅能轻松应对考试,还能写出更专业、更高效的Python代码!


第一关:进制转换——计算机的"语言"

计算机只认识0和1,但我们平时用的是十进制。学会不同进制之间的转换,你就能和计算机"直接对话"了!

1.1 四种常见进制

进制
基数
数字范围
表示方法(Python)
生活例子
十进制
10
0-9
直接写(如123)
我们平时用的数字
二进制
2
0-1
前缀0b(如0b101)
计算机内部
八进制
8
0-7
前缀0o(如0o12)
老式计算机
十六进制
16
0-9, A-F
前缀0x(如0x1A)
颜色代码、内存地址

小技巧:十六进制中,A=10, B=11, C=12, D=13, E=14, F=15

1.2 核心转换方法

方法1:其他进制 → 十进制(按权展开法)

公式:每一位数字 × 基数的位数次方,然后相加

  • 二进制101转十进制:1×2² + 0×2¹ + 1×2⁰ = 4 + 0 + 1 = 5
  • 十六进制1A转十进制:1×16¹ + 10×16⁰ = 16 + 10 = 26

方法2:十进制 → 其他进制(除基取余法)

步骤:不断除以基数,直到商为0,然后倒序取余数

  • 十进制13转二进制:
    13 ÷ 2 = 6 余 1
    6 ÷ 2 = 3 余 0
    3 ÷ 2 = 1 余 1
    1 ÷ 2 = 0 余 1
    倒序取余:1101

1.3 Python内置转换函数(考试必用!)

# 十进制转其他进制
print(bin(10))  # 转二进制:0b1010
print(oct(10))  # 转八进制:0o12
print(hex(10))  # 转十六进制:0xa

# 其他进制转十进制
print(int('1010', 2))   # 二进制转十进制:10
print(int('12', 8))     # 八进制转十进制:10
print(int('a', 16))     # 十六进制转十进制:10

易错点提醒:

  • 转换函数返回的是字符串,带前缀(如0b)
  • int()
    函数的第二个参数是原数的进制

第二关:原码、反码、补码——负数的秘密

计算机怎么表示负数呢?这就要靠原码、反码、补码了!它们是计算机存储有符号整数的三种方式。

2.1 基本概念(以8位二进制为例)

  • 最高位是符号位
    :0表示正数,1表示负数
  • 正数
    :原码 = 反码 = 补码
  • 负数
    :
    1. 原码:符号位为1,其余位为绝对值的二进制
    2. 反码:原码的符号位不变,其余位取反(0变1,1变0)
    3. 补码:反码 + 1

2.2 计算示例(8位)

  • 正数+5: 原码:00000101 反码:00000101 补码:00000101

  • 负数-5: 原码:10000101 反码:11111010(符号位不变,其余取反) 补码:11111011(反码加1)

2.3 为什么要用补码?

补码最大的好处是可以把减法变成加法,让计算机只需要加法器就能完成所有运算。 比如:5 - 3 = 5 + (-3) = 2,用补码计算完全正确!

易错点提醒:

  • 计算机中所有整数都是以补码形式存储的
  • 补码转原码:负数的补码再求一次补码就是原码

第三关:位运算——直接操作二进制

位运算就是直接对二进制的每一位进行操作,速度非常快,是高级程序员的必备技能!

3.1 六种位运算符

运算符
名称
作用
示例(二进制)
结果
&
按位与
两位都为1,结果才为1
0b101 & 0b0110b001
(1)
`
`
按位或
只要有一位为1,结果就为1
`0b101
~
按位取反
所有位取反(0变1,1变0)
~0b101-6
^
按位异或
两位不同为1,相同为0
0b101 ^ 0b0110b110
(6)
<<
左移
所有位左移n位,右边补0
0b101 << 10b1010
(10)
>>
右移
所有位右移n位,左边补符号位
0b101 >> 10b10
(2)

3.2 位运算的实用技巧(超级有用!)

# 1. 判断奇偶:& 1
print(5 & 1)  # 1(奇数)
print(4 & 1)  # 0(偶数)

# 2. 交换两个变量(不用临时变量)
a, b = 3, 5
a = a ^ b
b = a ^ b
a = a ^ b
print(a, b)  # 5 3

# 3. 快速乘2:<< 1
print(3 << 1)  # 6(3×2)

# 4. 快速除2:>> 1
print(6 >> 1)  # 3(6÷2)

第四关:四大容器——数据的"收纳箱"

当我们需要处理大量数据时,单个变量就不够用了。Python提供了四种强大的容器来存储和管理数据。

4.1 四大容器对比表(必背!)

容器
英文
是否可变
是否有序
是否允许重复
表示方法
列表
list
✅ 是
✅ 是
✅ 是
[1, 2, 3]
元组
tuple
❌ 否
✅ 是
✅ 是
(1, 2, 3)
字典
dict
✅ 是
❌ 否
❌ 键不重复
{"name": "小明", "age": 10}
集合
set
✅ 是
❌ 否
❌ 不重复
{1, 2, 3}

4.2 列表(最常用)

# 创建列表
fruits = ["苹果", "香蕉", "橙子"]

# 增
fruits.append("葡萄")      # 末尾添加
fruits.insert(1, "草莓")   # 指定位置插入

# 删
fruits.pop()               # 删除末尾元素
fruits.remove("香蕉")      # 删除指定元素

# 改
fruits[0] = "西瓜"

# 查
print(fruits[1])           # 按索引访问
print(fruits.index("橙子")) # 查找元素索引

# 常用函数
print(len(fruits))         # 长度
fruits.sort()              # 排序
fruits.reverse()           # 反转

4.3 字典(键值对存储)

# 创建字典
student = {"name": "小红", "age": 11, "score": 95}

# 增/改
student["gender"] = "女"   # 不存在则添加,存在则修改
student["age"] = 12

# 删
student.pop("score")       # 删除指定键值对

# 查
print(student["name"])     # 按键访问(键不存在会报错)
print(student.get("score", 0)) # 安全访问(不存在返回默认值)

# 遍历
for key, value in student.items():
    print(key, ":", value)

4.4 集合(自动去重)

# 创建集合
nums = {1, 2, 3, 2, 1}
print(nums)  # {1, 2, 3}(自动去重)

# 增删
nums.add(4)
nums.remove(1)

# 集合运算
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b)  # 交集:{2, 3}
print(a | b)  # 并集:{1, 2, 3, 4}
print(a - b)  # 差集:{1}

第五关:列表解析——一行代码顶十行

列表解析是Python的特色语法,能让你用一行代码完成原本需要多行循环的操作,非常简洁优雅!

5.1 基本语法

[表达式 for 变量 in 序列]

对比示例:生成1到10的平方列表

# 普通写法
squares = []
for i in range(1, 11):
    squares.append(i ** 2)

# 列表解析写法
squares = [i ** 2 for i in range(1, 11)]

5.2 带条件的列表解析

# 生成1到10中的偶数列表
evens = [i for i in range(1, 11) if i % 2 == 0]
print(evens)  # [2, 4, 6, 8, 10]

# 把列表中的所有字符串转成大写
words = ["hello", "world", "python"]
upper_words = [word.upper() for word in words]
print(upper_words)  # ['HELLO', 'WORLD', 'PYTHON']

第六关:基础算法——编程的灵魂

算法就是解决问题的步骤和方法。三级要求掌握两种最基础也最常用的算法:枚举法和模拟法。

6.1 枚举法(暴力破解法)

核心思想:把所有可能的情况都试一遍,找出符合条件的解。 适用场景:问题规模不大,所有可能的情况可以一一列举。

经典示例:百钱买百鸡

公鸡5元一只,母鸡3元一只,小鸡1元3只。用100元买100只鸡,问公鸡、母鸡、小鸡各买多少只?

# 枚举所有可能的公鸡数量(0-20)
for x in range(0, 21):
    # 枚举所有可能的母鸡数量(0-33)
    for y in range(0, 34):
        # 小鸡数量
        z = 100 - x - y
        # 判断是否满足总钱数条件
        if 5 * x + 3 * y + z / 3 == 100:
            print(f"公鸡:{x}只,母鸡:{y}只,小鸡:{z}只")

6.2 模拟法

核心思想:按照题目描述的过程,一步一步用代码模拟出来。 适用场景:问题有明确的步骤和规则,可以直接翻译成代码。

经典示例:报数游戏

10个小朋友围成一圈报数,报到3的人退出,最后剩下的人是几号?

# 初始化10个小朋友,编号1-10
kids = list(range(1, 11))
count = 0  # 报数计数器

while len(kids) > 1:
    # 取出第一个小朋友
    kid = kids.pop(0)
    count += 1
    # 如果报到3,就退出;否则排到队尾
    if count != 3:
        kids.append(kid)
    else:
        count = 0

print("最后剩下的小朋友是:", kids[0], "号")

🎯 考前必做综合练习

现在来检验一下你的学习成果吧!做完再看答案哦!

练习1:进制转换器

编写一个程序,让用户输入一个十进制数,然后输出它的二进制、八进制和十六进制表示。

练习2:成绩统计

用字典存储3个学生的姓名和成绩,然后计算全班的平均分、最高分和最低分。

练习3:素数判断

编写一个函数,判断一个数是不是素数(只能被1和它本身整除的数)。然后用列表解析生成100以内的所有素数。

练习4:模拟石头剪刀布

编写一个程序,模拟人和电脑玩石头剪刀布游戏,电脑随机出拳,人输入选择,然后判断胜负。


📝 参考答案

练习1:进制转换器

num = int(input("请输入一个十进制数:"))
print(f"二进制:{bin(num)}")
print(f"八进制:{oct(num)}")
print(f"十六进制:{hex(num)}")

练习2:成绩统计

students = {
    "小明": 90,
    "小红": 95,
    "小刚": 85
}

scores = list(students.values())
average = sum(scores) / len(scores)
highest = max(scores)
lowest = min(scores)

print(f"平均分:{average:.1f}")
print(f"最高分:{highest}")
print(f"最低分:{lowest}")

练习3:素数判断

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

# 生成100以内的素数
primes = [i for i in range(2, 101) if is_prime(i)]
print("100以内的素数:", primes)

练习4:模拟石头剪刀布

import random

choices = ["石头", "剪刀", "布"]
computer = random.choice(choices)
player = input("请出拳(石头/剪刀/布):")

print(f"电脑出了:{computer}")

if player == computer:
    print("平局!")
elif (player == "石头" and computer == "剪刀") or \
     (player == "剪刀" and computer == "布") or \
     (player == "布" and computer == "石头"):
    print("你赢了!")
else:
    print("你输了!")

🎉 写在最后

太棒了!你已经看完了这篇编程三级总复习文章。现在的你,已经掌握了Python编程的核心技能,具备了学习更高级知识的基础。

三级的知识点确实有难度,特别是补码和位运算,刚开始可能会觉得有点抽象。但只要你多练习、多思考,把每个概念都搞懂,就会发现它们其实很简单。

通过三级只是你编程之路的一个里程碑。接下来还有更精彩的知识等着你——函数、模块、面向对象、文件操作……

加油,小程序员们!你们已经具备了成为优秀程序员的潜力,继续在代码的世界里探索吧!🚀

最新文章

随机文章