重读LPTHW-Lesson37
这次是复习课 复习python符号 整理如下
1.逻辑运算符not、and、or
python中逻辑运算符包括not(布尔非)、and(布尔与)、or(布尔或)。注意以下几点:
①运算规则:
例:
②运算优先级:not的优先级大于and和or的优先级,而and和or的优先级相等。逻辑运算符的优先级低于关系运算符,必须先计算关系运算符,然后再计算逻辑运算符
print not 1 and 0
print not (1 and 0)
print 1 <= 2 and False or True
print 1<=2 or 1 > 1 + 2
第一行 先计算not 1再计算and 0,输出:False
第二行 先计算括号内的and,再计算not,输出:True
第三行 先计算1 <= 2关系式,再计算and运算,最后计算or,输出:True
第四行 先计算1 <= 2关系式,再计算1 > 1+2 关系式,最后计算or,输出:True
2.with-as
with A() as B:
block
这个语句中,A()是一个类,A()类中必须有两个方法:__enter__()方法和__exit__()方法。
在执行with语句时,首先创建类A的一个临时对象,然后调用对象的__enter__()方法,并将这个方法的返回值赋值给B。接下来,执行block语句块(若__enter__()方法出现异常,会直接跳过,继续执行block代码块)。在block代码块执行完毕后,调用对象的__exit__()方法。
实例:
class people(object):
def __enter__(self):
print "Enter people"
return "Chinese"
def __exit__(self,type,value,traceback):
print "Exit people"
with people() as cn:
print cn
输出:
Enter people
Chinese
Exit people
注解:①创建临时对象people(),执行__enter__(),本例中是打印出"Enter people",然后将__enter__()的返回值即''Chinese"返回给变量'cn'
②执行语句块,本例中是打印出变量cn的值,输出"Chinese"
③调用__exit__()。本例中,调用__exit__()方法打印"Exit people"。
④本例中,__exit__()的三个参数type,value,traceback在异常处理中有很大作用,这也是with语句的强大之处,即它可以处理异常。
3.assert assert语句用来声明/确保某个条件是True,并且在not True时引发一个错误。如你确信某个正在列表里至少有一个元素,要验证这一点,并且在列表中没有元素的时候即为not True的时候引发一个错误(会触发'AssertionError'错误),这种情况下应该运用assert语句。

4.break
break语句用来中止循环,即使循环条件仍然为真或序列没有完全递归,也停止执行循环语句,且对应的else语句将不执行。
# -*- coding:utf-8 -*-
while True:
s = raw_input("Enter Something:") #获取用户输入
if s == 'quit':
break #用户输入'quit'时,中止循环结束游戏
print "Your input is %s,its length is %d." % (s,len(s))
print "Game Over"
输出:
Enter Something:Python is number one
Your input is Python is number one,its length is 20.
Enter Something:I love programming
Your input is I love programming,its length is 18.
Enter Something:I will be a good programmer
Your input is I will be a good programmer,its length is 27.
Enter Something:quit
Game Over
5.class
定义类:
class person(object):
pass
6.continue
continue语句用来跳过当前循环块中的剩余部分,继续进行下一轮循环
while True:
s = raw_input("Enter Something:")
if len(s) < 3:
continue #当输入长度小于3时,不执行任何处理
print "Congratulations! Your enter is effcetive.Its length is %d." % len(s)
输出:
Enter Something:a
Enter Something:12
Enter Something:123
Congratulations! Your enter is effcetive.Its length is 3.
7.def
定义函数:
def func(x):
pass
8.del
del用来删除列表、字典中的元素以及变量
>>> list1 = ['a','b','c','d']
>>> dict1 = {'a': 'A','b': 'B','c': 'C','d': 'D'}
>>> del list1[1]
>>> list1
['a', 'c', 'd']
>>> del list1[0:2]
>>> list1
['d']
>>> del dict1['a']
>>> dict1
{'c': 'C', 'b': 'B', 'd': 'D'}
>>> del dict1['b']
>>> dict1
{'c': 'C', 'd': 'D'}
>>> del list1
>>> list1 Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
list1
NameError: name 'list1' is not defined
>>> del dict1
>>> dict1 Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
dict1
NameError: name 'dict1' is not defined
>>> x = 2
>>> x
2
>>> del x
>>> x Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
x
NameError: name 'x' is not defined
9.elif、else
elif即else if,和else都是if语句块的一部分:
if 0:
pass
elif 1:
pass
else:
pass
10.except
try...except语句用来处理异常,其执行程序如下:
①try...except语句把通常的语句放在try块中,从try语句块开始执行,若无异常,则执行else语句(存在else的前提下)。
②若在执行try句块中出现异常,则中断try块的执行并跳转到相应的异常处理块except块中执行。其先从第一个exceptXX处开始匹配,找到对应的异常类型就进入对应exceptXX句块处理;如果没有找到则直接进入except块处理。
③except句块是可选项,如果没有提供,调用默认的python处理器,处理方式则是终止应用程序并打印提示信息
try:
s = raw_input("Enter Something:")
print s
print "Done"
except EOFError:
print "\nWhy did you do an EOFError on me?" #当发生'EOFError'时执行此语句
except:
print "\nsome error/exception occurred." #当发生其他类型异常时统统执行此语句
输出:

11.exec
exec语句用来执行储存在字符串或文件中的Python语句。
>>> exec "print 'Hello World!'"
Hello World!
12.in
for...in...语句;xx in [...]语句
13.lambda
lambda定义匿名函数。lambda定义函数仅一行语句。它只需要一个参数,后面紧跟单个表达式作为函数体,并返回表达式的值。需要注意的是,lambda只能跟表达式。
>>> s = lambda x:x ** 3 #定义匿名函数,求三次方
>>> s(3)
27
>>> s(5)
125
>>>
14.raise语句用来引发异常。需要知名错误/异常的名称和伴随异常触发的异常对象,可以引发的错误或异常应该分别是一个Error或Exception的类的导出类。
# -*- coding:utf-8 -*-
class ShortInputError(Exception):
def __init__(self,length,atleast):
Exception.__init__ 初始化
self.length = length
self.atleast = atleast
try:
s = raw_input("Enter something:")
if len(s) < 3:
raise ShortInputError(len(s),3)
except EOFError:
print '\nWhy did you do an EOF on me?'
except ShortInputError,x:
print 'ShortInputError:The input was of length %d,\
was expecting at least %d' %(x.length,x.atleast)
else:
print "No exception was raised."
输出:

重读LPTHW-Lesson37的更多相关文章
- LPTHW 结束了
基本上在学习了LPTHW的 类 继承 和 合成以后基本就结束. 后面几章都是根据web.py进行网页编程,以及自动化测试的.目前来看不太感兴趣. 稍后我可能找个实际项目进行锻炼下,比如 Crossin ...
- LPTHW 笨办法学python 40章 类
今天读了LPTHW的第40章以后豁然开朗,原来一直愚钝,不太理解类的定义和使用,还有就是不太理解关于self的定义. class MyStuff(object): def __init__(self) ...
- 重读 code complete 说说代码质量
重读code complete 说说代码质量 2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete ...
- 不忘初心 --- 重读<<The C Programming Language>>
这篇文章应该发布在好几年前,2011年计算机界大师Dennis Ritchie仙逝,那时对大师的映象还停留在大一刚学编程时:Unix的合作开发者,C语言的发明人.通过网上的纪念文章<<Un ...
- 重读COM技术内幕(inside com)有感
重读COM技术内幕(inside com)有感 面向对象设计哲学在复杂领域并不能很好地解决问题.参考(http://www.richardlord.net/blog/what-is-an-entity ...
- 重读redis设计与实现
重读了一遍redis设计与实现,这次收获也不错,把之前还有些疑惑的点:redis跳跃表的原理.redis持久化的方法.redis复制.redis sentinel.redis集群等,都重新熟悉了一遍, ...
- (名词 形容词 动词 副词)重读&(冠词 介词 连词 代词 辅助词(Be))弱读
二,一些发音规则 除了上面的练习之外,这里还有几个注意点需要我们有足够的认识,那就是英语有重读.弱读.连读.爆破.语感(节奏和断句)等(其实当你跟读并背诵新概念之后,这一切都是神马,你不知觉地也会发现 ...
- 重读《学习JavaScript数据结构与算法-第三版》-第2章 ECMAScript与TypeScript概述
定场诗 八月中秋白露,路上行人凄凉: 小桥流水桂花香,日夜千思万想. 心中不得宁静,清早览罢文章, 十年寒苦在书房,方显才高志广. 前言 洛伊安妮·格罗纳女士所著的<学习JavaScript数据 ...
- 重读《学习JavaScript数据结构与算法-第三版》- 第4章 栈
定场诗 金山竹影几千秋,云索高飞水自流: 万里长江飘玉带,一轮银月滚金球. 远自湖北三千里,近到江南十六州: 美景一时观不透,天缘有分画中游. 前言 本章是重读<学习JavaScript数据结构 ...
- 重读《学习JavaScript数据结构与算法-第三版》- 第5章 队列
定场诗 马瘦毛长蹄子肥,儿子偷爹不算贼,瞎大爷娶个瞎大奶奶,老两口过了多半辈,谁也没看见谁! 前言 本章为重读<学习JavaScript数据结构与算法-第三版>的系列文章,主要讲述队列数据 ...
随机推荐
- 用PS画一个齿轮
以前只会画圆画方,这没技术含量.今天学了一个稍难一点的,画一个齿轮.图形有圆也有方.以下描述如何画出来的. 一.打开PS准备一画布,画一矩形并且填充颜色. 二.编辑->自由变换(CTRL+T), ...
- deepin 2014 安装后 ,grub出错
今天deepin2013一直出错,就想尝试下2014,so,果断下载安装,然后悲剧的又被坑了. 环境win7位于sda,deepin安装在sdb 安装完毕后,启动报错,找不到设备uuid 无奈之下,重 ...
- 电机转矩T=9550*P/N推导。
很奇怪,这个公式怎么来的,原来好多是基础物理的,也许我们初中高中物理书上多有,基础真的是很基础的基础. P=F*V (1) ,即功率=力*速度 T=F*R (2) ,即力矩=力*作用长度 ,在电机里 ...
- 服务器放在不同省份的IDC机房,数据如何同步?一个域名如何动态解析到不同IP的服务器
服务器放在不同省份的IDC机房,数据如何同步?淘宝的做法是不同IDC机房之间拉光纤,异地容灾和性能无关,异地容灾是应对断电.地震这种不可抗拒因素的 同城分流,异地容灾 是什么意思?你比如说公司的业务涉 ...
- 操作系统基本概念(内核态与用户态、操作系统结构)-by sixleaves
内核态与用户态(为什么存在这种机制.程序应处于哪个状态.如何判断当前所处状态.哪些功能需要内核态.如何实现这种机制) 1.首先我们应该思考清楚为什么会有内核态和用户态?(为什么存在这种机制) 因为计算 ...
- ubuntu下hadoop完全分布式部署
三台机器分别命名为: hadoop-master ip:192.168.0.25 hadoop-slave1 ip:192.168.0.26 hadoop-slave2 ip:192.168.0.27 ...
- yum安装配置mongoDB客户端和服务器端
1,Centos6.X yum安装mongoDB客户端和服务器端; yum -y install mongodb mongodb-server; 基于epel repo.当前的mongoDB的版本为2 ...
- SQL Server 2000 函数使用---CAST 和 CONVERT
本文来自:http://www.cnblogs.com/xh831213/category/47654.html 将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相似 ...
- ExtJS+ASP.NET自己定义曲线
第一步:创建Store数据源 var myData = []; myData.push({ 'name': '1', 'Oil_Production': '30', 'Water_Injection' ...
- crm操作知识库文章实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft ...