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

流畅 Python 第二版(GPT 重译)(八)

这就是为什么注释中值是 Python 类 str int,而不是字符串 'str' 'int'。...(如 +=)默认处理方式,以及如何对其进行重载 本章新内容 鹅类型Python 一个关键部分,但 numbers ABCs 在静态类型不受支持,因此改变了示例 16-11 以使用鸭子类型而不是针对...我们不会实现__invert__,因此如果用户在Vector实例尝试~v,Python 将引发TypeError并显示清晰消息:“一元~错误操作数类型:'Vector'。”...如果反向方法调用返回NotImplemented,那么 Python 将引发TypeError,并显示标准错误消息,如“不支持操作数类型:Vectorstr”。...现在避免使用numbers ABCs,因为它们不受 PEP 484 支持,而且在运行时使用无法静态检查类型来说似乎不是一个好主意。

14610

疯狂元组

你好,是征哥,今天分享一道 Python 题目,可能会让你涨点知识。 题目:以下代码输出结果是什么?...接下来在 Python 解释器运行一下,看看是否符合你预期: >>> crazy_tuple = (["x","y"],) >>> crazy_tuple[0] = crazy_tuple[0]....TypeError 异常,告诉我们,元组不支持元素赋值,此时,你会选择 C,但是打印第一个元素(列表)时发现列表添加了 'z',你又选择了 B。...你又想了想,Python 是不是搞错了,既然你不支持元组内元素重新赋值,还让它赋值了,是不是搞错了,你想选择 D。 所以这很 crazy ! 现在来一起梳理一下。...具体可参考前文Python 基础系列--可变/不可变数据类型 最后的话 本文分享了一道有趣 Python 题目,希望对你对 Python 编程有所思考。独学而无友,则孤陋而寡闻

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

Python笔记(第三章)

《元组》 什么是元组,元组理解成一个不可进行更改列表,换个理解方式,如列表申请元素,可以看见并进行修改等一定高级操作,但是元组不一样它更像申请了一张可视图片,可以观测元素,但不能对其更改。...,请问元组标志性符号是什么(提示;列表是[中括号]哦) 一位长得挺帅同学回答到;“小括号”,没错刚开始也是这么理解,但是这个是错误,具体哪里错了,看例子。...type()方法 type方法返回参数类型 这里天均为什么又提到了type方法呢?...,注意傻子后面还有个逗号,如果不加Python就把它当成字符串而不是元组,只有元组才能与元组进行拼接 看一下错误信息 >>> temp = temp[:3] + ('傻子') + temp[3:] Traceback...不妨一下笔记,在实验一下,毕竟实验才是巩固知识是的最好方式

28020

以往Python文章总结

