当前位置:首页>java>Python元组:刻在代码里的“石板协议”,想反悔?没门!

Python元组:刻在代码里的“石板协议”,想反悔?没门!

  • 2026-08-10 18:44:41
Python元组:刻在代码里的“石板协议”,想反悔?没门!
关注我,跟郭老师一起学编程

上周五编程课,我让同学们写下本学期的三个学习目标。小鹏写完后问我:“郭老师,下周我能改一个吗?”我笑了:“有些承诺啊,就像刻在石板上的字,擦不掉喽。”

当孩子们遇上“不能改”的规则

说实话,教孩子编程这些年,我有个有趣的发现:孩子们对“不能改”这三个字,有种天生的“反抗心理”。作业写错了?擦掉重写。游戏输了?重开一局。但在编程世界里,有些东西一旦定下,还真就改不了——比如今天要讲的元组(Tuple)

你可以把元组想象成甲秀楼门口那对石狮子——摆在那里多少年了,风吹雨打,位置没变过,模样也没变过。元组就是这样,创建之后,纹丝不动

从“偷改游戏规则”说起

去年编程社团发生了一件趣事。我们组织小组比赛,用列表存储比赛规则:

rules = ("不许偷看别人代码", "按时提交", "独立完成")

# 现在谁想改?试试看?

# rules[2] = "可以互相讨论"  # 直接报错!

结果有个机灵鬼不知怎么绕过了限制,偷偷把第三条改成了“可以互相讨论”。这下好了,比赛到一半,两个小组吵起来了。

今年我们学聪明了,改用元组:

rules = ("不许偷看别人代码", "按时提交", "独立完成")

# 现在谁想改?试试看?

# rules[2] = "可以互相讨论"  # 直接报错!

元组就像你给全班同学的白纸黑字保证书——签了名,按了手印,想反悔?全班同学都看着呢。

创建元组:三种写法,一个脾气

写法一:最正经的括号法

# 郭老师的三个教学底线(绝不妥协)

bottom_lines = ("不糊弄孩子", "不急功近利", "不照本宣科")

print(f"我的底线:{bottom_lines}")

# 贵阳几个雷打不动的地标

landmarks = ("甲秀楼", "青岩古镇", "黔灵山")

写法二:其实括号能省(但逗号省不了)

# 注意看,没括号也是元组!

colors = "红色", "绿色", "蓝色"

print(type(colors))  # 输出:<class 'tuple'>

# 单个元素的元组(重点!)

single = ("只有我一个",)  # 这个逗号不能少!

not_tuple = ("只有我一个")   # 这是字符串,不是元组!

郭老师敲黑板:记住这个逗号!去年有8个同学在这里栽跟头,误把元组当字符串。

写法三:把“善变”的变成“固执”的

# 把列表“定”成元组

changeable_list = ["今天学", "明天忘", "后天补"]

fixed_tuple = tuple(changeable_list)  # 现在固定了

# 字符串也能转

my_name = tuple("郭老师")  # ('郭', '老', '师')

元组的“超能力”:一拆多

这是元组最实用的功能,看例子:

# 传统方法(有点啰嗦)

point = (100, 200)

x = point[0]

y = point[1]

# 元组解包(干净利落)

x, y = (100, 200)

print(f"x={x}, y={y}")

# 实战:学生信息拆解

student = ("李小萌", 11, "五年级", 96)

name, age, grade, score = student

print(f"{name}今年{age}岁,{grade},编程考{score}分")

最酷的来了——交换两个变量:

a = "苹果"

b = "香蕉"

print(f"交换前:a={a}, b={b}")

# 传统方法需要第三个人帮忙

temp = a

a = b

b = temp

# 元组解法:一秒互换

a, b = b, a

print(f"交换后:a={a}, b={b}")

元组能干什么?不能干什么?

能干的(都是“看”和“找”):

# 1. 按位置查看

days = ("周一", "周二", "周三", "周四", "周五")

print(days[0])   # 周一

print(days[-1])  # 周五(倒数第一)

# 2. 切一段看看

work_days = days[0:5]  # 周一到周五

# 3. 挨个看看

for day in days:

    print(f"{day}:好好学编程")

# 4. 找找在哪儿

colors = ("红", "绿", "蓝", "黄", "绿")

print(colors.index("蓝"))  # 2(第一个蓝的位置)

# 5. 数数有几个

print(f"绿色出现了{colors.count('绿')}次")

# 6. 看看在不在

if "红" in colors:

    print("找到红色了!")

不能干的(想都别想):

fixed = (1, 2, 3)

# 下面这些全都会报错!

# fixed[0] = 10    # 不能改

# fixed.append(4)  # 不能加

# fixed.remove(2)  # 不能删

# fixed.sort()     # 不能排

什么时候用元组?一张表告诉你

你的数据
用元组?用列表?
真实例子
固定不变
的信息
✅ 用元组
生日、身份证号、π=3.14
经常变化
的信息
✅ 用列表
购物车、待办事项、聊天记录
做字典的钥匙
✅ 用元组(列表不行!)
把(姓名, 学号)当作键
函数返回多个值
✅ 用元组
return 姓名, 年龄, 分数
需要排序过滤
✅ 用列表
按分数排名的学生列表

关键点:如果你存的是一旦确定就不该改的东西,用元组。这是编程习惯,更是做事态度

好的代码、好的学习、好的人生,都是在寻找平衡:

  • 列表的灵活应对日常变化

  • 元组的坚定守护核心价值

知道什么可以变,什么不能变——这大概也是成长中最重要的一课。

未完待续……

(end)

来源|少儿编程社

图片|网络(侵删)

文字|编程郭老师

往期推荐:

信奥赛CSP竞赛完全学习路线:从门外汉到算法高手的进阶指南

少儿编程:是未来刚需,还是内卷新战场?

少儿编程到底学什么?一文解答你心中的所有疑惑,家长看不悔!

少儿编程可以参加的比赛盘点,收藏点赞,让你的孩子升学快人一步。

少儿编程——未来教育的先行者,如何让孩子一步步走上信奥之路

学编程

码上联系,找郭老师更容易~

Tel:15519596848

最新文章

随机文章