当前位置: 首页 > news >正文

常见的 Python 错误及其解决方案

此文整理了一些常见的 Python 错误及其解决方案。

在这里插入图片描述

1、SyntaxError: invalid syntax

说明:无效的语法是最常见的错误之一,通常是由于编写代码时违反了 Python 的语法规则。可能的原因:

  1. 忘记在 ifwhilefor 等语句后写冒号,或者将冒号写成分号或其他符号。解决方案:更改为英文半角冒号。
  2. 代码中可能存在未正确关闭的括号,或者在字符串中使用的引号未正确匹配。解决方案:检查括号,引号处。
  3. 条件表达式中出现等号(=)。解决方案:将其更改为比较运算符(==)。
  4. 定义没有参数的函数时未添加括号。解决方案:添加括号。

查看错误提示信息,通常会指出出错的行数和位置。合适的代码编辑器也会在代码中标记出语法错误。

2、Syntax Error: non-default argument follows default argument

说明:定义的参数顺序不正确。可能的情况:

默认值参数未放在所有参数的末尾。解决方案:更改参数的顺序。

3、SyntaxError : invalid character in identifier

说明:标识符中存在无效字符,通常是由于在标识符(变量名、函数名、类名等)中使用了无效的字符引起的。在 Python 中,标识符必须遵循一定的命名规则,不能包含特殊字符或空格,只能包含字母、数字和下划线,并且必须以字母(或者下划线 _)开头。可能的原因:

  1. 标识符中包含了不被 Python 认可的特殊字符,如 @#$% 等。
  2. 标识符中包含空格或制表符。
  3. 标识符以数字开头。
  4. 标识符与 Python 的保留字或关键字冲突。

4、TypeError: can only concatenate str (not “XXX”) to str

说明:只能将字符串与其他字符串连接起来。可能的原因:

尝试将字符串与非字符串数据类型(如整数、浮点数、布尔值或序列对象)连接起来。解决方案:在连接之前使用 str() 函数转换数据类型。

5、TypeError: f() takes exactly 2 arguments (1 given)

说明:向函数提供的参数不足。可能的原因:

定义具有两个参数的函数,但在调用时仅提供一个参数。解决方案:提供缺少的参数以完成函数调用。

6、TypeError: ‘tuple’ object does not support item assignment

说明:无法修改元组元素。可能的原因:

尝试通过索引修改元组元素。解决方案:将元组转换为列表或移除修改操作。

7、ValueError: could not convert string to float:‘12.2s’

说明:无法将字符串转换为浮点数。可能的原因:
float() 函数接受了非浮点字符串数据类型。解决方案:修改为浮点字符串。

8、ValueError: invalid literal for int() with base 10

说明:向 int() 函数传递的参数无效。可能的原因:

  1. 字符串中包含了非数字字符。解决方案:确保字符串中只包含数字字符。可以使用 str.isdigit() 方法来检查字符串是否只包含数字字符。
  2. 尝试将包含小数点的字符串转换为整数。解决方案:如果字符串可能包含浮点数,使用 float() 函数将其转换为浮点数,然后再将其转换为整数。
  3. 过大或过小的数字:尝试将超出整数表示范围的数字字符串转换为整数。解决方案:数字太大或太小以至于超出了 Python 的整数表示范围,使用 float() 或其他数据类型来处理超大数值。

9、ValueError: substring not found

说明:在尝试查找一个子字符串时,该子字符串未在目标字符串中找到。这个错误可能会在使用字符串的 index()find()rfind() 等方法时触发。解决方案:搜索前检查。

10、ZeroDivisionError: division by zero

说明:0 不能用作除数。可能的原因:执行除法、整除或取余运算时,使用 0 作为除数。解决方案:在进行除法操作之前,检查除数是否为零;使用条件语句避免除以零的情况发生。

11、AttribteError: ‘module’ object has no attribute xxx’

说明:模块没有相关属性。可能的原因:

  1. 拼写错误:尝试访问的属性或方法名的拼写不正确。解决方案:检查拼写,确保使用正确的属性或方法名。
  2. 命名 .py 文件时使用 Python 保留字或与模块名称相同。解决方案:修改文件名
  3. 模块重命名:如果导入了一个模块并使用了别名,那么需要使用别名来访问模块的属性或方法。解决方案:使用正确的别名来访问属性或方法。

12、AttributeError: ‘Obj’ object has no attribute ‘attr’

说明:对象没有相关属性。可能的原因:

  1. 拼写错误:您尝试访问的属性或方法名的拼写不正确。解决方案:检查拼写,确保使用正确的属性或方法名。
  2. 如果属性或方法是私有的(以双下划线 __ 开头),则不能直接访问。解决方案:如果要访问私有属性或方法,可以使用单下划线 _ 或通过类的方法进行访问。
  3. 对象类型错误:有时,可能在一个对象上调用应该是类的方法,或者尝试在一个非对象上调用对象方法。解决方案:确保按照正确的方式使用对象方法和类方法。对象方法需要在对象上调用,而类方法需要在类上调用

13、FileExistsError: [Errmo 17] File exists

说明:该文件已存在。解决方案:首先检查文件是否存在,如果存在,请不要再次创建它。

14、FileNotFoundError: [Ermo 2] No such file or directory

说明:请求的文件或目录不存在。解决方案:检查文件或目录的路径是否正确

15、IndentationError: expected an indented block

说明:需要缩进块。可能的原因:

  1. 在定义函数或类时没有缩进。 解决方案:添加缩进
  2. ifforwhile 语句的结构下没有缩进。解决方案:添加缩进

16、IndentationError: unexpected indent

说明:缩进错误。可能的原因:除了缩进之外,代码前面还会出现额外的空格。解决方案:删除多余的空格。

17、IndentationError: unindent does not match any outer indentation level

说明:缩进问题。可能的原因:

  1. 同一级别的代码块使用不同的缩进规则(代码未对齐)。解决方案:调整缩进。
  2. 有非法字符或其他格式的不可见内容。解决方案:删除非法字符。

18、IndexError: list index out of range

说明:列表索引超出范围,可能的原因:

  1. 获取元素时指定的索引值超过列表的长度。解决方案:修改索引值
  2. 列表为空,获取元素时出错。解决方案:在获取之前检查它是否不为空。

19、DirectoryError: [Ermo 21] Is a directory

说明:尝试对文件进行操作但提供了目录。可能的原因:将目录作为文件进行操作,例如,如果 “test” 是一个目录,则使用 os.remove(test) 将导致错误。解决方案:添加相应的文件名

20、KeyError: ‘age’

说明:键错误。可能的原因:

  1. 基于键获取字典的值时,指定的键不存在。解决方案:修改为已有的键。
  2. 删除了不存在的键。解决方案:在删除之前检查它是否存在。

21、ModuleNotFoundError: No module named‘pymysql’

说明:模块不存在。可能的原因:

  1. 模块名称拼写错误。解决方案:更正拼写
  2. 模块未导入。解决方案:使用 import 语句导入模块。
  3. 环境问题:有时,虽然已经安装了模块,但在运行代码的环境中找不到它。这可能是因为正在使用的环境中未安装。解决方案:确保在虚拟环境中安装了所使用的模块。
  4. 某些模块可能不支持使用的 Python 版本。解决方案:确保所用 Python 版本与导入模块兼容。查看模块文档以了解它所支持的 Python 版本。

22、NameError:name test’ is not defined

说明:在代码中尝试使用一个未定义或不存在的变量或名称(‘test’),或者在当前的作用域内无法找到该名称。可能的原因:

  1. 变量或名称未定义。解决方案:在使用之前,定义变量或名称。
  2. 变量可能在不同的作用域内定义(例如函数内部或条件块内部),而试图在该作用域之外访问它。解决方案:如果需要在函数外部或不同的作用域内使用变量,在全局作用域内定义它。

23、RecursionEror:maximum rcusion depth exceded in comprison