,脑袋嗡嗡,不过还好,它赋值很不一般,像C语言第一条应该是先申请一个变量然后在接收赋值,但Python不一样,直接因为赋值是什么类型就变成什么类型变量。...,请问元组标志性符号是什么(提示;列表是[中括号]哦) 一位长得挺帅同学回答到;“小括号”,没错刚开始也是这么理解,但是这个是错误,具体哪里错了,看例子。...0开始 可以通过分片方法得到一个范围元素集合 还有很多共同操作符 list()方法用于把一个可迭代对象转换为列表(迭代是什么?...() 正在努力地往前爬 >>> 笔记; 在源代码层次,还不叫一个对象,而是称源代码为一个class类,大家可能会注意到定义一个函数后跟了个陌生参数(self)这个是什么呢?...: 'int' object is not callable >>> 怎么又报错了,书上是故意,但是是很不愿意报错,因为会浪费时间 这里简要说明 TypeError: 'int' object is

1.4K30

一文教你读懂 Python异常信息

什么是 Traceback Traceback 是 Python 错误信息报告。...后面提到错误信息等词都表示Traceback。 当你程序导致异常时,Python 将打印 Traceback 以帮助你知道哪里出错了。...错误输出最后一行一般会告诉你引发了什么类型异常,以及关于该异常一些相关信息。错误信息前几行指出了引发异常代码文件以及行数。...原因就是以为 a_list 是列表但是实际它是元组, 元组是不可变类型支持添加元素操作所以出错了。这里也告诉大家,以后定义变量名时候也要主要规范问题,否则就容易出现这种,期望类型错误情况。...它们每一个都能很好地告诉你哪里出了问题。 前两个示例尝试将字符串整数相加。然而,它们有细微不同 第一个是尝试在 int 中拼接一个 str。 第二个是尝试在 str 中拼接一个 int

2.4K10

Python学习笔记(二)·函数

调用abs函数: print(abs(-20)) #20 print(abs(20)) #20 调用函数时候,如果传入参数数量不对,会报TypeError错误,并且 Python 会明确地告诉你:...: abs() takes exactly one argument (2 given) 如果传入参数数量是对,但参数类型不能被函数所接受,也会报TypeError错误,并且给出错误信息:str是错误参数类型...3, 1, -5)) # 3 2.1.2 数据类型转换 Python 内置常用函数还包括数据类型转换函数:int 把其他数据类型转换为整数 / float / str / bool int('123...让我们修改一下my_abs定义,对参数类型检查,只允许整数浮点数类型参数。...但是,在语法,返回一个 tuple 可以省略括号,而多个变量可以同时接收一个 tuple,按位置赋给对应值,所以,Python 函数返回多值其实就是返回一个 tuple,但写起来更方便。

1.6K20

Python编程常见出错信息及原因分析(2)

这种错误一般是因为记错了对象属性或方法,也可能是前面某段代码代码修改了变量x类型,自己却忘记了。...遇到这种错误时,首先应使用type()函数确定当前位置x是什么类型,然后可以在使用dir()确定该类型对象是否具有'***'属性或方法。...: 这种错误比较隐蔽一些,表面看上去好像是某个类型对象不具有某某某属性,而实际是函数或方法误用。...does not support item assignment 错误原因分析与解决方案: 在自己编写代码时,一般并不会发生这样错误,因为作为Python程序员我们肯定知道元组字符串是不可变容易对象...: 在Python中,列表、元组、字符串range对象支持使用整数作为下标去访问指定位置元素值;列表支持使用整数作为下标去修改指定位置元素值;字典支持使用指定键去访问或修改对应值。

3.3K70

从入门到实践,Python Type Hints

默认参数 Python 函数支持默认参数,以下是默认参数 Type Hints 写法,只需要将类型写到变量默认参数之间即可。...可变参数 Python 函数一个非常灵活地方就是支持可变参数,Type Hints 同样支持可变参数类型标注。...鸭子类型 Python 一个显著特点是其对鸭子类型大量应用,Type Hints 提供了 Protocol 来对鸭子类型进行支持。...使用注释编写 来看一个 tornado 框架例子(tornado/web.py)。适用于在已有的项目修改,代码已经写好了,后期需要增加类型标注。...]是对 pymysql 库封装,使其支持使用 with 语法调用 execute 方法,并且将查询结果从 tuple 替换成 object,同样也是对 Type Hints 应用。

75620

Python类型注解

也就是说,Python 跟以前一样自由,即使你进行了错误类型赋值,只要不直接引发错误,程序依旧可以运行。...最后,Python 中几种基本变量类型得到支持: a: int = 3 b: float = 14 c: str = 'abc' d: bool = False 很简单吧。让我们继续。...(0, 0) 如果你用Python 3.9+ 版本,甚至连 typing 模块都不需要了,内置容器类型支持了复合注解: def mix(scores: list[int], ages: dict...可以发现 Optional 实际是 Union 特例:Optional[X] Union[X, None] 是等价。 Callable 我们知道, Python函数区别并不明显。...类型检查失败 # 因为"name"是字符串,而dict_2键为整型 代码中定义了两个泛型 K V,对它两类型没有任何限制,也就是说可以是任意类型

46410

Python3 与 C# 基础语法对比(Function专栏-新排版)

) 过几天我们会直接 像写文章一般Coding,一边写文章一边Code,最后还能生成需要页面 1.Python函数定义 1.1.定义一个无参函数 定义一个空函数:(不写pass就报错了) # 空函数定义...函数返回仍然是单一值~元组 test=div_have_returns(1,2) print(test) (3, -1) # 定义函数时,需要确定函数名参数个数 # 如果有必要,可以先对参数数据类型检查...这边说说Python匿名函数,这就没有C#优美了,先看看公式: lambda参数:表达式 看个简单案例实践一下: # Python对匿名函数支持有限,只有一些简单情况下可以使用匿名函数 # lambda...global时也可修改全局变量 4.5.可变类型不可变类型 有人可能会问了,之前基础部分自增自减说了一下: Python分为:可变类型:list,dict,set等等不可变类型int,str,tuple...不一样咯~ 声明两个相同值浮点型变量,查看它们id,发现它们并不是指向同个内存地址(这点int类型不同) 这方面涉及Python内存管理机制,Pythonint类型较短字符串进行了缓存,无论声明多少个值相同变量

1.3K30

