介绍

Python是一门相对容易掌握的语言,但是由于假设了很多事情,因此犯错误非常容易。 此外,这些错误可能会在很长一段时间内被忽略。 在我其他前四个菜鸟Python错误之前。

避免这些新手Python错误

他们可能会工作,但可能会更好。

今天,我将分享更多在Python 3.8中容易犯的错误。

№1:+ =

在许多情况下,我当然会犯的一个错误是获取+ =操作数。 假设必须用两个独立的操作数来完成加法似乎太容易了,一个用于加法,另一个用于断言。 幸运的是,Python(以及许多其他编程语言)支持可以同时执行数学运算和断言运算的操作数。

代替:

x = x + 5

做:

x += 5

№2:位置自变量符号

在大多数现代脚本语言中,可以将两种主要类型的参数用作函数的参数:

位置和关键词。

在python 3.8发行之前,还没有办法表示位置参数,这使得位置参数默认值基本上是不可能的。 但是,由于更改是在Python 3.8中对此进行了更新,因此我们可以使用。 您应该使用它们,因为位置参数是具有出色性能的优质Python代码的基础。 如果您的代码需要用Python补偿的一件事,尤其是在机器学习时,那可能就是性能。

关键字参数在函数定义时评估一次。 这可能特别不利于递归算法的性能。 而且,如果您要编写成本函数,则绝对必须使用位置参数。 这并不是说根本不应该使用它们,但是,只要有可能,最好使用位置参数。

代替:

def numbers(custom, five=5,ten=10,fifteen=15):

total = five + ten + fifteen + custom

return(total)

做:

def numbers(custom,\,five=5,ten=10,fifteen=15):

total = five + ten + fifteen + custom

return(total)

同样重要的是要记住,此功能是相当新的,因此仅使用位置参数以提高性能的概念将仅限于Python 3.8+

№3:初始化返回

尽管这当然并不常见,并且可能是一个相当大的菜鸟动作,但我已经看到人们尝试在其初始化函数中执行返回。 在Python的面向对象的世界中,每次实例化类时都会调用__init__函数。 初始化函数对于设置变量,移动数据和构造类型而言非常有用。 功能强大,责任重大,Python的__init__函数应用于类初始化,而不是监视,不循环,不直接执行,仅用于类初始化。 并请(我有经验的人正在这样做!)

不要返回init!

(这没有任何意义!)

№4:循环依赖

当编写一个大型Python程序包时,每个程序段都可以实现相似的目标,通常,您的程序包将彼此依赖。 这可能会带来很大的问题,并可能导致一些被称为"循环依赖项"的事情。 发生这种情况时,当模块周围的不同位置尝试相互访问时,您可能会遇到问题。

№5:空格还是缩进?

如您所知,Python使用缩进而不是定界符将代码包含在其他代码中。 对于许多人来说,这使代码更易于阅读和编写,尽管主观上我个人鄙视它。 但是,在其他语言中,我通常倾向于使用缩进(Tab键)来缩进代码。但是,根据PEP8,应该为缩进使用四个空格。 老实说,这是我只有在与很多人一起进行项目时才遵循的原则。 对我而言,只要保持一致,我就不会将空格或缩进视为重要的事情,但从正式意义上讲,您应该使用空格。 话虽如此,在编写用于某项工作的实际代码或需要许多其他用户遵守的大型项目时,遵循PEP8的标准可能是一个好主意。

№6:块迭代

当执行迭代的for循环时,编写全长的for循环可以很容易地在代码中表达您的想法。 但是,通常,如果您需要执行的操作仅占用一行,则最好循环一行。 这不仅会使您的代码更漂亮,更简洁,而且还可以提高性能。

代替:

for i in x:

i += 5

做:

[i + 5 for i in x]

№7:实习弦

对于最后一个要考虑的错误,我想谈谈实习琴弦。 在某些情况下,Python会尝试重用不可变的对象,而字符串实习就是这种实际作用的一种情况。 所有长度为1的字符串都被屏蔽。 字符串中除ASCII字符,数字和下划线外没有其他任何内容。

在这里,我尝试创建两个不同的对象a和b,但这不是Python所做的。 Python实际上是b指向a的指针,而不是产生新的字符串。 但是,如果我们添加ASCII字符:

因此,在使用不可变字符串时请牢记这一点,因为它无疑给我带来了很多麻烦。

python 3.7.3 运算7错误_Python中通常不应该犯的7个错误相关推荐

  1. python 不安全的包或方法_Python中的10个常见安全漏洞及修复方法

    写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...

  2. python用保留字while实现无限循环_Python中无限循环需要什么条件

    无限循环 如果条件判断语句永远为 true,循环将会无限的执行下去. 如下实例 #!/usr/bin/python # -*- coding: UTF-8 -*- var = 1 while var ...

  3. python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承

    1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...

  4. 一般编译器错误_Java程序员最容易犯的10个错误

    人非圣贤,孰能无过.都说Java语言是一门简单的编程语言,基于C++演化而来,剔除了很多C++中的复杂特性,但这并不能保证Java程序员不会犯错. 在开发 Java 软件时可能会遇到许多类型的错误,但 ...

  5. 上传附件显示服务器i o错误,电脑中打开CDR文件出现I/O读错误提示的解决方法

    ‍ CorelDraw是一款专业图形设计软件,平面设计.网页设计等领域都会涉及.如果出现打开电脑中的CDR文件后,提示"I/O读错误"的情况,应该要如何进行解决呢?这时,我们可以参 ...

  6. python怎么查看代码错误_python中的错误如何查看

    python常见的错误有 1.NameError变量名错误 2.IndentationError代码缩进错误 3.AttributeError对象属性错误 4.TypeError类型错误 5.IOEr ...

  7. python中自定义错误_Python中的自定义错误消息

    所以我在练习单元测试,我有一个关于错误消息的问题.我正在尝试创建一个自定义错误消息,当测试失败时将显示该消息.这是一个基本的Hello World程序.测试运行得很好,但下面是我得到的错误消息.在F ...

  8. python复制出现错误_Python中的错误和异常

    前言 错误是程序中的问题,由于这些问题而导致程序停止执行.另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程. python中会发生两种类型的错误. 语法错误 逻辑错误(异常) 语法错 ...

  9. python表示逻辑与运算的关键字_Python 逻辑与位运算

    简单的赋值和 print 留作课前预习,直接解读逻辑和位运算部分. 逻辑并不涉及高阶知识,以下基于部分代码作一解读: print((3 > 2) and (3 < 5)) 我们用 指代实数 ...

最新文章

  1. ctfmn.exe——藏在字体目录FONTS下的***
  2. SASS初学者入门(转)
  3. csuoj 1350: To Add Which?
  4. linux shell命令分布执行,Linux学习笔记:bash特性之多命令执行,shell脚本
  5. java实现数据库内容修改_数据库更改到Java环境中实现可持续和平
  6. qdialog 只有点击才能获得焦点_使用金属激光切割机时该注意什么才能保证产品质量?...
  7. sklearn学习 5.降维算法PCA和SVD
  8. a标签去掉下划线_html常用标签、包含关系、常用术语,以及网页设计中的字体分类
  9. [活动]问卷调查:打造更好用的Visual Studio 2008
  10. Android高级模糊技术[转]
  11. Python微信、QQ自动发消息
  12. Flask学习笔记之:jinja2变量过滤器以及自定义过滤器
  13. linux程序休眠,Linux 休眠原理与实现
  14. java graphics颜色_在Java Graphics对象中设置背景色
  15. python中pixels函数_Python的PIL库中getpixel方法的使用
  16. dockerfile拉取私库镜像_Dockerfile From 私有库认证问题
  17. C++ 检测程序是否在运行
  18. 求一份 电力猫 QCA6410 原理图等
  19. 李红教授:抑郁的性别差异
  20. 计算机组成和工作原理【详细讲解】

热门文章

  1. 每日一皮:努力寻找Bug的程序员
  2. 每日一皮:据说程序员都喜欢这些东西...
  3. 每日一皮:代码出现Bug的三种表情!
  4. 实战matlab之并行程序设计.pdf,实战Matlab之并行程序设计_IT教程网
  5. UML之类图和包图,对象图
  6. oracle9i在windows上的dataguard配置
  7. YOLOv5-Lite 使用笔记
  8. Python-OpenCV——亮度和对比度
  9. pytorch map低的增强训练
  10. linux 编译 编解码