转载自龙腾测试
3.1 迭代
3.1.1迭代
迭代的意思就是重复的做一些事,比如在for循环中的序列、字典,for循环可用于一切可迭代对象,for是一种迭代工具。
-- coding:utf-8 --
for x in ‘xyz’:
print x
d = {‘name’:’jhon’,’age’:’18’}
for key in d:
print key
3.1.2 文件迭代器
-- coding:utf-8 --
f = open(‘test.txt’)
for line in f:
print line
4.1 列表解析式
4.1.1 列表解析式(列表推导式)
列表解析式利用其它列表创建新列表,工作方式类似for循环。
[x for x in range(10)]
[0,1,2,3,4,5,6,7,8,9][x * x for x in range(10)]
[0,1,4,9,16,25,36,49,64,81][(x,y) for x in range(3) for y in range(3)]
[(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)][ord(x) for x in ‘abc’]
[97,98,99]
4.1.2 if子句
[x for x in range(10) if x%2]
[1,3,5,7,9][‘{0}*{1} = {2}’.format(x,y,x*y)for x in range(1,9) for y in range (1,9)]
5.1 生成器
5.1.1 生成器函数
-- coding:utf-8 --
def f():
for i in range(10):
yield i
t = f()
for i in t:
print i
5.1.2 生成器表达式
g = (x for x in range(10))
g.next()
1
g.next()
2
for i in g:
print i
list(g)
[1,2,3,4,5,6,7,8,9]
6.1 代码文档
6.1.1 文档字符串
文档字符串是一个重要的工具,由于它帮助你的程序文档更加简单易懂
-- coding:utf-8 --
def printMax(x,y):
”’Prints the maximum of two numbers.
The two values must be integers.'''
x = int(x) # convert to integers,if possible
y = int(y)
if x > y:
print x,'is maximum'
else:
print y,'is maximum'
printMax(3,5)
print printMax.doc
print ‘——————’
print help(printMax)
7.1 函数
7.1.1 函数
-- coding:utf-8 --
def sum(x,y):
sum = x + y
print ‘The sum is’
return sum
t = sum(1,2)
print t
7.1.2 def可执行语句
def是个可执行语句,到解释器执行到del时,生成一个新的函数对象,并将这个函数对象复制给函数名变量
7.1.3 return返回值
函数通过return将运行结果传送给调用者
8.1 作用域
8.1.1 命名空间
Python创建、改变或查找变量名都是在所谓的命名空间(一个保存变量名的地方)中进行的。作用域这个术语就是指的命名空间。也就是说,在代码中变量名被赋值的位置决定了这个变量能访问到的范围。
x = 90
def func():
x = 80
print x
func()
print x
如果一个变量在def内赋值,它被定为在这个函数内
如果一个变量在def外赋值,它就是整个文件全局的
8.1.2 作用域类别
本地作用域:函数内的局部变量
全局作用域:函数外的变量
内置作用域:内置
8.1.3 变量搜索路径
本地–全局–内置
8.1.4 global
全局变量名在函数内被赋值的话必须经过声明
x = 90
def func():
global x
x = 80
print x
func()
print x
8.1.5 local和globals
x = 90
def func():
x = 80
y = 90
print x
print locals()
print globals()
func()
print x
9.1 参数
9.1.1 位置参数
参数的值与参数的位置有关
def func(x,y):
print x
print y
func(5,4)
func(4,5)
9.2 默认值参数
对于一些函数,你可能希望它的一些参数是可选的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。
def func(x,y=1):
print x
print y
func(5,4)
func(4)
9.2.3 关键字参数
对于一些函数,你可能希望它的一些参数是可选的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。
def func(x,y=1):
print x
print y
func(x=5,y=4)
func(y=4,x=5)
10.1高级函数
10.1.1 匿名函数lambda
lamda是一个表达式,而不是语句,这个表达式返回一个函数,又叫匿名函数。
f = lambda x,y:x + y
print f(2,3)
f = lambda x,y:x if(x>y) else y
print f(3,2)
10.1.2 zip
并行迭代,可同时迭代两个序列,返回一个新的元组
-- coding:utf-8 --
name = [‘a’,’b’,’c’,’d’]
age = [‘20’,’25’,’22’,’24’]
print zip(name,age)
10.1.3 map
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
-- coding:utf-8 --
def func(x):
return x * x
print map(func,range(9))
10.1.4 reduce
reduce把一个函数作用在一个序列[x1,x2,x3……]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
a = [1,2,3,4,5]
reduce(lambda x,y:x+y,a)
15
10.1.5 filter
过滤函数,将一个函数作用在序列上,函数返回布尔值,如果返回真,将序列元素放入结果列表中。
filter(lambda x:x>5,range(9))
[6,7,8]filter(lambda x:x%2,range(10))
[1,3,5,7,9]