说明:超出最大递归深度。解决方案:禁止无限递归,设置递归深度。

24、Timeout error [WinError 10060] No response or response from host after a period of time. Connection attempt failed.

说明:连接超时。可能的原因:

  1. 数据库连接超时。解决方案:检查数据库连接配置信息是否正确。
  2. 请求网址超时。解决方案:检查 URL 是否正确且可以访问。
  3. 连接到 FTP 服务器超时。解决方案:检查用于连接到 FTP 的参数是否正确。

相关文章:

常见的 Python 错误及其解决方案

此文整理了一些常见的 Python 错误及其解决方案。 1、SyntaxError: invalid syntax 说明:无效的语法是最常见的错误之一,通常是由于编写代码时违反了 Python 的语法规则。可能的原因: 忘记在 if、while、for 等语句后写冒号,或者…...

文章评论以及回复评论邮件通知(Go 搭建 qiucode.cn 之八)

要说到评论。无疑是博客应用的灵魂所在了,它也正是站长与博友、博友与博友之间互相交流的桥梁,倘若少了它,博客应用将变得暗淡无关,索然无味,恍如一具躺在床榻上的植物人,终究是无法与周边人言语的。 也正是有了评论,站长在该博客应用所发表的博文,博友才得以通过评论,…...

java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?

目录 基本介绍 有什么不同?? ArrayList的扩容机制 ArrayLIst的基本使用 ArrayList和Vector 基本介绍 还记得我们的java集合框架吗, 我们来复习一下, 如图: 可以看出来 ArrayList和LinkedList 都是具体类, 他们都是接口List的实现类. 但是他们底层的逻辑是不同的, 相信…...

matlab 点云最小二乘拟合空间直线(方法一)

目录 一、算法原理1、空间直线2、最小二乘法拟合二、代码实现三、结果展示四、可视化参考本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、空间直线 x...

详解junit

目录 1.概述 2.断言 3.常用注解 3.1.Test 3.2.Before 3.3.After 3.4.BeforeClass 3.5.AfterClass 4.异常测试 5.超时测试 6.参数化测试 1.概述 什么是单元测试: 单元测试,是针对最小的功能单元编写测试代码,在JAVA中最小的功能单…...

Nginx的安装及负载均衡搭建

一.Nginx的安装 1)准备安装环境 yum install -y make gcc gcc-c pcre-devel pcre zlib zlib-devel openssl openssl-develPERE PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。 nginx的http模块使用pcre来解…...

JVM学习笔记(一)

1. JVM快速入门 从面试开始: 请谈谈你对JVM 的理解?java8 的虚拟机有什么更新? 什么是OOM ?什么是StackOverflowError?有哪些方法分析? JVM 的常用参数调优你知道哪些? 内存快照抓取和MAT分…...

fastjson 序列化问题:Comparison method violates its general contract

fastjson 序列化问题:Comparison method violates its general contract 问题重现 今天在测试接口的时候,调用了Mybatis Plus 分页查询的接口,然后将查询的结果转换成 Json字符串的形式,结果报了这个错误: java.lang.…...

Angular安全专辑之二——‘unsafe-eval’不是以下内容安全策略中允许的脚本源

