Python作为比较便于编写的编程语言之一,已经愈发受编程者们的欢迎。其集成开发环境(IDE)也有很多可供选择,例如Pycharm,Visual Studio,Jupyter笔记本等。无论选择哪种IDE,都可能会遇到一些错误。这些错误和问题的发生主要是由于判断失误,对特定主题缺乏深入的知识,或者仅仅可能是不小心导致的。

本篇文章总结了一些初学者常犯的5种错误,这些错误虽然特别简单,但是对于初学者来说可能会浪费比较多的时间在上面。而且由于每个人的编程习惯不同,错误状态百出,有时候也不是能从网上直接搜索到错误原因。我们还将讨论打印的错误类型,并了解原因以及如何避免出现特殊错误。

1. 缩进Indentation

缩进是指代码行或代码块开头的空格数。常用在if-else、with语句或者函数之后。通常用空格键或四个空格键缩进一次,或按一次Tab键。其在python中格外重要,可以替代其他编程语言(如C,C ++或Java)中的花括号“ {}”之类的东西。

常见的缩进错误有:

当忘记在函数或代码块的起始行中缩进时,会触发下列错误:

IndentationError: expected an indented block

当代码块或程序中应有缩进但未缩进时,会出现此错误。比如当在所需的代码块中提供两个空格,并且该特定行的描述不适合整个代码时,会触发下列错误:

IndentationError: unindent does not match any outer indentation level

代码的其中一行没有和其他缩进对齐,会触发下列错误:

IndentationError:unexpected indent

很多初学者开始学习Python时,往往会根据网站或者视频上的代码,如果盲目复制粘贴,也会发生这些错误。解决此问题的主要方法是,确保您在间距上保持一致,并通过查看每个发生的错误的描述来解决每个问题。

Trick: 尽量少使用空格,统一使用Tab键。

2. 文件名和模块名冲突

如果我们编写了一个开发脚本,保存时对其进行命名的名称和脚本中import的模块名称一致,就会触发此错误。此错误会触发ImportError,因为命名的.py文件将替换实际的现有库模块。因此,当尝试在运行模块时调用该函数时,它根本不起作用。在下面的示例中,我们将文件另存为gtts.py:

from gtts import gTTS
import ostext = “Hello, Python”
s = gTTS(test)
s.save(“my_music.mp3”)os.system(“my_music.mp3”)

ImportError:cannot import name 'gTTS' from 'gtts'

该错误其实很容易解决:只要我们避免将该脚本的名称命名为gtts.py即可。如果我们非常想使用该名称(比如感觉这个名称更能直观的看出来脚本的作用),不妨将其命名为my_gtts.py或者gtts1.py等等。

3. 用错括号

在Python中主要有三种类型的括号,每种都有特定的用途。方括号“ []”用于列表和索引,花括号“ {}”用于字典或集合,括号“()”用于元组。初学者常常会混淆使用正确的括号,从而导致可能发生的一些错误。

声明列表的其中一种方法是a = [];另一种方法是a = list()。但是如果不小心搞混了上面两种的使用,例如使用a = list[],就会出现如下语法错误。

SyntaxError:invalid syntax

在处理列表或元组的索引时,我们总是使用方括号“ []”。使用类似于x = [1, 2, 3]的列表或类似于x =(1, 2, 3)的元组时,以x(1)的形式写入索引将导致以下错误。

TypeError:'list' object is not callable

或者

TypeError:'tuple' object is not callable

Trick: 确保始终使用方括号“ []”来获取特定索引的值。例如:可以使用x [1],将返回值2。

4. 对Numpy格式的数据获取形状时使用括号

这种错误和上一个错误非常相似,在机器学习的使用过程中,我们常使用numpy这个模块。这是一个非常简单的模块,矩阵的概念我们从大学到现在也学习了太多次。但是需要注意的是:numpy中的shape是属性而不是函数,调用后将返回一个由numpy数组的形状组成的元组。示例错误如下:

import numpy as npa = np.zeros((5, 6))
a.shape()

这将触发以下错误:

TypeError:'tuple' object is not callable

Trick: 仅使用不带括号的a.shape。

5.局部变量和全局变量

局部变量是在特定代码块或代码语句中定义的变量。该局部变量只能在该特定代码块内访问,而不能在其他地方访问。形式参数标识符也充当局部变量,这些也是在函数中定义为虚拟变量的变量。

全局变量是在主程序中定义的变量,而不是在函数或特定代码中定义的变量。在整个程序中都可以访问此变量。

如果我们在主程序中使用局部变量时就会触发类似下面的名称错误:

NameError:name 'face_name' is not defined

Trick: 尽量少使用全局变量,坚持使用代码块中的局部变量,如果想在整个程序中使用该变量,请先使用全局变量对其进行定义。

结论

本文介绍了很多开始使用Python和机器学习时犯的5个最常见的错误。其实有时候我今天也会不小心烦这些错误,有时候甚至觉得自己真的很“蠢”。对于初学者来说,希望我们都可以熟悉这些错误发生的原因,以及如何避免这些问题。不要被这些简单的错误打击信心从而产生挫败感~你们只是还没有熟悉Python语言~

·  END  ·

RECOMMEND

推荐阅读

1. 深度学习——入门PyTorch(一)

2. 深度学习——入门PyTorch(二)

3. PyTorch入门——autograd(一)

4. PyTorch入门——autograd(二)

5. PyTorch入门——autograd(三)

新手常见的5个Python错误相关推荐

  1. python 混淆矩阵_新手常见的5个Python错误

    Python作为比较便于编写的编程语言之一,已经愈发受编程者们的欢迎.其集成开发环境(IDE)也有很多可供选择,例如Pycharm,Visual Studio,Jupyter笔记本等.无论选择哪种ID ...

  2. 复制的python代码格式错误_新手常见6种的python报错及解决方法

    此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们. 1.NameError变量名错误 报错: ...

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

    Python运行的17个时新手常见错误小结 1 发布时间:『 2017-11-04 11:20 』     帖子类别:『人工智能』  阅读次数:8803 (本文『Python运行的17个时新手常见错误 ...

  4. python错误-新手常见Python错误及异常解决处理方案

    写Python代码的小伙伴不可避免地会遇到代码执行错误和异常,这次就来详细且不失通俗地总结一下python中的错误和异常. 先抛出两个问题: 什么是Python错误和异常? 如何处理Python错误和 ...

  5. Python新手常见错误汇总|附代码检查清单

    写代码,出错在所难免,关键是如何快速定位错误,解决bug.错误提示,有时候并不能提供有效信息,尤其是编程新手,常常会犯一些低级错误,比如缩进不对,引号缺失,括号不全等,下面是新手常犯的一些代码错误,希 ...

  6. python写错了怎么撤回_python新手常见错误汇总

    对于新手,初学Python时,总会遇到这样那样的报错,想要弄懂Python错误信息的含义可能还不知道怎么做,这里列出了一些比较常见的Python报错问题,希望对于学习Python的人能够有些帮助. 1 ...

  7. 怎么解决python遇到问题_新手常见Python错误及异常解决处理方案

    新手常见Python错误及异常解决处理方案,异常,错误,语句,子句,代码 新手常见Python错误及异常解决处理方案 易采站长站,站长之家为您整理了新手常见Python错误及异常解决处理方案的相关内容 ...

  8. Python老司机总结新手常见10大错误

    作为python的新手,大家在上手python的时候都会或多或少的接触到一些rookie mistake,也就是菜鸟级别的错误.小编作为一个老司机也是从这些错误中一点一点的积累经验,才慢慢的能够熟练的 ...

  9. python错误类型翻译_17个新手常见的Python运行时错误

    原标题:17个新手常见的Python运行时错误 来源 | inventwithPython 翻译 | OSChina.net 当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点 ...

最新文章

  1. 【机器学习】特征提取代码汇总
  2. 设计模式之开放封闭原则
  3. LeetCode 1160. 拼写单词
  4. oracle 存储过程设置回滚点,(转)oracle 存储过程事宜使用断点回滚 -savepoint
  5. 微课|中学生可以这样学Python(例11.4):tkinter版图片查看器
  6. 银行突发事件演练方案_【工作动态】准旗联社组织开展优质文明服务应急演练,为优质服务保驾护航!...
  7. vba ado返回集合_利用VBA代码导出工作表中的图片
  8. php中的print r与echo,php中echo(),print(),print_r()的区别
  9. Vagrant 构建 LNMP 一致环境
  10. (0)C#开发环境构建——史上最容易理解的C#界面搭建
  11. Ubuntu 18.04 通过 ufw route 配置网关服务器
  12. wpf 自动完成comboxBox
  13. 搭建高性能计算环境(九)、应用软件的安装之gaussian 09
  14. 独立安装 lamp 兄弟连
  15. 基于FPGA的RS232异步串行口IP核设计
  16. WordPress二次元博客主题模板-Sakurairo v2.5.1.1
  17. 一文搞懂K-means聚类算法
  18. 关于runtime error '429'解决方案
  19. Java代码签名证书申请和使用指南
  20. button控件具体用法(CommandName, CommandArgument)

热门文章

  1. 安卓EventBus使用
  2. 关于硕士毕业论文盲审后修改稿的感悟
  3. 四川大学网安操作系统期末复习整理
  4. android开发技术可行性,Flutter技术调研及可行性结论
  5. matlab怎么把小数化为分数,matlab怎么把分数转化为小数
  6. 2020年最新省、市、区县、街道乡镇四级数据
  7. 电力电网行业IT运维方案
  8. android 淘宝天猫支付宝浏览器打开本地app传递参数打开应用内页
  9. nuxt.js做站点地图(sitemap.xml)详解
  10. 搜狗输入法 for Mac 5.4 - 强大好用的国产输入法之一