python学习笔记(三)---python关键字及其用法
转载出处:https://www.cnblogs.com/ECJTUACM-873284962/p/7576959.html
前言
最近在学习Java Sockst的时候遇到了一些麻烦事,我觉得我很有必要重新研究学习Python这种脚本语言,参考大神的经验,淘到了一本学习Python的好书《"笨方法"学Python》,我决定花很长一段时间重新学习一下Python,把自己的一些总结经验以及积累的一些东西放到博客上,大家可以一起互相学习讨论...不足的地方还望大家能够提出来,我进行适当的增添删补...完善本文
正文
python2.7关键字及其总结:
and | del | from | not | while | as | elif |
global | or | with | assert | else | if | pass |
yield | break | except | import | class | exec | |
in | raise | continue | finally | is | return | def |
for | lambda | try |
一共:31个。注意:如果要现在自己电脑中运行我写的这些代码,需要在第一行加上
#coding:utf-8 因为我的输出中有中文
1.and:表示逻辑‘与’
2.del:用于list列表操作,删除一个或者连续几个元素。
3.from:导入相应的模块,用import或者from...import
4.not:表示逻辑‘非’
5.while:while循环,允许重复执行一块语句,一般无限循环的情况下用它。示例如下:
while Ture:
if a > b:
add()#调用函数求和
else:
print "输入错误!重新输入!"
6.as:as单独没有意思,是这样使用:with....as用来代替传统的try...finally语法的。
基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。
紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面,返回对象的__exit__()方法。示例如下:
1 class Sample:
2 def __enter__(self):
3 print "In __enter__()"
4 return "Foo"
5
6 def __exit__(self, type, value, trace):
7 print "In __exit__()"
8
9
10 def get_sample():
11 return Sample()
12
13
14 with get_sample() as sample:
15 print "sample:", sample
输出结果:
In __enter__()
sample: Foo
In __exit__()
第一步: __enter__()方法被执行
第二步: __enter__()方法返回的值 - 这个例子中是"Foo",赋值给变量'sample'
第三步:执行代码块,打印变量"sample"的值为 "Foo"
第四步: __exit__()方法被调用with真正强大之处是它可以处理异常。可能你已经注意到Sample类的__exit__方法有三个参数- val, type 和 trace。这些参数在异常处理中相当有用。
7.elif:和if配合使用的,if语句中的一个分支用elif表示。
8.global :定义全局变量,我的理解就是:要想给全局变量重新赋值,就要global一下全局变量(相当于告诉你:哦,注意了!下面我要设定全局变量的值的),之后在重新赋值。示例如下:
1 #coding:utf-8
2 #################
3 #################
4 #熟悉global
5 #定义全局变量,变量名全部大写
6 NAME = "xueweihan"
7 #得到NAME值
8 def get_NAME():
9 return NAME
10 #重新设定NAME值
11 def set_NAME(name_value):
12 global NAME
13 NAME = name_value
14 print u"输出全局变量NAME的值:",get_NAME()
15 new_name = "521xueweihan"
16 set_NAME(new_name)#为全局变量重新赋值
17 print u"输出赋值完的全局变量NMAE的值:",get_NAME()
输出结果:
输出全局变量NAME的值: xueweihan
输出赋值完的全局变量NMAE的值: 521xueweihan
9.or:表示逻辑“或”
10.with:和as一起用,使用的方法请看as,在上面!
11.assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:AssertionError
12.else:看下面if的解释
13.if:if语句用于选择分支,依据条件选择执行那个语句块。(这里多说一句:if语句中最好不要嵌套if语句,你可以把嵌套的if语句写在另一个函数中)
if a > b:
print "a > b
elif a < b:
print "a < b"
else:
print "a = b"
14.pass:pass的意思就是什么都不做。用途及理解:当我们写一个软件的框架的时候,具体方法啊,类啊之类的都不写,等着后续工作在做。那么就在方法和类里面加上pass,那样编译起来就不会报错了!就像这样:
#理解pass的用途
def test_pass():pass #如果不加pass,抛出错误:IndentationError: expected an indented block test_pass()
15.yield:用起来和return很像,但它返回的是一个生成器。我这样说不是很生动。我将会在下一节重点谈一谈关于Python中的yield,请先参考看下面的代码:
1 #理解yield
2 def test_yield(n):
3 for i in range(n):
4 yield i*2#每次的运算结果都返回
5
6 for j in test_yield(8):
7 print j,":",
8 print u"结束理解yield"
9 #利用yield输出斐波那契数列
10 ##########
11 def fab(max):
12 a,b = 0,1
13 while a < max:
14 yield a
15 a, b = b, a+b
16 print u"斐波那契数列!"
17 for i in fab(20):
18 print i,",",
输出结果:
0 : 2 : 4 : 6 : 8 : 10 : 12 : 14 : 结束理解yield
斐波那契数列!
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 ,
16.break:作用是终止循环,程序走到break的地方就是循环结束的时候。(有点强行终止的意思)注意:如果从for或while循环中终止(break)之后 ,else语句不执行。
17.except:和try一起使用,用来捕获异常。
- try:
- block
- except [exception,[data…]]:
- block
- try:
- block
- except [exception,[data...]]:
- block
- else:
- block
该种Python异常处理语法的规则是:
◆执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。
◆如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。
◆如果引发的异常不匹配第一个except,则会搜索第二个 except,允许编写的except数量没有限制。
◆如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。
◆ 如果没有发生异常,则执行else块代码。
第一种格式:
#理解except
try:
num = 5/0
except:
print u"计算出错"
第二种:
1 try:
2 f = open("file.txt","r") #如果该文件不存在
3 except IOError, e: #捕获IO异常
4 print u"IO错误!"
5 print e #输出错误信息,这里e是错误信息
输出结果:
计算出错
IO错误!
[Errno 2] No such file or directory: 'file.txt'
18.import:用来导入模块,有时这样用from....import
19.print:输出
20.class:定义类
21exec:exec语句用来执行储存在字符串或者文件中的python语句。可以生成一个包含python代码的字符串,然后使用exec语句执行这些语句。
22.in:查找列表中是否包含某个元素,或者字符串a是否包含字符串b。需要注意的是:不可以查看list1是否包含list2。代码如下:
1 #理解in
2 first_list = [1, 2]
3 second_list = [1, 2, 3]
4 element = 1
5 red = 'red'
6 red_clothes = "red clothes"
7
8 print red in red_clothes #true
9 print first_list in second_list #false
10 print element in first_list #true
输出结果为:
True
False
True
23.raise:raise可以显示地引发异常。一旦执行raise语句,后面的代码就不执行了
#理解raise
try:
raise IOError #这里可以raise一个自定义的错误类。那样就叫做自定义异常了
print u"是否执行?" #不执行
except IOError:
print "IOError test raise"
输出结果如下:
IOError test raise
24.continue:跳过continue后面循环块中的语句,继续进行下一轮循环。
25.finally:看到finally语句,必然执行finally语句的代码块。
python异常总结,请看下面的代码:
One:
1 #打开一个文件,但有可能找不到
2 try:
3 f = open('xxx')
4 do something
5 except:
6 do something
7 finally:
8 f.close()
Two:
1 try:
2 f = open('xxx')
3 except:
4 print 'fail to open'
5 exit(-1)
6 try:
7 do something
8 except:
9 do something
10 finally:
11 f.close()
我们为什么要写finally,是因为防止程序抛出异常最后不能关闭文件,但是需要关闭文件有一个前提就是文件已经打开了。
在第一段错误代码中,如果异常发生在f=open(‘xxx’)的时候,比如文件不存在,立马就可以知道执行f.close()是没有意义的。改正后的解决方案就是第二段代码。
26.is:Python中的对象包含三要素:id、type、value
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值
is判断的是a对象是否就是b对象,是通过id来判断的
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
1 #理解is
2 e = 1
3 es = 1.0
4 ess = 1
5 print u"""is就是比对id的值,看是否指向同一对象,
6 这里需要注意的是:同一对象,不是值相等就是同一对象。"""
7 print id(e)
8 print id(es)
9 print id(ess)
27.return:用于跳出函数,也可以在跳出的同时返回一个值。
28.def:用于定义方法
29.for:for....in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目
30.lambda:即匿名函数,不用想给函数起什么名字。提升了代码的简洁程度。如:
1 #理解lambda
2 g = lambda :"lambda test."
3 print g()
4 num1 = lambda x, y=1:x + y
5 print num1(1) #多个变量的时候,可以不给有默认值的变量传值
6 print num1(10,10) #值得注意的是,如果y没有默认值而且不给它传值的话报错!
输出结果:
lambda test.
2
20
31.try:出现在异常处理中,使用格式为:try...except,try中放想要执行的语句,except捕获异常
到此本文已把所有的31个关键字进行了一个简要的概述,后续文章我将会对其中比较重要的几个关键字进行详细的阐述说明理解,我也会尽我所能去进一步去对书中的概念进行深入理解,希望能够总结出更好的文章分享给大家。
python学习笔记(三)---python关键字及其用法的更多相关文章
- Python学习笔记(三)Python的list和tuple
list list类似其他语言中的数组,是一种有序的集合,可以随时添加和删除其中的元素. 使用len()函数可以获得list元素的个数. list的索引从0开始,当超出范围时会报IndexError错 ...
- Python 学习笔记三
笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...
- python 学习笔记 9 -- Python强大的自省简析
1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...
- python学习笔记(一):python简介和入门
最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...
- python 学习笔记一——Python安装和IDLE使用
好吧,一直准备学点啥,前些日子也下好了一些python电子书,但之后又没影了.年龄大了,就是不爱学习了.那就现在开始吧. 安装python 3 Mac OS X会预装python 2,Linux的大多 ...
- python学习笔记(python简史)
一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算.人工智能 ·系统运维 ·金融:量化交 ...
- python学习笔记之——python面向对象
Python是一门面向对象语言. 1.面向对象技术介绍 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个 ...
- Python学习笔记 - day12 - Python操作NoSQL
NoSQL(非关系型数据库) NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数据的存储.(例如 ...
- python学习笔记(1)--python特点
python诞生于复杂的信息系统时代,是计算机时代演进的一种选择. python的特点,通用语言,脚本语言,跨平台语言.这门语言可以用于普适的计算,不局限于某一类应用,通用性是它的最大特点.pytho ...
- python学习笔记之——python模块
1.python模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...
随机推荐
- scrapy爬虫系列之四--爬取列表和详情
功能点:如何爬取列表页,并根据列表页获取详情页信息? 爬取网站:东莞阳光政务网 完整代码:https://files.cnblogs.com/files/bookwed/yangguang.zip 主 ...
- timedatectl — Control the system time and date
timedatectl --help 的执行结果如下: timedatectl [OPTIONS...] COMMAND ... Query or change system time and dat ...
- Spark-RDD算子
一.Spark-RDD算子简介 RDD(Resilient Distributed DataSet)是分布式数据集.RDD是Spark最基本的数据的抽象. scala中的集合.RDD相当于一个不可变. ...
- Crossed ladders---poj2507(二分+简单几何)
题目链接:http://poj.org/problem?id=2507 题意就是给你x y c求出?的距离: h1 = sqrt(x*x-d*d); h2 = sqrt(y*y-d*d); (h1 ...
- 【Python项目篇】【爬妹子图】
#-*- coding:utf-8 -*- import urllib import urllib2 from bs4 import beautifulsoup4 #获取标签下的内容 #打开网页,获取 ...
- win安装mysql
在这讲解的是有关于通过zip解压安装MySQL的方法.有看了网上的其它的教程,讲的有些不够完善,也自己写一篇简述一下.个人还是建议看官方的参考文档非常之详细:https://dev.mysql.com ...
- 【开发者笔记】python
题记: 最近做Python导入接口,用到xlrd包读取excel文件信息入库,获取合并单元格信息时遇到时而成功时而失败的情况,一开始用xls文件读取不了合并单元格信息,后来换用xlsx格式可以读取.但 ...
- POJ2992:Divisors(求N!因子的个数,乘性函数,分解n!的质因子(算是找规律))
题目链接:http://poj.org/problem?id=2992 题目要求:Your task in this problem is to determine the number of div ...
- Android初体验之Monkey和MonkeyRunner
原文地址https://blog.csdn.net/mad1989/article/details/38087737 Monkey 什么是Monkey Monkey是Android中的一个命令行工具, ...
- tp基础补充
ThinkPHP php框架 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分 ...