首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

挑战30天学完Python:Day15 错类类型

如果代码运行失败,Python解析器一般会报出相关错误提示,其中包含了代码出错行和错误类型。它有时候还会给出对应修复建议。...IndexError IndexError表示索引错误,通常出现在list下角标引用超出范围。...: list index out of rang >>> 在上边例子中,Python引发了一个 IndexError 错误,因为定义数字列表索引范围仅为0-4,因此最终程序抛出了索引超出范围错误。...尝试从数学模块调用pi函数,而不是pi。因此会引发一个AttributeError错误,这意味着该函数模块中不存在。我们将PI改成pi来修正它。...GitHub:点击底部原文跳转查看 系列历史阅读: Day14 高级函数、闭包和装饰器 Day13 列表推导式和Lambda Day12 模块Modules Day11 函数 Day10 循环

18520
您找到你想要的搜索结果了吗?
是的
没有找到

Python基础(一)

-25.5%2.25得到1.5 << 左移,把一个数二进制左移一定数目,也就是右边补多少个0, 如 2 << 2得到8,二进制10变成1000 >> 右移 把一个数比特向右移一定数目,也就是右边删除位数...下面就是 break 和 continue 主要 区别: break:跳出整个循环 continue:跳出本次循环,继续执行下一次循环 希望大家牢记。 函数 函数通过def定义。...判断列表中是否包含某项可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True; 支持索引和切片操作;索引时若超出范围,则IndexError; 使用函数len()查看长度...;使用del可以删除列表项,eg: del l[0] # 如果超出范围,则IndexError list函数如下: append(value)  ---向列表尾添加项value l = [1, 2,...) print l #[1, 100, 2, 2, 1000] pop([i])  ---返回i位置项,并从列表中删除;如果不提供参数,则删除最后一个项;如果提供,但是i超出索引范围,则异常IndexError

88810

Python基础语法(2)

5. continue语句     continue语句用来调过当前循环剩余语句,然后继续下一轮循环。 二、函数   函数通过def定义。...默认参数     通过使用默认参数可以使函数一些参数是‘可选’。...判断列表中是否包含某项可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True;支持索引和切片操作;索引时若超出范围,则IndexError;使用函数len()查看长度...;使用del可以删除列表项,eg: del l[0] # 如果超出范围,则IndexError     list函数如下: append(value)  ---向列表尾添加项value l = [...) print l #[1, 100, 2, 2, 1000] pop([i])  ---返回i位置项,并从列表中删除;如果不提供参数,则删除最后一个项;如果提供,但是i超出索引范围,则异常IndexError

1.3K130

Python入门教程笔记(三)数组

事实上字符串也可以看作是一种特殊列表,它只能按顺序存放多个字符。通过for循环访问列表每一个元素方式,我们称为迭代。 而对于一个空列表,使用for循环访问,将不会打印任何东西。...L = [] for item in L: print(item) 二一、按索引访问list 由于列表list是一个有序容器,所以list里面,每一个元素都有一个唯一位置,我们称之为索引...range 因此,我们使用索引方式访问列表时,一定要特别注意不要越界。...对于列表,除了可以向列表添加元素,删除列表元素以外,列表已有的元素,也是可以修改通过索引指定位置,并赋值新元素,即可替换列表中原有的元素。...Bob最近三次成绩列表,再通过下标[2],则可以得到Bob第三次成绩。

60410

Python 基础语法(一)「建议收藏」

转义符 ‘\’ 自然字符串, 通过字符串前加r或R。 如 r”this is a line with \n” 则\n会显示,并不是换行。...5. continue语句     continue语句用来调过当前循环剩余语句,然后继续下一轮循环。 四、函数   函数通过def定义。...判断列表中是否包含某项可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True;支持索引和切片操作;索引时若超出范围,则IndexError;使用函数len()查看长度...;使用del可以删除列表项,eg: del l[0] # 如果超出范围,则IndexError     list函数如下: append(value)  —向列表尾添加项value l = [1,...) print l #[1, 100, 2, 2, 1000] pop([i])  —返回i位置项,并从列表中删除;如果不提供参数,则删除最后一个项;如果提供,但是i超出索引范围,则异常IndexError

56540

一文教你读懂 Python 中异常信息

记住这个技巧非常有用哦。 IndexError 当你尝试从序列(如列表或元组)中检索索引,但是序列中找不到该索引。此时就会引发 IndexError。...range 通过 IndexError 错误消息最后一不能得到一个准确信息,只知道一个超出范围序列引用以及序列类型,本例中是一个列表。...我们需要往上阅读错误信息,才能确定错误具体位置。这里我们得知错误代码是 a_list[3]原因是索引3 超出了列表范围,因为最大就是1(索引下标从0 开始)。...这是因为 SyntaxError 是 Python 尝试解析代码时引发,实际上代码并没有执行。...ValueError 当对象值不正确时就会引发 ValueError。这个和我们前面说因为索引值不在序列范围内,而导致 IndexError 异常类似。

2.4K10

Python基础 | 新手学Python时常见语法错误和异常

语法错误又称解析错误,是我们刚接触学习Python 时最容易遇到错误,区区别于异常而言,语法错误非程序执行时逻辑错误; 即使语句或表达式语法上是正确,但在尝试执行时,它仍可能会引发错误,而这个执行时检测到逻辑错误被称为异常...解析器会输出出现语法错误那一行,并显示一个“箭头”,指向这行里面检测到第一个错误。...IndexError:当序列下标索引超出范围时 In [10]: lis = [1,2,3,4,5] In [11]: lis[6] Traceback (most recent call last)...,常常在程序执行过程中想复制部分打印信息时候错使用 Control+C想着复制却使得程序中断情况。...OSError 操作系统错误 WindowsError 系统调用失败 ImportError 导入模块/对象失败 LookupError 无效数据查询基类 IndexError 序列中没有此索引(index

7K41

Python自学教程5-字符串有哪些常用操作

字符串也可以一个个字符取,大多数情况下,都可以使用索引方式得到某个单一字符。...索引为 -1 表示获取倒数第一个字符,索引为 -2 表示获取倒数第二个字符。为什么正序数索引从 0 开始,倒序就不能从 0 开始呢?因为索引为 0 不能同时表示两个字符,会造成指令冲突。...print(man[-1]) #i超出索引范围报 IndexError 错误 print(man[8])字符串截取索引一次只能获取一个字符,切片可以一次获取多个。...一般我们web开发中模板渲染就是基于这种技术。字符串分割split 通过某个分隔符分割字符串,分割后得到一个列表。 如果没有指定分隔符,则把整个字符串作为唯一元素存放到列表中。...,它可以把一个列表通过特定连接符组成一个字符串。

41810

Python:What the f*ck Python(下)

迭代列表时删除元素 29 中,附加了一个迭代列表时添加元素例子,现在来看看迭代列表时删除元素。...pop 则会删除指定索引元素并返回它,如果指定了无效索引则抛出 IndexError 异常。 为什么输出是 [2, 4]?...列表迭代是按索引进行,所以当我们从list_2或list_4中删除 1 时,列表内容就变成了[2, 3, 4]。剩余元素会依次位移,也就是说,2索引会变为 0,3会变为 1。...由于下一次迭代将获取索引为 1 元素(即3), 因此2将被彻底跳过。类似的情况会交替发生在列表每个元素上。 29. 循环变量泄漏!...也就是说,代码原意是捕获IndexError, ValueError两种异常,但在 python2 中,必须写成(IndexError, ValueError),示例中写法解析器会将ValueError

1.7K50

Python程序员鲜为人知但你应该知道16个问题

在上段时间分享python高级编程也说到了这个问题,这个是实际开发遇到问题,好好检查你学过代码, 也许只是问题没有暴露。 可以这样改,代码如下: ? 2....有点不好懂是吧,在看看python另外一个魔法,代码如下: ? 一个分组函数,看起来很不好懂,对吧? 我们来解析下这里 代码如下: ? 4. 循环中修改列表项 代码如下: ?...思考一下,为什么 – 是因为你对列表remove,影响了它index 代码如下: ? 5. IndexError列表取值超出了他索引数 代码如下: ? 6. 重用全局变量 代码如下: ?.... ‘==’ 和 is 区别 理解是”is”是判断2个对象身份, ==是判断2个对象值,代码如下: ? 12....浅拷贝和深拷贝 我们实际开发中都可以向对某列表对象做修改,但是可能不希望改动原来列表. 浅拷贝只拷贝父对象,深拷贝还会拷贝对象内部子对象,代码如下: ? ?

45070

【Python】掌握Python中索引和切片

Python中,像字符串或列表这样有序序列元素可以通过它们索引单独访问。这可以通过提供我们希望从序列中提取元素数字索引来实现。...> IndexError: string index out of range 还可以通过提供一个负索引来访问元素,该索引基本上对应于从序列右侧开始索引。...假设我们想要得到字符串第一个字符以外所有字符。...这对字符串之类不可变对象类型没有任何区别,但是处理列表之类可变对象类型时,注意这一点非常重要。 扩展切片 Python中切片表达式附带了第三个索引,该索引是可选,指定时用作步骤。...例如,假设我们想要得到一个列表中所有具有偶数索引元素。

1.2K30

Python列表解析操作实例总结

分享给大家供大家参考,具体如下: 列表解析 Python 强大特性之一是其对 list 解析,它提供一种紧凑方法,可以通过对 list 中每个元素应用一个函数,从而将一个 list 映射为另一个...列表解析,又叫列表推导式( list comprehension) 列表解析比 for 更精简,运行更快,特别是对于较大数据集合 列表解析可以替代绝大多数需要用到 map和 filter场合...以定义方式得到列表通常要比使用构造函数创建这些列表更清晰。每一个列表推导式包括一个 for 语句之后表达式,零或多个 for 或 if 语句。...返回值是由 for 或 if 子句之后表达式得到元素组成列表。如果想要得到一个元组,必须要加上括号。...IndexError 切片取,不需要,超过边界不会异常 2.迭代中修改列表 注意,不安全,不建议这么干 但是可以 for i in l1[:]: l1.insert()…… 3.多个list合成一个

78410

上手Python之列表

数据容器 为什么学习数据容器 思考一个问题:如果想要在程序中,记录5名学生信息,如姓名。 如何做呢?...数据容器:list(列表) 为什么需要列表 思考:有一个人姓名(TOM)怎么程序中存储? 答:字符串变量 思考:如果一个班级100位学生,每个人姓名都要存储,应该如何书写程序?...列表每一个元素,都有编号称之为下标索引 从前向后方向,编号从0开始递增 从后向前方向,编号从-1开始递减 2. 如何通过下标索引取出对应位置元素呢? 列表[下标],即可取出 3....下标索引注意事项: 要注意下标索引取值范围,超出范围无法取出元素,并且会报错  列表常用操作(方法)和特点  列表除了可以: 定义 使用下标索引获取值 以外, 列表也提供了一系列功能: 插入元素...对比while,for循环更加适合对列表等数据容器进行遍历。  表示,从容器内,依次取出元素并赋值到临时变量上。 每一次循环中,我们可以对临时变量(元素)进行处理。 ​​​​​​​

4.2K10

Python 切片为什么不会索引越界?

当我们根据单个索引进行取值时,如果索引越界,就会得到报错:“IndexError: list index out of range”。...对于这个现象,其实是有点疑惑为什么 Python 不直接报索引越界呢,为什么要修正切片边界值,为什么一定要返回一个值呢,即便这个值可能是个空序列?...恰恰相反,这篇文章主要目的之一是希望得到大家回复解答。 Go 语言中,遇到同样场景时,它做法是报错“runtime error: slice bounds out of range”。...在其它支持切片语法语言中,也许还有跟 Python 一样设计。但是,还不知道有没有(学识浅薄)…… 最后,继续回到标题中问题“Python 切片为什么不会索引越界”。...其实想问问题有两个: 当切片语法中索引超出边界时,为什么 Python 还能返回结果,返回结果计算原理是什么?

1.5K20

Python程序员经常犯10个错误,这些坑你踩过吗?

为什么每次foo()调用时都要把默认值"baz"追加到现有列表中而不是创建一个新列表呢? 答案默认参数定义时求值(比如说当你首次导入模块时)。...我们只改了A.x,为什么C.x也改了? Python中,类变量在内部当做字典来处理,其遵循常被引用方法解析顺序(MRO)。...这样好处是能得到更简化和更精简代码,能更好避免程序中出现当迭代时修改一个列表这样bug。一个这样范例是列表生成式(list comprehensions)。...而且,列表生成式针对这个问题是特别有用通过更改上文中实现,得到一段极佳代码: \>>> odd = lambda x : bool(x % 2) \>>> numbers = \[n for...最后,非常感谢您阅读文章!有任何问题可以后台私信我,都很乐意解答。

50300

墨奇科技林鹏:如何用 AI 技术颠覆指纹识别?

个人对这个领域也比较感兴趣,所以博士期间开发出了一套高精度图像搜索技术,并将其运用到了指纹识别之中。这也成为了成立墨奇科技契机之一。 2017年博士毕业后就回国了。...CSDN:记得那个时候,很多初创公司都是选择切入到图像识别、人脸识别等较宽赛道,为什么你们却瞄准了指纹识别这么一个相对细分领域? 林鹏:这里有一个误区,其实指纹识别的市场并不小。...林鹏:我们研发出了高精度图像搜索引擎技术,它包含三个部分:图像自适应多尺度表示和索引系统、无标注或极少标注自学习框架,以及高速异构搜索系统。...通过这套技术我们可以实现20亿量级指纹图像秒级识别。 ? 墨奇高精准图像搜索引擎架构 CSDN:可以分别讲讲这三个部分作用及基本原理吗? 林鹏:好。...林鹏:没错,指纹识别中我们称之为「活体指纹识别」。因为传统指纹识别中,像指纹膜、假手指等欺骗手段很容易骗过指纹采集设备。因为传统按压式指纹设备得到只是一张黑白二维图像。

1.4K10

使用Python拆分和合并PDF文件

调用pdf.getPage(12)将抛出“索引超出范围”错误,因为这意味着正试图访问12页文件中第13页。...之前,我们已经创建了要提取页码列表:pages=[1,2,3,4,5,11,12]。由于Python基于0索引,我们需要将每个数字移位1。只要把所有的数字循环一遍,然后从每个数字中减去一个。...Python方法称为列表解析,或者有时Python中称为“执行循环一行程序”。...pages = [i-1 for i in pages] 图3:Python列表解析 现在我们有了正确页面索引,就可以完成PDF合并过程。...过程和上文讲述是一样,所以不会在这里重复。提示: 1.循环遍历要合并PDF文件。 2.每个PDF文件中,遍历页面,并将每个页面添加到PdfielWriter对象中。

2.4K10
领券