python缩进格式错误的是_19个常见的python错误和异常

19个常见的python错误和异常

错误总是不可避免,尤其是在初学阶段,本文收集整理了1个常见的python错误

1. 忘记添加:

在if, elif, else, for, while, class,或者使用def定义函数的名称后面忘记添加:,就会引发 SyntaxError

if 3 > 4

print('ok')

这是一种非常明显的错误,大多数编辑器在你写代码的时候就会用红色的波浪线提示你

2. 误将 = 当做 ==

a = 4

if a = 4:

print('ok')

即便是多年编程经验的老手也会偶尔犯这种错误,写的太着急了,就少打了一个=,得到的自然也是SyntaxError

3. 错误的缩进空格数量

if 1==1:

print('1')

print('2')

这段代码将引发错误“IndentationError: unindent does not match any outer indentation level” ,一次缩进是4个空格,这一点务必要牢记

4. 错误使用range函数

lst = [1, 2, 3]

for i in range(lst):

print(lst[i])

这段代码的本意是通过索引来遍历列表,但错误的使用了range函数,引发了错误“TypeError: 'list' object cannot be interpreted as an integer”, 正确的做法如下

lst = [1, 2, 3]

for i in range(len(lst)):

print(lst[i])

5. 尝试修改字符串的内容

字符串是不可变对象,无法修改字符串里的内容,下面的代码将会引发错误“TypeError: 'str' object does not support item assignment”

s = "i like python"

s[0] = 'I'

print(s[0])

6. 尝试将非字符串数据与字符串连接

print('I have ' + 3 + " books")

上面的代码尝试将字符串与int类型数据连接在一起,由于他们类型不同,会导致错误“TypeError: must be str, not int”

7. 字符串缺少引号

