When Python Attacks 1of 3

原创 2004年03月29日 10:31:00

   在这篇文章中,我将记载下一些无论Python新手还是老兵都会犯的错误,来协助你的工作。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

   首先,我想说明这些例子都是第一手资料,是我从作Python教员的过程中获得的。在过去的7年中,我有幸执教了100多节Python课程,给1000多名学员上课而且看到了他们大部分的错误。也就是说,下面的例子是我看到真正的Python初学者是怎样思考的。事实上,这些错误有些是在初学Python时必犯的错误。

   “你说什么?”你可能会问,“你也在Python中犯了那么多的错误?”是的,Python可能是一种最简单最灵活的编程语言。但是它仍然有语法,数据类型,和一些不常用的地方。

   从好的一方面讲,一旦你学习Python,很多缺陷都已经被避免,这要归功于简洁的语言。Python的各个部分之间的相互作用很少,这使得BUG出现的机会也不多。当你出现一个错误的时候,Python的Runtime Error 发现和报告机制会帮助你更快的从错误中摆脱。

   但是Python编程也不是完全的不用担心,我在这里预先提示大家,以使大家有所准备。现在就让我们进入关键问题下面的三个部分把错误分类成执行中的错误,编码错误,设计错误三类。

 

  执行错误

让我们从最基础的开始,错误总是在人们刚刚学习编程的时候就随之而来了,甚至是在他们深入语法之前。如果你已经作了一些编程练习,那么这些错误看起来很简单,但如果你没作过,你可能觉得不是这样。

1.在Python提示符下编程

你可以在提示符>>>下进行编程。在Emacs,ls或edit下进入>>>并不是很少见,但是那就不是“Python”编程了。在Pthon中有很多方法调用系统命令(例如 os.system,os.popen),但是和shell下直接打命令还是有些区别的。如果你要执行一个Python文件,使用Import file,不要在shell,Emacs,下使用Python file.py.

2.文件中要打印重要信息

因为交互式提示符下自动打印返回值,你可以省下一些Print语句。这是一个很好的特性,但是你要记住在Python文件中,一定要使用打印出重要的信息,来观察输出。

3.注意Windows下的扩展名

如果你使用notepad来编程,记住当你存盘的时候,选择All files一项。并要显式的给出文件的扩展名xxx.py。否则Notepad会自动把文件存成txt型。更糟的是,Word和WordPad会给文件加上Python无法识别的格式。所以,第一原则就要注意选择all files。或者是作用更好的IDLE,在IDLE中,你也要注意显式的给出.py的扩展名。

4.Windows下Double Click图标的缺陷

在windows下可以通过双击图标的方式打开Python文件,但是这很容易出现错误。首先,文件输出窗口会在运行结束后立刻消失,如果你想让它一直开着,在文件结尾加上raw_input() 语句,同时你还要知道,当程序出现错误的时候窗口也会消失。如果要看出错信息,请使用其它方法运行文件,例如在命令行,IDLE中。

5.Import包只在第一次起作用

你要运行一个文件,你可能使用import,但是import只在第一次时候起作用,当你要覆盖一个文件,使用reload (module)。否则将返回你第一次引入的包(文件)。

6.交互式提示符下的空白行问题

module 中空白行和注释在交互式提示符下总是被忽略的。但是当你在交互式提示符下键入命令时,空白行标志着一段复合语句的结束。换句话讲,空白行告诉解释器你完成了一个复杂的句子。所以,不要在你还没有完成一个复杂语句时键入Enter键。

一会要看俞敏洪的红宝书了了,先到这里,翻的不好,糟尽原文了

python中函数的总结之三

函数总结
  • kellyseeme
  • kellyseeme
  • 2016年04月20日 20:15
  • 410

Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例

如何用一条sql语句实现批量更新?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。 复制代码 代码如下: UPDATE mytable SET myfield = CA...
  • u010159842
  • u010159842
  • 2017年12月08日 13:58
  • 144

CSAPP 六个重要实验 lab3

CSAPP 六个重要实验 lab3
  • u011368821
  • u011368821
  • 2014年09月15日 17:00
  • 3781

case when条件表达式

SQL CASE 表达式是一种通用的条件表达式,类似于其它语言中的 if/else 语句。  CASE WHEN condition THEN result  [WHEN ...]  [EL...
  • liqfyiyi
  • liqfyiyi
  • 2016年11月16日 14:07
  • 2419

Wi-Fi 爆重大安全漏洞,Android、iOS、Windows 等所有无线设备都不安全了

点击上方“程序员大咖”,选择“置顶公众号” 关键时刻,第一时间送达! 移动设备横行的时代,Wi-Fi 已成为现代人生活的必备要素之一。但近日有计算机安全专家发现,Wi-...
  • Px01Ih8
  • Px01Ih8
  • 2017年10月18日 00:00
  • 168

SQL集合函数中case when then 使用技巧

那么在集合函数中它有什么用呢 ? 假设数据库有一张表名为student的表。 如果现在要你根据这张表,查出江西省男女个数,广东省男生个数,浙江省男女个数 怎么写SQL语句?即要生成下结果表 ...
  • WuLex
  • WuLex
  • 2017年03月08日 15:02
  • 561

oracle中case when的用法总结(case when like功能)

最近大量用到了oracle的sql语句中的case when,闲下来就整理一下。 1.根据类别统计 假设现在有一组数据如下 其中,0表示单选题,1表示多选题,现在分别要统计单选题跟多...
  • Yolanda_NuoNuo
  • Yolanda_NuoNuo
  • 2017年02月21日 10:52
  • 4211

如何保护系统免受slow HTTP attacks

slow HTTP attacks是一种拒绝服务攻击(DOS)方式,这种方式主要是通过以10-100s每字节的慢速向服务器发送HTTP请求。假如一个http请求没有结束,或者这个传输速率很慢,那么服务...
  • wang_hongsha
  • wang_hongsha
  • 2014年01月02日 17:28
  • 344

Sublime Text3配置在可交互环境下运行python快捷键

在Sublime Text3下面写代码感觉很不错,但是写python的时候遇到了一些问题。 使用快捷键ctrl+b就可以运行python文件,会在当前窗口的下方出现运行的结果。 但是,要是使用了in...
  • u010223904
  • u010223904
  • 2015年06月04日 02:07
  • 22828

CASE WHEN 两种用法

举例说明SELECT CASE a.AFTER_QUALITY WHEN '0' THEN '过免维期' WHEN '1' THEN '未过免维期' ELSE '错误数...
  • ClamReason
  • ClamReason
  • 2015年04月15日 18:50
  • 3217
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:When Python Attacks 1of 3
举报原因:
原因补充:

(最多只允许输入30个字)