最近又在跟之前的同学一起学习python,一起进步,发现很多测试同学在初学python的时候很容易犯一些错误,特意总结了一下。其实这些错误不仅是在学python时会碰到,在学习其他语言的时候也同样会碰到。

错误1: 缩进

python是强制缩进的语言,很多同学在初次接触python时可能会不习惯,缩进老是犯错。比如


Python 2.7.12 (default, Sep 17 2016, 13:47:40)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> good = "ok"
File "<stdin>", line 1
good = "ok"
^
IndentationError: unexpected indent

这种错误一般会提示IndentationError,最后根据错误所在行一般都能够很快的解决问题。

错误2: 中英文符号

很多初学者是分不清中英文符号的区别的,比如说:这是英文的冒号,而这个冒号是中文的。乍一看长得差不多,但实际上确实不同的字符。比如

>>> x = 0
>>> if x == 1:
File "<stdin>", line 1
if x == 1:
^
SyntaxError: invalid syntax

上面的错误很明显,语法错误,冒号有问题。作为初学者,下面这些符号在输入的时候你可能需要警惕一些

  • 英文逗号
  • 英文冒号
  • 英文小括号
  • 英文中括号

符号不准确的情况下,一般python解释器会提示SyntaxError,遇到这个错误不要怕,想办法解决就好。

错误3:拼写错误

因为我们的母语不是英文,所以很多时候我们会把单词拼写错误而觉察不到。比如


>>> word = "hello world"
>>> print(world)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'world' is not defined

上面的情况python抱怨道:world这个变量没有定义, 很显然我们定义变量名是word。一些同学甚至会将hello world错拼成是hello word,可见对微软的office套件爱的深沉。

错误4:代码块忘了冒号

python的很多代码块结构是需要冒号的,这个我最初非常不习惯,老是忘记写,比如


>>> if 1 == 2
File "<stdin>", line 1
if 1 == 2
^
SyntaxError: invalid syntax

这里if后面要跟冒号来引出下面的代码块。忘记冒号的时候一般会报语法错误。

错误5: IDE综合症

有些同学喜欢一开始就使用IDE,因为一些不错的IDE是有语法错误提示的,所以当你敲错了以后,代码编辑器内可能充斥着红色或黄色的波浪线,不过有时候这些线可能不是很准确,就导致大家有些手足无措,不敢放心大胆敲代码,渐渐的挫败感累积,然后放弃。

另外很多同学喜欢在IDE内直接运行python代码,导致很多时候传参不便,无法得到想要的结果。

其实新手可以先土一点,尝试不用IDE,等熟练一些了再使用也不迟。

错误6:只看不写或者只写不看

有些同学只看书,不写代码,结果除了疑惑越来越多以外,代码能力提升速度其实有限

有些同学只写代码,不看别人写的代码,结果一些常见套路不会,进步速度也有限

代码其实要多看,多看别人写的代码,python标准库里的代码尽管不容易,但是可以看一下,github上的一些开源项目,也可以找一些简单的来看;写一些能让自己有成就感的代码,从简单的开始,逐渐复杂,循序渐进。

综上,读完这边文章,你应该了解这些点

  • SyntaxError: invalid syntax:这是语法错误
  • IndentationError: unexpected indent: 这是缩进错误
  • NameError: name 'world' is not defined: 这是变量没定义
  • 出错没关系,解决掉就好了
  • 代码要多看多写
  • 万事开头难,坚持到最后才有收获

小白学python时候总会遇到的几个问题的更多相关文章

  1. 小白学 Python(8):基础流程控制(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  2. 小白学 Python(2):基础数据类型(上)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...

  3. 小白学 Python(3):基础数据类型(下)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...

  4. 小白学 Python(4):变量基础操作

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 前面的文章中,我们介绍了 ...

  5. 小白学 Python(5):基础运算符(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. 小白学 Python(6):基础运算符(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. 小白学 Python(7):基础流程控制(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. 小白学 Python(9):基础数据结构(列表)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  9. 小白学 Python(10):基础数据结构(列表)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

随机推荐

  1. canvas拖拽效果

    canvas拖拽和平时用的js拖拽是有区别的 普通的js是设置目标为绝对定位,再根据鼠标的移动来改变left和top的值 canvas是获得了鼠标的位置,直接在目标点进行重新绘制 下面给一个简单的拖拽 ...

  2. (APIO2014)序列分割

    题解: 我也不知道为啥上午上课讲了我昨天看的3题 这题关键在于发现操作顺序无关的 可以发现最终答案是任意两段乘积的和 那这个东西显然是可以dp的 然后可以斜率优化一波 nklongn 另外上课讲的是当 ...

  3. BZOJ1786 [Ahoi2008]Pair 配对 动态规划 逆序对

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1786 题意概括 给出长度为n的数列,只会出现1~k这些正整数.现在有些数写成了-1,这些-1可以变 ...

  4. 4.Django|ORM模型层

    ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...

  5. 《Android进阶之光》--Material Design

    接上篇<Android进阶之光>--Android新特性 No1: 组件: 1)底部工作条-Bottom Sheets 2)卡片-Cards 3)提示框-Dialogs 4)菜单-Menu ...

  6. 11,EasyNetQ-调度事件与定时发布

    许多业务流程都要求将事件安排在未来的某个日期. 例如,在与客户进行初次销售联系之后,我们可能希望在将来某个时间安排后续电话. EasyNetQ可以通过其未来发布功能帮助您实现此功能. 例如,我们在这里 ...

  7. C语言--pow()函数实现

      为什么自己实现一个pow()函数呢?昨天在Linux操作系统中调用这一个函数时,一直报错,也没有查找到具体的原因.故心血来潮实现这一函数功能. 函数所在头文件:   在"math.h&q ...

  8. Codeforces.600E.Lomsat gelral(dsu on tree)

    题目链接 dsu on tree详见这. \(Description\) 给定一棵树.求以每个点为根的子树中,出现次数最多的颜色的和. \(Solution\) dsu on tree模板题. 用\( ...

  9. Delphi发布ActiveX控件 制作CAB包 数字签名相关

    文件: SignTool.rar 大小: 84KB 下载: 下载 最近我正在研究ActiveX技术.我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序.这个控件产生一 ...

  10. 安装NVIDIA驱动时禁用自带nouveau驱动

    安装英伟达驱动时,一般需要禁用自带nouveau驱动,按如下命令操作: sudo vim /etc/modprobe.d/blacklist-nouveau.conf 添加如下内容: blacklis ...