鱼C论坛

 找回密码
 立即注册
查看: 311|回复: 8

[快问快答] 第026讲:元组

[复制链接]
发表于 2025-12-23 12:35:27 | 显示全部楼层 |阅读模式
购买主题 已有 3 人购买  本主题需向作者支付 5 鱼币 才能浏览
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2026-3-14 15:52:12 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2026-3-20 12:34:59 | 显示全部楼层
@FishC 对于元组 t = ([1, 2], 99),下面哪个操作可以成功执行(不报错)?
A. t[1] = 100
B. t[0].append(3)
C. t.append(0)
D. t[0] = [0]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-3-20 12:49:21 | 显示全部楼层
haly 发表于 2026-03-20 12:34
@FishC 对于元组 t = (, 99),下面哪个操作可以成功执 ...


对于元组 t = ([1, 2], 99),只有选项 B 可以成功执行而不报错。

具体分析如下:

  • 选项 A:t[1] = 100
    尝试修改元组的第二个元素,但元组是不可变的,因此会抛出 TypeError
  • 选项 B:t[0].append(3)
    元组的第一个元素是一个列表,列表是可变的,因此可以向其中添加元素。执行后,列表变为 [1, 2, 3],而元组本身并未改变,所以不会报错。
  • 选项 C:t.append(0)
    元组没有 append 方法,因为元组不可变,因此会抛出 AttributeError
  • 选项 D:t[0] = [0]
    尝试将元组的第一个元素重新赋值,但元组不可变,因此会抛出 TypeError


因此,正确答案是 B。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-5-10 16:09:23 | 显示全部楼层
@FishC 以下代码执行后,type(n) 的结果是?

n = (999)

A. <class 'tuple'>
B. <class 'int'>
C. <class 'list'>
D. <class 'str'>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-5-10 16:09:30 | 显示全部楼层
wuyuanm 发表于 2026-05-10 16:09
@FishC 以下代码执行后,type(n) 的结果是?

n = ( ...


答案是 B. <class 'int'>

在 Python 中,(999) 只是用括号将数字 999 括起来,相当于普通的数学运算括号,不会创建元组。要创建单元素元组,必须写成 (999,) (注意逗号)。因此 n = (999) 等价于 n = 999,类型为 int

验证代码:

  1. n = (999)
  2. print(type(n))  # <class 'int'>
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-6-3 00:21:30 From FishC Mobile | 显示全部楼层
@FishC 下列解包后,middle 的值是什么?

head, *middle, tail = ("上上", "中上", "中下", "下下")
print(middle)

A. ('中上', '中下')
B. ['中上', '中下']
C. '中上'
D. 会报错

@FishC 下列代码的输出结果是?

prices = (99, 199, 299, 399, 499)
print(prices[1:4])

A. (99, 199, 299, 399)
B. (199, 299, 399)
C. (299, 399, 499)
D. [199, 299, 399]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-6-3 00:21:39 | 显示全部楼层
a247863072 发表于 2026-06-03 00:21
@FishC 下列解包后,middle 的值是什么?

head, *m ...


第一题:解包后,middle 的值是 选项 B['中上', '中下']。  
  1. head, *middle, tail = ("上上", "中上", "中下", "下下")
  2. print(middle)  # 输出 ['中上', '中下']
复制代码


第二题:切片结果输出是 选项 B(199, 299, 399)。  
  1. prices = (99, 199, 299, 399, 499)
  2. print(prices[1:4])  # 输出 (199, 299, 399)
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-6-3 00:21:44 | 显示全部楼层
a247863072 发表于 2026-06-03 00:21
@FishC 下列解包后,middle 的值是什么?

head, *m ...


第一个问题:`head, *middle, tail = ("上上", "中上", "中下", "下下")` 中,`*middle` 将中间剩余的元素收集为一个列表,所以 `middle` 的值是 `['中上', '中下']`。正确答案是 B

第二个问题:`prices = (99, 199, 299, 399, 499)`,切片 `prices[1:4]` 返回索引1到索引3的元素,结果为 `(199, 299, 399)`,类型仍是元组。正确答案是 B

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-6-14 22:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表