Python两处容易理解错误的设计

Python错误即特性:7种常见错误助你精进编程技能 需要注意的是,部分Python错误并不是“漏洞”,而是帮助用户提升Python技能的特性。如果我们有意识地将这些错误作为工作指导,理解这些错误就变得至关重要。为帮助学习,本文将探讨7种作为特性的Python错误。 让我们开始吧。 阅读详情
  • 函数内部修改 可变类型 的变量时不会视作局部变量(除非函数内有该变量的赋值运算符),因为如果做局部变量处理则修改语句势必报错,此处的理解不会有歧义:
s = 'test'
d = {True:1,2:'Second'}

def f():
    d['name']='China'
    print(d,'\n')
    s = 1
    print('函数f()内的局部变量:\n\t\ts={0}\tid={1}\n'.format(s,id(s)))

f()
print('全局变量:\n\t\ts={0}\tid={1}'.format(s,id(s)))

  • a+=x跟a=a+x执行后的结果看似相等,但实际结果是否同一个存储对象,取决于a是可变类型 or 不可变类型
  • a=a+x的本质 :python会直接去调用内置的__add__
  • a+=x的本质 : python会 优先调用 内置的 __iadd__ ,若a的类型无该方法定义则 自动退化 为调用__add__。并且,目前只有可变类型 list 才内置有__iadd__,其余的可变类型、所有的不可变类型只有__add__ ):
    print(' 下面使用 “可变类型” 进行测试 '.center(60,'*'))
    L2=L = [1,2]
    print(id(L2),id(L))
    L2 = L2 + [3,4]                #调用__add__进行修改:修改后将L2重新指向一块新的内存区域用于保存运算后的结果
    L += [3,4]                     #调用__iadd__进行“原定修改”:修改前后L指向同一块内存区域
    print(L2,id(L2))
    print(L,id(L))
    
    print(' 下面使用 “不可变类型” 进行测试 '.center(60,'*'))
    S2=S = 'Hello '
    print(id(S2),id(S))
    S2 = S2 + 'Python'              #调用__add__进行修改:修改后将S2重新指向一块新的内存区域用于保存运算后的结果
    S += 'Python'                   #没有内置__iadd__,自动退化为调用__add__:修改后将S重新指向一块新的内存区域用于保存运算后的结果
    print(S2,id(S2))
    print(S,id(S))
    
    print(' 下面测试下6种主要数据类型是否内置有方法__iadd__ '.center(60,'*'))
    print('int有__iadd__:',hasattr(int,'__iadd__'))
    print('str有__iadd__:',hasattr(str,'__iadd__'))
    print('tuple有__iadd__:',hasattr(tuple,'__iadd__'))
    print('dict有__iadd__:',hasattr(dict,'__iadd__'))
    print('set有__iadd__:',hasattr(set,'__iadd__'))
    print('list有__iadd__:',hasattr(list,'__iadd__'))
    
    ********************* 下面使用 “可变类型” 进行测试 *********************
    1969521407360 1969521407360
    [1, 2, 3, 4] 1969521390912
    [1, 2, 3, 4] 1969521407360
    ******************** 下面使用 “不可变类型” 进行测试 *********************
    1969521343216 1969521343216
    Hello Python 1969524143472
    Hello Python 1969524143408
    *************** 下面测试下6种主要数据类型是否内置有方法__iadd__ ***************
    int有__iadd__: False
    str有__iadd__: False
    tuple有__iadd__: False
    dict有__iadd__: False
    set有__iadd__: False
    list有__iadd__: True
    
    Process finished with exit code 0
    

     

Moveit Servo学习 MoveIt Servo功能与配置指南 摘要:本文介绍了MoveIt Servo的功能特性,包括支持关节速度、末端执行器速度和位置控制,以及安全功能如奇点检查、碰撞检测等。通过示例展示了如何运行伺服控制demo,详细解析了关键节点和话题。最后以睿尔曼rml_63机器人为例,讲解了如何自定义伺服配置文件,包括环境设置、输入输出参数配置、平滑滤波器和规划场景监控等关键配置项。文章提供了从基础使用到自定义机器人配置的完整指导,帮助开发者实现高效的实时运动控制。 阅读详情

相关推荐

LDPC码译码原理——概率公式推导

怎么说呢,一直以来都想写一下博客。近半年多来我一直在学习LDPC码译码上的东西,主要是在FPGA实现上的,所以这次想写一些关于这方面的内容,包括译码的原理、仿真以及实现。(当然是基于准循环LDPC码上实现的)不过呢,我写这个的初衷是为了让初学者理解入门用的,而不是在大牛面前班门弄斧,有错误之处欢迎大家批评指正。不知道会不会有人一开始像我一样,为了学好LDPC码,先去好好了解其它的诸如RS码或者是卷...