TypeError报错处理

哈喽,大家好,是木头左!一、PythonTypeError简介这个错误通常表示在方法调用时,参数类型不正确,或者在对字符串进行格式化操作时,提供变量与预期不符。...二、错误源头:字符串格式化奥秘字符串格式化是Python一个非常实用功能,它允许根据一定格式将变量插入到字符串中。然而,当提供变量与字符串中占位符不匹配时,就会触发TypeError。...这不仅仅是一个错误,更是Python在告诉:“嘿,你在这里做错了!”。理解这一点,对于避免这类错误至关重要。...三、深入解析:为什么会发生这种错误TypeError通常发生在以下几种情况:方法调用时参数类型不匹配。对非字符串类型执行字符串格式化操作。在不支持类型使用链式比较操作。...5.3 案例三:链式比较操作类型问题问题描述在不支持类型使用了链式比较操作,如1 < x < '3'。解决方案确保链式比较中所有元素都是可比较类型,或者分开进行比较。

10610

TypeError报错处理

哈喽,大家好,是木头左!一、PythonTypeError简介这个错误通常表示在方法调用时,参数类型不正确,或者在对字符串进行格式化操作时,提供变量与预期不符。...二、错误源头:字符串格式化奥秘字符串格式化是Python一个非常实用功能,它允许根据一定格式将变量插入到字符串中。然而,当提供变量与字符串中占位符不匹配时,就会触发TypeError。...这不仅仅是一个错误,更是Python在告诉:“嘿,你在这里做错了!”。理解这一点,对于避免这类错误至关重要。...三、深入解析:为什么会发生这种错误TypeError通常发生在以下几种情况:方法调用时参数类型不匹配。对非字符串类型执行字符串格式化操作。在不支持类型使用链式比较操作。...5.3 案例三:链式比较操作类型问题问题描述在不支持类型使用了链式比较操作,如1 < x < '3'。解决方案确保链式比较中所有元素都是可比较类型,或者分开进行比较。

12210

一个关于 += 谜题

原文链接: 一个关于 += 谜题 今天在看书过程中发现了一个问题,还挺有意思,分享给大家。 下面两个 Python 表达式会产生什么结果?...因为 tuple支持对它元素赋值,所以会抛出 TypeError 异常。 以上两个都不是。 以上两个都是对。 当时看到这个问题,第一反应就是选 2。...因为 tuple 是不可变对象,不支持对它元素赋值,会报错。 但事实,这道题正解是 4。...还可以在 Python Tutor 分析一下: 网站地址: https://pythontutor.com/ 这个网站可以可视化分析 Python 运行过程原理。...可以从两个方面来解释: 一、对象类型 Python对象可以分成两类,可变对象不可变对象,比如一些内置类型: 可变对象:list,set,dict。

27120

流畅 Python 第二版(GPT 重译)(六)

例如——在几个其他代码中——int类型支持分别用于输出基数 2 基数 16 bx,而float实现了用于固定点显示f用于百分比显示%: >>> format(42, 'b') '101010...如果您正在创建具有合理标量数值类型,还可以实现__int____float__方法,这些方法由int()float()构造函数调用,在某些情况下用于类型强制转换。...协议和鸭子类型 早在第一章中,我们就看到在 Python 中创建一个完全功能序列类型并不需要继承任何特殊类;你只需要实现满足序列协议方法。但我们在谈论什么协议呢?...在选择与 AttributeError 一起显示错误消息时,一个检查对象是内置 complex 类型行为,因为它们是不可变,并且有一对数据属性,real imag。...⁵ 但对于可能有数千个组件Vector实例来说,这是非常低效。它构建了两个元组,复制了操作数整个内容,只是为了使用tuple类型__eq__。

8610

Python学习笔记(三)——函数

调用函数 调用函数时候,如果传入参数数量不对,会报TypeError错误,并且Python会明确地告诉你:abs()有且仅有1个参数,但给出了两个: >>> abs(1, 2) Traceback...(2 given) 如果传入参数数量是对,但参数类型不能被函数所接受,也会报TypeError错误,并且给出错误信息:str是错误参数类型: >>> abs('a') Traceback (most...空函数 pass语句什么都不做,那有什么用?实际pass可以用来作为占位符,比如现在还没想好怎么写函数代码,就可以先放一个pass,让代码能运行起来。...让我们修改一下my_abs定义,对参数类型检查,只允许整数浮点数类型参数。...但是,在语法,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应值,所以,Python函数返回多值其实就是返回一个tuple,但写起来更方便。 3.

54410

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券