学习Python (五)

转载自龙腾测试

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]

你可能感兴趣的:(Python,python,迭代,高级函数)