- ‘tuple’ object does not support item assignment
原因:
tuple 是一个元素不可变的列表,如果尝试对 tuple 中的某个元素进行修改,会报错。
解决办法:
需要将 tuple 转换为 list,然后再把 list 转换为 tuple。
示例:
代码语言:javascript复制```python strs = ('a', 'bc', 'def') strs[1] = 'bcd' 报错
strs = list(strs) strs[1] = 'bcd' strs = tuple(strs) ```
- TypeError: list indices must be integers or slices, not str
原因:
list 中的元素只能通过整数来访问,如果使用字符串,会报错。
解决办法:
可以通过 .index() 方法来查找字符串在 list 中的位置,然后通过整数来访问。
代码语言:javascript复制示例:
```python strs = ['a', 'bc', 'def'] strs['bc'] = 'bcd' 报错
index = strs.index('bc') strs[index] = 'bcd' ```
- AttributeError: 'function' object has no attribute 'x'
原因:
如果要从函数中访问其他函数,需要使用 self 参数。
解决办法:
将其他函数的调用改为 self.x() 。
示例:
代码语言:javascript复制
```python class A: def init(self): self.x = 1 def y(self): return self.x
a = A() a.y() 1
x = a.y x() 报错
x = x.self x() 1 ```
- NameError: name 'x' is not defined
原因:
如果要使用某个变量,需要确保该变量已经声明。
解决办法:
确保该变量已经声明。
示例:
代码语言:javascript复制```python x = 1 print(x) 1 print(y) 报错 ```
- SyntaxError: invalid syntax
原因:
语法错误,可能是缩进不正确,或者缺少某个符号。
解决办法:
检查代码,确认是否缩进正确,是否缺少某个符号。
代码语言:javascript复制示例:
```python if x 5: print(x)