博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笨方法学 python
阅读量:7034 次
发布时间:2019-06-28

本文共 2529 字,大约阅读时间需要 8 分钟。

hot3.png

报错信息

$ 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 编码;

    在 Pyhton 中,# 是注释的意思,那么 # -*- coding: utf-8 -*- 为什么会被执行?

    其实 Python 仍然会忽略这句代码,但是它却可以作为“黑客”或者解决问题的方法来制定文件的格式,还可以在编辑器设置中找到其他类似的注释;

    在笨方法学 Python 中,推荐从后向前阅读代码,这其实是一种期盼大脑的做法,这样能让大脑在没有附加意义的情况下理解每一部分代码,同时能让你正确的处理每一块代码,这是一个方法捕获错误,检测错误的技术;

 

out_file = open(to_file, 'w')

    为什么这个 w 需要写在引号里:

    它只是个字符串。

格式化字符串

    字符串是程序将信息展示给人的方式,可以打印它们,可以将它们写入文件,还可以将它们发送给网站服务器,很多事情都是通过字符串交流实现的;

    程序就是接受用户的输入、处理、输出结果给用户

%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 格式的工作原理:你如何输入,它就如何打印输出;

 

函数

    函数 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,只导入其中一个模块呢?

    处于代码的易读性考虑,列出模块的名字,更好的帮助阅读者理解代码的意义,还有就是处于程序大小方面的考虑。

 

    函数可以做三样事情:

        1、它们给代码片段命名,就跟“变量”给字符串和数字命名一样;

        2、它们可以接受参数,就跟你的脚本接受 argv 一样;

        3、通过使用 #1 和 #2,它们可以让你创建“微型脚本”或者“小命令”;

转载于:https://my.oschina.net/u/2470065/blog/852930

你可能感兴趣的文章
Spring4新特性——Groovy Bean定义DSL
查看>>
心血漏洞第二发?SSL v3再曝新漏洞发布预警
查看>>
Hadoop源码分析HDFS Client向HDFS写入数据的过程解析
查看>>
android 升级数据库 修改表结构
查看>>
使用用户密码进入root用户命令
查看>>
python的百度api的安装过程记录
查看>>
导入slidingmenu 错误的解决方式
查看>>
apache配置文件——Order Deny,Allow
查看>>
Ubuntu root权限打开文件夹
查看>>
iOS CollectionView 的那些事
查看>>
Git 使用日常
查看>>
硬派计费免费社区版 V4.0 正式发布
查看>>
开源免费的C/C++网络库(c/c++ sockets library)
查看>>
Nagios监控平台(转)
查看>>
firfox 中onpropertychange的替换方案
查看>>
代码分析工具findbug简介和使用
查看>>
Jquery UI Tabs 获取选中Tab的ID
查看>>
Android Wear开发系列教程——搭建开发环境
查看>>
如何更好地学习dubbo源代码
查看>>
IE、Chrome、Firefox修改http header信息
查看>>