一:错误出现 这个错误的意思是,拒绝将字符串评估为 JavaScript,因为‘unsafe-eval’不是以下内容安全策略中允许的脚本源。 二:错误场景 testEval() {const data eval("var sum2 new Function(a, b, return a b); sum2(em…...

十一、Linux用户及用户组的权限信息如何查看?如何修改?什么是权限的数字序号?

目录: 1、认知权限信息 2、rwx? (1)总括: (2)r权限: (3)w权限: (4)x权限: 3、修改权限 (1&a…...

ahooks.js:一款强大的React Hooks库及其API使用教程(二)

一、ahooks.js简介二、ahooks.js安装三、继续ahooks.js API的介绍与使用教程21. useLocalStorageState22. useSessionStorageState23. useClickAway24. usePersistFn25. useCreation26. useFullscreen27. useInViewport28. useInfiniteScroll29. usePagination30. useDynamicLi…...

ARM 配置晶振频率

文章目录 前言串口乱码问题定位内核修改晶振频率uboot 修改晶振频率番外篇 前言 上篇文章《ARM DIY 硬件调试》介绍了 DIY ARM 板的基础硬件焊接,包括电源、SOC、SD 卡座等,板子已经可以跑起来了。 但是发现串口乱码,今天就来解决串口乱码问…...

最强自动化测试框架Playwright(37)-网络

介绍 Playwright 提供 API 来监控和修改浏览器网络流量,包括 HTTP 和 HTTPS。页面执行的任何请求,包括 XHR 和获取请求,都可以被跟踪、修改和处理。 模拟接口 查看我们的 API 模拟指南,了解有关如何 模拟 API 请求&#xff0c…...

Ant Design Pro 前端脚手架 配置混合导航

Ant Design Pro脚手架 点击查看阅读 混合导航: 顶部导航和侧边栏导航实现联动效果,点击不同的顶部导航按钮会显示对应的子菜单项。 实现点: 1. 路由的配置 菜单展示 我们可以在 route 中进行 menu 相关配置,来决定当前路由是否…...

tcl学习之路(五)(Vivado时序约束)

1.主时钟约束 主时钟通常是FPGA器件外部的板机时钟或FPGA的高速收发器输出数据的同步恢复时钟信号等。下面这句语法大家一定不会陌生。该语句用于对主时钟的名称、周期、占空比以及对应物理引脚进行约束。 create_clock -name <clock_name> -periood <period> -wa…...

Hlang-中英双语言编程语言使用手册

文章目录 介绍Hlang基本使用下载配置环境变量特性中文关键字支持中文符号混合编程中文错误提示终端多行输入基本数据类型整数浮点数列表字符串基本操作变量定义逻辑判断基本运算条件判断循环函数介绍 Hlang是一款基于Python编写的支持中英文混合编程的动态语言。其简单易上手,…...

centos 7 安装docker

系统配置&#xff1a; CentOS关闭selinux sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config关闭防火墙(可选)或者放行相应端口 systemctl stop firewalld.service && systemctl disable firewalld.service配置内核IP 转发 net.ipv4.ip_forward1 dock…...

Spring环境搭建、SpringIOC容器基础、SpringDI基础

文章目录 Spring环境搭建、SpringIOC容器基础、SpringDI基础一、SpringIOC核心思想二、搭建Spring环境步骤三、SpringIOC容器使用步骤四、SpringIOC 总结五、SpringDI&#xff08;依赖注入&#xff09;1、基本概念2、实现方式&#xff08;1&#xff09;set 注入&#xff08;2&a…...

CentOS7.9手工配置静态网络流程

进入网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 配置 TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTPROTO"static" //static 配置静态网络 DEFROUTE"yes" IPV4_FAILURE_FATAL"no…...

JVM面试题-1

1、什么是JVM内存结构&#xff1f; jvm将虚拟机分为5大区域&#xff0c;程序计数器、虚拟机栈、本地方法栈、java堆、方法区&#xff1b; 程序计数器&#xff1a;线程私有的&#xff0c;是一块很小的内存空间&#xff0c;作为当前线程的行号指示器&#xff0c;用于记录当前虚拟…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

Python的__call__ 方法

在 Python 中&#xff0c;__call__ 是一个特殊的魔术方法&#xff08;magic method&#xff09;&#xff0c;它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时&#xff08;例如 obj()&#xff09;&#xff0c;Python 会自动调用该对象的 __call__ 方法…...

Qt Quick Controls模块功能及架构

Qt Quick Controls是Qt Quick的一个附加模块&#xff0c;提供了一套用于构建完整用户界面的UI控件。在Qt 6.0中&#xff0c;这个模块经历了重大重构和改进。 一、主要功能和特点 1. 架构重构 完全重写了底层架构&#xff0c;与Qt Quick更紧密集成 移除了对Qt Widgets的依赖&…...