print('hello world)

创建字符串可以是用一对单引号,或者一对双引号,或者一对""", 上面的代码会引发错误“SyntaxError: EOL while scanning string literal”

8. 使用未定义的变量

sname = "lilei"

print('my name is ' + name)

print语句中需要用到的变量name事先并没有被定义,就会引发错误“NameError: name 'name' is not defined”

9. 调用对象没有的方法

string = 'PYTHON'

# 经过一些操作后,string变成了None

string = None

print(string.lower())

string原本是字符串,但进过一些操作后,变成了其他对象,可能是int,或者None,不论变成什么,总是它都不再是字符串,没有了lower方法,这时你再去调用lower方法就会报错“AttributeError: 'NoneType' object has no attribute 'lower'”

10. 访问不存在的索引

lst = [1, 2, 3]

print(lst[6])

列表最大的索引是2,代码里尝试访问索引6就会引发索引错误“IndexError: list index out of range”

11. 使用一个不存在的key

需要通过key来操作字典,如果key不存在,就会引发错误“KeyError”

dic = {

'name': 'lili',

'age': 14

}

print(dic['sex'])

12. 使用保留字做变量

class = 'python'

print(class)

python的保留字不能作为变量,上面的代码会引发错误“SyntaxError”

13. 使用不存在的内置函数

lst = [1, 2, 3]

print(avg(lst))

这个错误与第8个错误相似,都是使用了一个不存在的对象

14. 在函数内修改全局不可变对象

这是一个比较复杂的错误,先来看下面的代码

a = 10

def func():

print(a)

func()

程序正常执行,可以输出10,对代码稍作修改

a = 10

def func():

print(a)

a = 20

func()

多了一行a = 20后,再次运行代码就会报错“UnboundLocalError: local variable 'a' referenced before assignment”,为什么会这样呢?a原本是一个全局变量,在第一段代码里可以正常访问,但是第二段代码里尝试对变量a进行修改,一旦有了修改这个动作,解释器就认为变量a是一个局部变量,而不在是全局变量。那么在a = 20这条语句之前尝试输出a的内容就会报错因为在执行print(a)时,局部变量a还不存在。

15. 修改range的返回值

lst = range(10)

lst[0] = 20

print(lst)

range函数创建一个整数序列,但这个序列并不是列表,而是一个迭代器,无法使用索引来进行任何操作,否则就会引发错误"TypeError: 'range' object does not support item assignment"

16. 使用 ++ 或 --操作

a = 0

a++

print(a)

很多语言都支持 ++ 操作,但很遗憾python并不支持,上面的代码会报错“SyntaxError: invalid syntax”,上面的代码可以修改成这样

a = 0

a += 1

print(a)

17. 函数调用时参数数量错误

错误1

def func(a, b):

return a + b

print(func(4))

错误2

def func(a, b):

return a + b

print(func(4, 4, 5))

函数需要两个参数,错误1里在调用函数时只提供了1个参数,错误2里提供了3个错误,都会引发TypeError,错误内容分别是“TypeError: func() missing 1 required positional argument: 'b'” 和 “TypeError: func() takes 2 positional arguments but 3 were given”

18. 缺少安装包

import requests

如果你并没有安装requests库,程序在执行时就会报错“ImportError: No module named requests”,不要慌,使用pip安装就好了

19. 文件路径错误

f = open('a.txt')

print(f.read())

如果根本不存在a.txt这个文件,那么就会报错“FileNotFoundError: [Errno 2] No such file or directory: 'a.txt'”, 打开一个不存在的文件,就会引发FileNotFoundError。这个错误,对于初学者来说来烦恼了,尤其是windows用户,他们有时候会信誓旦旦的说,这个文件存在啊!

程序是不会骗人的,它说不存在,就一定是不存在,你的文件地址一定是错了,检查一下路径里究竟用的是/ 还是 \\, 另外检查一下是不是隐藏了文件的后缀。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

json string 格式_GO小知识之如何做JSON美化

经常有些小知识想分享出来,但又构不成体系,一直觉得文章形式发出不太合适。准备以 "知乎想法" 分享出来,但发现代码展示不太友好。还是发文章吧,该类分享将以 "小知识" 为前缀。后端http接口测试常需要打印 J…

2019计算机二级java软件_2019年计算机二级Java考试冲刺题及答案(2)

1.下列数据结构中,属于非线性结构的是()。A.循环队列B.带链队列C.二叉树D.带链栈2.下列数据结构中,能够按照“先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树3.对于循环队列,下列叙述中正确的是()。A.队头指针是固定不变的B.队…

python导入模块有几种方式、各有什么特点_Python导入模块的几种姿势

作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活。在本文中,我们将探讨以下话题: 常规导入(regular…

java 对象引用 弱引用吗_谈谈Java对象的强引用,软引用,弱引用,虚引用分别是什么...

整体结构java提供了4中引用类型,在垃圾回收的时候,都有自己的各自特点。为什么要区分这么多引用呢,其实这和Java的GC有密切关系。强引用(默认支持模式)把一个对象赋给一个引用变量,这个引用变量就是一个强引用。强引用是我们最常见…

python图像几何变换_Python 图像处理 OpenCV (5):图像的几何变换

前文传送门: 图像缩放 图像缩放只是调整图像的大小,为此, OpenCV 为我们提供了一个函数 cv.resize() ,原函数如下: resize(src, dsize, dstNone, fxNone, fyNone, interpolationNone) src 表示的是输入图像&#xff0c…

java中main方法返回类型是6_[单选] Java application中的主类需包含main方法,main方法的返回类型是什么()。...

[单选] Java application中的主类需包含main方法,main方法的返回类型是什么()。 更多相关问题 关于超声在人体中传播的速度,叙述正确的有A、与人体组织的弹性有关B、与人体组织的密度有关C、与人 患者女,50岁,2年前超声发现甲状腺右叶单发实性结节, 0.7 cm0.5 cm。先后数家…

linux中python编辑器_Linux下9款最好的Markdown编辑器

首先, Markdown是使用Perl编写的,简单、轻量级的工具,允许用户编写纯文本格式和高效的html或者XHTML。它实际上是一个易于阅读,易于编写纯文本的语言和文本到HTML的转换的软件工具。 希望你有一点了解,Mrakdown是什么&…

java监听数据库操作_第十六篇——JDBC操作数据库之监听器

JavaWeb应用中,很多的地方都和session有关。因此session相关的事件监听器,在日常工作中非常有用。有时候我们需要统计当前在线的人数和访问人数总数,此时就可以使用监听器技术来很简单的实现这种功能。注意:session并不是浏览器关…

pythonsuper函数_怎么使用python super函数调用父类

怎么使用python super函数调用父类 发布时间:2020-11-19 09:19:47 来源:亿速云 阅读:93 作者:小新 小编给大家分享一下怎么使用python super函数调用父类,希望大家阅读完这篇文章后大所收获,下面让我们一起…

java listview颜色_[摘]android listview选中某一行,成选中状态颜色高亮显示

构造自己的adapter,在getView中,设置颜色,点击item,刷新listview。代码:view plaincopy to clipboardprint?import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;impor…

python2.7安装matplotlib_Ubuntu-Python2.7安装 scipy,numpy,matplotlib 和pip

一、 scipy,numpy,matplotlib sudo apt-get install python-scipy sudo apt-get install python-numpy sudo apt-get install python-matplotlib python import scipy import numpy import pylab scipy.test() numpy.test() pylab.test() 二、pip 1、先说一下什么是pip pip 是“…

instring java_Decode a string in Java

java中decode字符串:public class Utils {private static Pattern validStandard Pattern.compile("%([0-9A-Fa-f]{2})");private static Pattern choppedStandard Pattern.compile("%[0-9A-Fa-f]{0,1}$");private static Pattern va…

加装的硬盘进入后点不了文件夹_在外接移动硬盘上制作win to go教程

有很多使用Mac Book的小伙伴免不了要使用一些Windows下才有的软件(强行暗示Solidworks),这类的大型软件在虚拟机当中运行稳定性又不太好,所以双系统便成了许多人的选择,但boot camp让本就拮据的机身内存雪上加霜,由此win to go便成…

java使窗体最大化_[转]java窗体运行时最大化及关闭方法示例

其实这原本是一个有关java的基础话题,不过既然有人提出来,不妨说两句,顺便也可做为初学者的一个参考。//1.窗体启动时最大化//Frame1.javaimport java.awt.*;import java.awt.event.*;import javax.swing.UIManager;public class Frame1 exte…

python爬虫动态解析js_Python爬虫实战入门五:获取JS动态内容—爬取今日头条

F12打开网页调试工具:选择“网络”选项卡后,发现有很多响应,我们筛选一下,只看XHR响应。(XHR是Ajax中的概念,表示XMLHTTPrequest)然后我们发现少了很多链接,随便点开一个看看&#x…

openjdk怎么执行java命令_Ubuntu 18.04 上使用 OpenJDK 安装并运行 Tomcat

在Linux上安装与卸载JDK和JRE,两种常用方法:一、通过 apt-get 命令在线进行安装与卸载(会自动配置好环境变量)二、通过下载并解压 .tar.gz 包进行手动安装与手动卸载(需要手动配置环境变量)注:javac命令是JDK中的,java命令是JRE中…

vscode卸载background插件_萌妹程序员鼓励师24小时在线陪你写代码,给我吹爆这个VSCode插件...

开源最前线(ID:OpenSourceTop) 猿妹综合整理项目地址:https://github.com/SaekiRaku/vscode-rainbow-fart最近,Github上有一个名为Rainbow Fart的VSCode 插件被玩坏了,有了这个插件,程序员鼓励师这个物种就要灭绝了。为…

python webui测试ie浏览器环境配置_python+selenium做ui自动化测试用法必会

一、前言大家都知道,基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于 Python 的 SeleniumSelenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用…

python调用matlab函数_从python调用MATLAB函数

我知道这是一个老问题,已经得到答复。 但是我一直在寻找相同的东西(对于Mac),发现有很多选择与matlab交互的方法和成熟度不同。 这是我发现的: pymat 使用matlab引擎(libeng)进行通讯的低级接口…

java 获取td_[Java教程]jQuery获取table表中的td标签

[Java教程]jQuery获取table表中的td标签0 2017-07-28 00:00:08首先我来介绍一下我遇到的问题1.当有一个table表包含了标签,标签,大致可以认为是这样的:scene.ID scene.SceneName scene.QRUrl scene.LocalUrl if (!string.IsNullOrWhiteSpace(…