笨方法学 python

报错信息

$ python ex/ex1.py
  File "ex/ex1.py", line 3 
    print "I like typing this.     
                             ^ 
SyntaxError: EOL while scanning string literal
  1. 首先在命令行运行 ex1.py 脚本;
  2. Python 告诉 ex1.py 文件的第 3 行有一个错误;
  3. 接着这一行的内容被打印了出来;
  4. 而后 Python 打印出了一个 ^ 符号,用来指示出错的位置;
  5. 最后,打印出一个“语法错误”(SyntaxError)告诉用户是什么样的错误;
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,它们可让你建立“微型脚本”或者“小命令”;

相关文章
相关标签/搜索