stand_by_me123的博客 2万+

Python错误码设计

首先,我们可以定义一个错误码类,该类将包含错误码和对应的错误消息。# 示例错误码SUCCESS = 0, "操作成功"INVALID_ARGUMENT = 1, "无效的参数"FILE_NOT_FOUND = 2, "文件未找到"# ... 可以继续添加其他错误码return "未知错误"# 使用示例try:# 假设某个操作可能失败。

Python老吕的博客 1531

【Docker】Ubuntu安装Docker

1 安装Docker 安装Docker有三种方法,这里只用repository安装,更详细的安装方法可以看官方文档。 1.1 添加repository 首先更新apt: sudo apt-get update 安装一些包让apt可以通过https使用repository: sudo apt-get install \ apt-transport-https \ ca-certif...

widiot的博客 9950

python常见错误总结

所以,无论是多出来空格,还是缺少空格,整个代码都不会运行,并且仅返回一个错误函数。例如,有一个包含10个元素的列表,索引在0到9之间,如果试图访问索引10或11或更多的元素,就会产生IndexError。索引是项目在数组或列表中的位置,当我们尝试从列表中访问元素或从列表中不存在的索引中访问元组时,就会发生这种异常。出现变量名错误,可以查看变量是否赋值,是否存在大小写不统一或者变量名写错了的情况,找到后加以修正。错误原因:在使用“+”做拼接的时候,必须使用字符串,或者 把数字用str()函数转化成字符串。..

《人工智能原理与实践》作者 5562

西门子PLC1200与CB1241模块的Modbus RTU从站配置全流程(附串口调试技巧)

本文详细介绍了西门子S7-1200 PLC与CB1241通信模块实现Modbus RTU从站配置的全流程,包括硬件接线规范、TIA Portal工程组态、通信指令编程及串口调试技巧。通过实战案例和常见错误处理方案,帮助工程师快速搭建稳定的工业通信系统,提升自动化设备的互联互通能力。

weixin_29165725的博客 329

VS Code + Codex 在 WSL 中使用的正确姿势

Codex 登录只能在本地完成。文件仍可通过 UNC 路径访问 WSL → 本地 Codex 就能照常工作。避免在 WSL 内重复安装/登录 Codex 扩展。

yangguangwuyue的博客 9859

Python新手必看:如何理解并解决ImportError错误

最近在学习Python的时候,遇到了一个让人头疼的错误提示:"ImportError: cannot import name HubDatasetModuleFactoryWithoutScript"。通过系统性地分析和解决ImportError,你不仅能解决当前问题,还能深入理解Python的模块系统,为以后的学习打下坚实基础。ImportError是Python中常见的错误类型之一,它表示Python在尝试导入某个模块或模块中的特定名称时遇到了问题。特别适合新手练习和调试代码。

GoldenleafRaven13的博客 991

STM32CubeMX平台F4系列固件下载核心要点

详解STM32CubeMX平台下F4系列单片机的固件包下载方法与常见问题,重点讲解stm32cubemx固件包下载流程及配置技巧,帮助开发者快速完成开发环境搭建。

weixin_42575505的博客 897

Python中常见错误

异常处理链接 目录   IndentationError(缩进错误): SyntaxError(语法错误): TypeError:(类型错误) NameError(命名错误): ZeroDivisionError(零分割错误): LookupError(查找者): IndexError(索引错误): ValueError(值误差): AttributeError(属性错误):...

苗.苗.苗 1580

深入解析FPGA中的GTX高速收发器架构与设计原理

本文深入解析了FPGA中GTX高速收发器的核心架构与设计原理。文章将GTX比作数据“高速公路”,详细拆解了其PMA(物理媒介适配层)与PCS(物理编码子层)的双层结构,阐述了串并转换、时钟恢复等关键技术,并提供了时钟源选型(QPLL/CPLL)、上电复位流程及信号完整性调试等实战指南,是掌握高速接口设计的必备知识。

f6g7h8i9j的博客 222

LVGL hal indev(porting evdev)

LVGL中对输入设备的管理是单例实现的,而在Linux的输入设备是多个的,所以需要对其进行改造成多例实现。

Bigan(安)的博客 3346

深入理解 Python 的“左闭右开”设计哲学

Python的“左闭右开”区间设计体现了其核心哲学——以数学逻辑为基础,追求简洁性和一致性。这种设计不仅降低了认知负担,更体现了Python“用一种明确方式解决问题”的理念,将数学思维与编程实践完美结合。

DaPiCaoMin的博客 1484

HanLP的分词

HanLP的分词

sikh_0529的博客 1万+

python异常错误怎么看?

异常信息从下向上看。

Drug discovery 4680

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

