Python初体验之基础语法(四)

所有测试语句基于Python 2.7.3 , Ubuntu 12.04

自学Python,如果哪里说的不恰当,还请指正。谢谢。

示例绝大部分来自博客园vamei的python教程

1.循环对象

#!/usr/bin/env python
#coding=UTF-8

#包含一个next()方法 每次循环调用next()
#直到StopIteration异常出现 停止调用next()方法
f = open(‘test.txt‘)

for line in f:
    print line

#生成器 自定义一个循环对象
#定义与函数类似  只是return改为yield
#每次循环使用一个yield的返回值
def gen():
    a = 10
    yield a
    a = a**2
    yield a
    a = a+10
    yield a
    yield 525
#该生成器共有4个yield,用作循环器时,会进行4次循环
for a in gen():
    print a

生成器 generator

#对于形如下的是生成器 可以简写为 G = ( x for x in range(m))
# 名为生成器表达式 (Generator Expression)
def gen():
    for i in range(4):
        yield i

G = (x for x in range(4))

for a in G:
    print a

表推导

#表推导 list comprehension 快速生成表
#表推导的机制 实际上是利用了循环对象
L = []
for i in range(10):
    L.append(i*2)
    print L

#简写形式 使用中括号
L = [x*2 for x in range(10)]
print L

测试练习:

#test zip() 聚合函数
#聚合后 [(1,7),(3,12),(5,13)]
#设定y>10 所以 x取3和5.  L=[6,10]
a = [1,3,5]
b = [7,12,13]
L = [x*2 for (x,y) in zip(a,b) if y > 10]
print L

2.函数对象

函数也是对象,将函数名作为参数传递

def func(a, b):
    return a + b

def test(f, a, b):
    print ‘test‘
    print f(a, b)

test(func, 1, 2)

test函数的第一个参数f就是一个函数对象。将func传递给f,test中的f()就拥有了func()的功能。

map()函数

def func(a, b):
    return a + b

# map()的功能是将函数对象依次作用于表的每一个元素
# 每次作用的结果储存于返回的表re中
# map()将每次从两个表中分别取出一个元素,带入所定义的函数。
re = map(func, [1, 2, 3, 4], [2, 3, 4, 5])
print re

filter()函数  filter通过读入的函数来筛选数据

def func(a):
    if a > 100:
        return True
    else:
        return False

print filter(func, [10, 99, 101, 500])

返回结果为 [101,500]

在Python 3.X中,filter返回的不是表,而是循环对象。

reduce()函数 要求函数自身能接收两个参数。reduce可以累进地将函数作用于各个参数。

def func(a, b):
    return a * b

re = reduce(func, [1, 2, 3, 4])
print re

reduce()函数在3.0里面不能直接用的,它被定义在了functools包里面,需要引入包

异常 与其他高级语言异常处理差别不大 只是关键字有变化 另外多了一个else 的分支

try:
    ...
except exception1:
    ...
except exception2:
    ...
except:
    ...
else:
    ...
finally:
    ...

流程如下,

try->异常->except->finally

try->无异常->else->finally

在try程序段中,我们放入容易犯错的部分。我们可以跟上except,来说明如果在try部分的语句发生StopIteration时,程序该做的事情。如果没有发生异常,则except部分被跳过。随后,程序将继续运行,而不是彻底中断。如果try中有异常发生时,将执行异常的归属,执行except。异常层层比较,看是否是exception1, exception2...,直到找到其归属,执行相应的except中的语句。如果except后面没有任何参数,那么表示所有的exception都交给这段程序处理。如果无法将异常交给合适的对象,异常将继续向上层抛出,直到被捕捉或者造成主程序报错。

时间: 2024-11-06 07:26:54

Python初体验之基础语法(四)的相关文章

python初体验之基础语法(一)

所有测试语句基于Python 2.7.3 , Ubuntu 12.04 自学Python,如果哪里说的不对,还请指正.谢谢. 示例绝大部分来自博客园vamei的python教程 1.输出语句print() #!/usr/bin/env python #coding=UTF-8 #默认python编码是ASCII编码 要支持中文 #加上coding=UTF-8的声明 #输出语句 print ('你好 Python !!') 打印一条语句,括号中用单引号双引号貌似都可以, 语句结束也不必加;分号作为

Python初体验之基础语法(二)

所有测试语句基于Python 2.7.6 , Ubuntu 14.04 LTS 自学Python,如果哪里说的不对,还请指正.谢谢. 示例绝大部分来自博客园vamei的python教程 1.文件读写操作 一. 按字节读取文件 #!/usr/bin/env python #coding=UTF-8 #默认python编码是ASCII编码 要支持中文 #加上coding=UTF-8的声明 # open()打开文件 r只读 w写入 a追加 r+ w+ a+模式 # a+方式打开文件 指针指向结尾 ,

Python初体验之基础语法(三)

所有测试语句基于Python 2.7.1 自学Python,如果哪里说的不恰当,还请指正.谢谢. 示例绝大部分来自博客园vamei的python教程 1.函数参数  关键字传递 #! /usr/bin/env python # coding=UTF-8 # 函数参数关键字传递 根据每个参数的名字传递参数-->无需遵照位置对应关系 # 可以与位置传递混用,但是直接的值传递的参数要出现在关键字参数之前 def sum(a, b, c): return a + b + c print "sum(

Python 基础语法(四)

Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)-------------------------------------------- 十.Python标准库 Python标准库是随Pthon附带安装的,包含了大量极其有用的模块. 1. sys模块 sys模块包含系统对应的功能 sys.argv ---包含命令行参数,第一个参数是py的文件名 sys.platform ---返回平台类型 sy

ipython及Python初体验

阅读目录: Python环境体验 Python编辑器 ipython安装 Python提示符 Python初体验 print和变量 变量操作 内建函数:方法 数学运算:简单算术.随机数 关于模块 一.Python环境体验 1.常见Python编辑器介绍 1.在linux下使用vim 编辑Python脚本时,推荐--没有道理-- 2.Eclipse 3.notepad++:挺好用的一款编辑工具 4.IDLE (官方自带)交互式的开发语言集成环境 5.pycharm  第三方的工具:ipython

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

python初体验之小小爬虫

小月月是个懒家伙,博客更新好慢... 前几天拿到某公司的面试题,要求在Linux/Ubuntu/Debian/Suse/Centos下用python2.7开发一个爬虫,抓取百度新闻搜索结果的前三页标题+url. 这可把对python一窍不通的小月月难住了,肿么办呢...哦,最简单有效直接的方法就是网上查资料,ok,go~! 首先感谢http://www.1point3acres.com/bbs/thread-83337-1-1.html跟http://blog.csdn.net/column/d

Python初体验

本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 作业需求 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语

python初体验-函数(1)

说到函数,你肯定第一时间联想到数学中学过的函数,比如:y = 2x + 1.在数学函数中,给定一个 x 的值,就能得到一个 y 的值. 在 Python 的世界里,函数也是类似的,给定一个输入(有些情况下也可以没有输入),经过函数处理过后得到一个输出. 来看一个例子:我们之前提起过,可以使用 type() 函数来查看某个值的类型. print(type('Hello World')) # <class 'str'> 一.内置函数 内置函数,顾名思义就是预先写好的函数. 像 print() 函数