专业编程基础技术教程

网站首页 > 基础教程 正文

python散装笔记——148:不可变类型int float str tuple和frozenset

ccvgpt 2025-03-12 12:35:51 基础教程 2 ℃

1: 字符串的单个字符不可赋值

foo = "bar"
foo[0] = "c" # 错误

不可变变量的值一旦创建后就不能被改变。

  • 字符串是不可变的,这意味着一旦字符串被创建,其内容不能被修改。
  • 尝试修改字符串的某个字符会导致TypeError

示例

python散装笔记——148:不可变类型int float str tuple和frozenset

foo = "bar"
try:
    foo[0] = "c"
except TypeError as e:
    print(f"Error: {e}")
# 输出:Error: 'str' object does not support item assignment

2: 元组的单个成员不可赋值

foo = ("bar", 1, "Hello!",)
foo[1] = 2 # 错误!

第二行会返回一个错误,因为元组成员一旦创建后就不可以被赋值。这是由于元组的不可变性。

  • 元组也是不可变的,这意味着一旦元组被创建,其元素不能被修改。
  • 尝试修改元组的某个元素会导致TypeError

示例

foo = ("bar", 1, "Hello!")
try:
    foo[1] = 2
except TypeError as e:
    print(f"Error: {e}")
# 输出:Error: 'tuple' object does not support item assignment

3: frozenset是不可变的,且不可赋值

foo = frozenset(["bar", 1, "Hello!"])
foo[2] = 7 # 错误
foo.add(3) # 错误

第二行会返回一个错误,因为frozenset成员一旦创建后就不可以被赋值。第三行会返回错误,因为frozenset不支持可以操作成员的函数。

  • frozenset是不可变的集合类型,这意味着一旦frozenset被创建,其元素不能被修改。
  • frozenset不支持添加或删除元素的操作,尝试这些操作会导致AttributeError

示例

foo = frozenset(["bar", 1, "Hello!"])
try:
    foo[2] = 7
except TypeError as e:
    print(f"Error: {e}")
# 输出:Error: 'frozenset' object does not support item assignment

try:
    foo.add(3)
except AttributeError as e:
    print(f"Error: {e}")
# 输出:Error: 'frozenset' object has no attribute 'add'

Tags:

最近发表
标签列表