Python报错总结

2029/02/28更新:Python2.7 json.loads(string_format),如8更新

用Python两年多了,也基本熟悉了,但是长久不用,写着又会出错了,以下今后报错和改正的总结,希望对新手或者初学者一定帮助,报错不可怕,认真看错误原因和百度、google,基本都能解决的!以下指的是Python3版本

1、关于map

python3.3之后,通过map函数生成的就是一个iterators,如果你需要看里面的内容,可以用List转换,再转其他格式,例如

a = map(lambda x: x**2, [1,2,3,4]);返回[1,4,9,16],列表格式!

2、关于sys

sys.argv[0]表示文件名,sys.argv[]表示输入参数列表,例如在shell环境下运行,python test.py a b c

sys.argv[0] = test.py; argv[1] = 'a'  argv[2] = 'b' 以此内推,大家可以敲一下试试!

3、关于文件读取

我们一般采用pandas,pd.xxx(import pandas as pd)进行文件读取,后面一般加全路径,但是有时候会报character错误,特别是windows系统下;

解决办法:建议采用(r"/path")或者("//path")或者效仿linux,采用("\path\file"),就能解决问题了

4、cmd 进入命令行报错 python无法找到,尽管你安装了anaconda2或者anaconda3

这个问题是你可能需要去修改一下你的环境变量了,anaconda的路径并没有完全加进去,结果方法如下:C:\Users\sx\AppData\Local\Continuum\anaconda3\Scripts;

C:\Users\_sx\AppData\Local\Continuum\anaconda3\Library\bin;

C:\Users\_sx\AppData\Local\Continuum\anaconda3;

把这三个加进去就没问题,安装路径需要对应你自己的路径,以上是我的安装路径,请留意。

5、更新内容:df[(True^df['appID'].isin([278,382]))&(True-df['appPlatform'].isin([2]))],df代表数据集DataFrame,app等代表列名;

6、Python class 中带一条下划线_ 的变量保护类型只能允许其本身与子类进行访问,不允许被 from module import *;而带__两条下划线的变量__foo,只允许被本身类使用;__foo__是特殊变量定义方法,一般用于系统变量;

7、The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all():关于DataFrame报上述错误的时候,一般是你用merge、concat等拼接方法,导致它的索引发生了重叠,在后续循环体的时候,如果你用到索引,就会报错;改错的方法是:df.reset_index(drop=True),删除原来索引,重建一个索引就可以。

8、能不能python2.7就别用,尤其是解析中文json格式,导致的问题有以下几个:(1)乱码-python2.7默认unicode编码 (2)由于乱码问题引入"\"字符导致loads报错,并且错误类型千奇百怪

### Python 常见报错及其解决方案 #### 1. `cv2.error` 报错分析与解决 当运行 OpenCV 的图像显示函数 `imshow()` 出现如下错误时: ``` cv2.error: OpenCV(3.4.8) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:382: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow' ``` 此错误表明传递给 `imshow()` 的图像数据无效,通常是因为图像未成功加载或为空。以下是可能的原因及对应的解决办法: - **原因一**: 图像路径错误或文件不存在。 - 确保指定的图像路径正确无误,并且该路径下的文件可访问[^1]。 - **原因二**: 加载图像失败。 - 使用 `cv2.imread()` 方法读取图像时返回的是 None 或者空矩阵。可以通过打印图像形状来验证是否正常加载: ```python import cv2 image = cv2.imread('path_to_image.jpg') if image is None: print("Image load failed.") else: print(image.shape) ``` - **原因三**: 图像尺寸为零。 - 如果图像被意外修改或者损坏,则可能导致其宽度和高度均为零。可以尝试重新下载原始图片并再次测试[^1]。 --- #### 2. `TypeError: 'float' object is not callable` 错误解析 如果遇到以下类型的错误提示: ``` TypeError: 'float' object is not callable ``` 这通常是由于变量名覆盖了内置函数名称引起的冲突。例如,在代码中定义了一个名为 `sum` 的浮点型变量之后再调用同名的标准库函数就会引发此类异常[^2]。 ##### 示例问题代码片段 ```python w[1] = w[1]-0.5(t1 * w[7] + t2 * w[8]) * h1 * (1.0-h1) * l[1] ``` ##### 改正后的版本 在此处添加必要的运算符即可修复语法上的缺陷: ```python w[1] = w[1] - 0.5 * (t1 * w[7] + t2 * w[8]) * h1 * (1.0 - h1) * l[1] ``` 另外需要注意的一点是在表达式内部保持括号匹配良好以及遵循正确的优先级规则[^2]。 --- #### 总结 对于任何编程语言中的错误消息来说,理解它们所传达的信息至关重要。通过仔细阅读这些反馈信息可以帮助快速定位潜在的问题所在位置进而采取适当措施加以修正。针对上述两种特定情况分别提供了详细的排查流程及相关建议供参考使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值