$ python ex/ex1.py File "ex/ex1.py", line 3 print "I like typing this. ^ SyntaxError: EOL while scanning string literal
Python标准异常总结 AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) FloatingPointError 浮点计算错误 GeneratorExit generator.close()方法被调用的时候 ImportError 导入模块失败的时候 IndexError 索引超出序列的范围 KeyError 字典中查找一个不存在的关键字 KeyboardInterrupt 用户输入中断键(Ctrl+c) MemoryError 内存溢出(可经过删除对象释放内存) NameError 尝试访问一个不存在的变量 NotImplementedError 还没有实现的方法 OSError 操做系统产生的异常(例如打开一个不存在的文件) OverflowError 数值运算超出最大限制 ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象 RuntimeError 通常的运行时错误 StopIteration 迭代器没有更多的值 SyntaxError Python的语法错误 IndentationError 缩进错误 TabError Tab和空格混合使用 SystemError Python编译器系统错误 SystemExit Python编译器进程被关闭 TypeError 不一样类型间的无效操做 UnboundLocalError 访问一个未初始化的本地变量(NameError的子类) UnicodeError Unicode相关的错误(ValueError的子类) UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类) UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类) UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类) ValueError 传入无效的参数 ZeroDivisionError 除数为零
在 python 脚本最前面加上 “ # -*- coding: utf-8 -*-”,这样脚本就会使用 unicode UTF-8 编码;python
在 Pyhton 中,# 是注释的意思,那么 # -*- coding: utf-8 -*- 为何会被执行?bash
其实 Python 仍然会忽略这句代码,可是它却能够做为“黑客”或者解决问题的方法来制定文件的格式,还能够在编辑器设置中找到其余相似的注释;服务器
在笨方法学 Python 中,推荐从后向前阅读代码,这实际上是一种期盼大脑的作法,这样能让大脑在没有附加意义的状况下理解每一部分代码,同时能让你正确的处理每一块代码,这是一个方法捕获错误,检测错误的技术;编辑器
out_file = open(to_file, 'w')
为何这个 w 须要写在引号里:函数
它只是个字符串。网站
字符串是程序将信息展现给人的方式,能够打印它们,能够将它们写入文件,还能够将它们发送给网站服务器,不少事情都是经过字符串交流实现的;this
程序就是接受用户的输入、处理、输出结果给用户编码
%c 转换成字符(ASCII 码值,或者长度为一的字符串) %r 优先用repr()函数进行字符串转换(Python2.0新增) %s 优先用str()函数进行字符串转换 %d / %i 转成有符号十进制数 %u 转成无符号十进制数 %o 转成无符号八进制数 %x / %X (Unsigned)转成无符号十六进制数(x / X 表明转换后的十六进制字符的大 小写) %e / %E 转成科学计数法(e / E控制输出e / E) %f / %F 转成浮点数(小数部分天然截断) %g / %G %e和%f / %E和%F 的简写 %% 输出%
可是尽可能在作调试的时候使用 %r,%r 显示的是变量的“原始”的数据值,%r 在打印的时候可以重现它表明的对象,%r 格式的工做原理:你如何输入,它就如何打印输出;spa
函数 Function,过程 Procedure,方法 Method,你能够简单把他们当作同一个概念:都是由若干语句组成的一个可执行代码体。操作系统
调用函数的一种方式,函数接受命令的方式是使用句点 . (英文称做 dot 或 period),紧跟着命令,而后是相似 open 和 raw_input 同样的参数,不一样点是:当你执行 txt.read 时,你的意思实际上是:“嘿 txt!执行你的 read 命令,无需任何参数!”
from sys import argv from os.path import exists
之前一直有疑问,既然须要使用这个库,为何还要 from A import B,只导入其中一个模块呢?
处于代码的易读性考虑,列出模块的名字,更好的帮助阅读者理解代码的意义,还有就是处于程序大小方面的考虑。
函数能够作三样事情:
一、它们给代码片断命名,就跟“变量”给字符串和数字命名同样;
二、它们能够接受参数,就跟你的脚本接受 argv 同样;
三、经过使用 #1 和 #2,它们可让你建立“微型脚本”或者“小命令”;