简单去理解python程序设计

Python程序设计的特点Python语言被称为简单、易读、语法元素少。高度抽象的语法使编程者能够使用更少的代码来实现强大的程序。另一方面,Python支持面向对象、命令式、函数式和过程式编程等多种编程范式,使其能够灵活应对各种编程要求。从网页开发、数据科学到人工智能,Python在各个领域得到了广泛的应用,其库和框架如Djangoo、Flask、Pandas和TensorFlow等都大大降低了开发门槛,为程序设计提供了大量的预制解决方案。另外,Python的跨平台性使程序能够在多个操作系统中无缝运行,这对

简单的编程博客 1260

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python 中的缩进错误

错误是阻止计算机程序完美运行的错误或问题,缩进错误就是其中之一。编译阶段出现缩进错误。缩进错误是当代码中的制表符或空格不遵循预期模式时发生的编译时错误。这通常是语法错误。缩进错误是Python中非常常见的错误。因为Python是一种解释性语言,它的解释器会逐行读取代码。在Python编码中,我们必须编写适当格式的代码,并完美地利用间隙,使代码可执行。这种对间隙的完美利用被称为缩进。如果用户编写的代码没有正确缩进,则会产生缩进错误。

aobulaien001的博客 2820

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python一直报缩进错误_python中常见错误及解决方法

python常见的错误有1.NameError变量名错误2.IndentationError代码缩进错误3.AttributeError对象属性错误详细讲解1.NameError变量名错误报错:>>> print aTraceback (most recent call last):File "", line 1, in NameError: name 'a' is not defined解决方案...

weixin_39794347的博客 1万+

python答案错误_python中的断言错误怎么理解

python的断言语句和if 分支有点类似,它用于对一个bool表达式进行断言,如果该bool表达式为True,该程序可以继续向下执行;否则程序会引发 AssertionError 错误。例如如下程序:s_age = input("请输入您的年龄:")age = int(s_age)assert 20 < age < 80print("您输入的年龄在20和80之间")上面程序中粗体字代码断言 ag...

weixin_39981632的博客 437

python程序设计风格描述错误的是_以下对 Python 程序设计风格描述错误的选项是...

以下对 Python 程序设计风格描述错误的选项是答:Python 中允许把多条语句写在同一行正常使用极限状态验算包括( )。答:抗裂验算 裂缝宽度验算 变形验算对于溺水现场急救要点说法正确的是()答:快速除去溺水者口中的杂物 水性不好时,可借助长棍将溺水者拖上岸脂肪酸β-氧化是起始于脂肪酸的羧基端答:√语言系统中演变发展最快的是词汇答:√中国大学MOOC: 《诗经》是我国第一部诗歌总集,它...

weixin_36431907的博客 2163

python 常见错误提示

一、TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误 错误例子: age=18 print(‘我的年龄是’+age) 报错信息:TypeError: can only concatenate str (not &amp;quot;int&amp;quot;) to str 这是类型错误,提示必须是一个字符串,不能是数字。 解决方法:在使用“+”做拼接的时候,必须...

miss0 8451

第一个python程序错误排查

本文为在python开发过程中常见的一些错误 1. 手误 若执行如下操作: print("Hello python") 结果出现手误变成入下操作: pirnt("Hello python") 执行结果如下: 该错误为名称错误:"pirnt"名字没有定义. 2. 将多个 print() 写在一行 在这里着重提一下: python中每行代码负责完成一个动作. 若执行如下操作: print("He...

helloword233的博客 456

Python 中的 50 条常见错误

Python中的错误梳理

m0_55877125的博客 7817

Python运行的17个时新手常见错误小结

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 文章目录1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)2)使用 = 而不是 ==(导致“SyntaxError: invalid syntax”)3)错误的使用缩进量。4)在 for 循环语句中忘记调用 len() (导致“TypeError: 'list' object cannot be inter

python爬虫程序学习教程 4318

使用Python遇到的错误、错误原因及解决方法

错误信息:pip install pandas 报错 ‘ERROR: Package 'pandas' requires a different Python: 3.5.0 not in '>=3.6'’ 解决方法:这是由于pip默认安装扩展包的最新版本,先去查找对应版本,再指定pandas的版本即可。 time.sleep报错'str' object...

数据之旅的点点滴滴 3万+

Python运行错误详解

Python3的关键字有:and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield。在Python中是没有这样的操作符的。

csdn_manong1的博客 1696

chatgpt赋能python:Python错误提示:如何解决常见的Python错误

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

findyi123的博客 369
上一篇: Python的日期和时间及其处理的常用方法
下一篇: 厌倦了C++,CS&ML博士用Rust重写Python扩展,还总结了9条规则
Python_xiaowu
博客等级 码龄5年 3096粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值