python之路:进阶篇 内置函数
| 内置函数 | 

实例:
1 #!/usr/bin/env python
2 # --*--coding:utf-8 --*--
3 li = [11, 22, 33]
4 news = map(lambda a: a + 2, li)
5 print news
6 li = [22, 33, 44]
7 l1 = [11, 22, 33]
8 news = map(lambda a, b: a - b, li, l1)
9 print news
li = [11, 22, 33]
news = map(lambda a: a * 2, li)
print news
li = [100, 2200, 3300]
news = map(lambda a: a / 2, li)
print news
实例输出结果:
[13, 24, 35]
[11, 11, 11]
[22, 44, 66]
[50, 1100, 1650]
序列中的每一个元素经过操作,得出新的序列。两个序列相互操作必须元素相同,如果不同会造成多出的元素与None相互操作,出现错误。
#!/usr/bin/env python
# --*--coding:utf-8 --*--
li = [22, 33, 44]
l1 = [11, 22]
news = map(lambda a, b: a + b, li, l1)
print news
报错信息:
Traceback (most recent call last):
File "D:/s11day2/s11day2/test/test.py", line 5, in <module>
news = map(lambda a, b: a + b, li, l1)
File "D:/s11day2/s11day2/test/test.py", line 5, in <lambda>
news = map(lambda a, b: a + b, li, l1)
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
| 二、filter | 

实例:
1 #!/usr/bin/env python
2 # --*--coding:utf-8 --*--
3 li = [22, 33, 44]
4 l1 = [11, 22]
5 news = map(lambda a, b: a + b, li, l1)
6 print news#!/usr/bin/env python
7 # --*--coding:utf-8 --*--
8 li = [22, 33, 44, 55, 66, 77, 88, 99]
9 news_list = filter(lambda a: a > 66, li)
print news_list
li = [22, 33, 44, 55, 66, 77, 88, 99]
news_list = filter(lambda a: a > 44 and a < 88 , li)
print news_list
输出:
[77, 88, 99]
[55, 66, 77]
| 三、reduce | 


 
2 # --*--coding:utf-8 --*--
3 li = [22, 33, 44, 55, 66, 77, 88, 99]
4 news_list = reduce(lambda a, b: a + b, li)
5 print news_list
6 li = [22, 33, 44, 55, 66, 77, 88, 99]
7 news_list = reduce(lambda a, b: a - b, li)
8 print news_list
9 li = [22, 33, 44, 55, 66, 77, 88, 99]
news_list = reduce(lambda a, b: a / b, li)
print news_list
li = [22, 33, 44, 55, 66, 77, 88, 99]
news_list = reduce(lambda a, b: a * b, li)
print news_list
实例
输出结果:
484
-440
0
77786550737280
| yield生成器 | 
对比range和xrange的区别:
>>> print range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print xrange(10)
xrange(10)
1 #!/usr/bin/env python
2 # --*--coding:utf-8 --*--
3 def rmange(arg):
4 seek = 0
5 while True:
6 seek = seek + 1
7 if seek > arg:
8 return
9 else:
yield seek
for i in rmange(10):
print i
| 装饰器 | 
1 #!/usr/bin/env python
2 # --*--coding:utf-8 --*--
3 def Before(request,kargs):
4 print 'before'
5 def After(request,kargs):
6 print 'after'
7 def Filter(before_func,after_func):
8 def outer(main_func):
9 def wrapper(request,kargs):
before_result = before_func(request,kargs)
if(before_result != None):
return before_result;
main_result = main_func(request,kargs)
if(main_result != None):
return main_result;
after_result = after_func(request,kargs)
if(after_result != None):
return after_result;
return wrapper
return outer
@Filter(Before, After)
def Index(request,kargs):
print 'index'
if __name__ == '__main__':
Index(1,2)
执行结果:
before
index
after
before
after
index
| 冒泡算法 | 
li = [13, 22, 6, 99, 11]
for m in range(4): # 等价于 #for m in range(len(li)-1):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
第二步
1 li = [13, 22, 6, 99, 11]
2 for m in range(4): # 等价于 #for m in range(len(li)-1):
3 if li[m]> li[m+1]:
4 temp = li[m+1]
5 li[m+1] = li[m]
6 li[m] = temp
7 for m in range(3): # 等价于 #for m in range(len(li)-2):
8 if li[m]> li[m+1]:
9 temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
for m in range(2): # 等价于 #for m in range(len(li)-3):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
for m in range(1): # 等价于 #for m in range(len(li)-4):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
print li
第三步
li = [13, 22, 6, 99, 11]
for i in range(1,5):
for m in range(len(li)-i):
if li[m] > li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
print li
输出结果:
[13, 22, 6, 99, 11]
[13, 6, 22, 99, 11]
[13, 6, 22, 11, 99]
[6, 13, 22, 11, 99]
[6, 13, 11, 22, 99]
[6, 11, 13, 22, 99]
| 递归 | 
F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1]+ F[n-2](n=>2)
程序源代码:
方法一
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
# 输出了第10个斐波那契数列
print fib(10)
方法二
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 使用递归
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
# 输出了第10个斐波那契数列
print fib(10)
55
方法三
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
# 输出前 10 个斐波那契数列
print fib(10)
以上程序运行输出结果为:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
python之路:进阶篇 内置函数的更多相关文章
- [Python笔记]第四篇:内置函数
		本篇主要内容:内置函数 函数 参考:https://docs.python.org/3.5/library/functions.html 内置函数列表 一.数学运算类 abs(x)求绝对值 >& ... 
- 【python之路46】内置函数2,是【python之路18】的补充
		将3.5版本中的68个内置函数,按顺序逐个进行了自认为详细的解析.为了方便记忆,将这些内置函数进行了如下分类: 数学运算(7个) 类型转换(24个) 序列操作(8个) 对象操作(7个) 反射操作(8个 ... 
- 【python之路18】内置函数,补充请看【python之路46】
		1.abs(number)表示某个数字的绝对值 print(abs(-123)) #打印出123 2.all(iterable) 表示可迭代的参数全部为True那么返回True,否则返回False r ... 
- Python进阶(五)----内置函数Ⅱ 和 闭包
		Python进阶(五)----内置函数Ⅱ 和 闭包 一丶内置函数Ⅱ ####内置函数#### 特别重要,反复练习 ###print() 打印输入 #sep 设定分隔符 # end 默认是换行可以打印到 ... 
- 【python】dir(__builtins__)查看python中所用BIF(内置函数)
		dir(__builtins__)查看python中所用BIF(内置函数) 
- 查看python内部模块命令,内置函数,查看python已经安装的模块命令
		查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list或者用 help('modules') 或者用 python -m ... 
- Python学习(八) —— 内置函数和匿名函数
		一.递归函数 定义:在一个函数里调用这个函数本身 递归的最大深度:997 def func(n): print(n) n += 1 func(n) func(1) 测试递归最大深度 import sy ... 
- python基础12_匿名_内置函数
		一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ... 
- python大法好——递归、内置函数、函数进阶
		1.递归(自己干自己) def fun(n): n=n/2 print(n) if(n>2) fun(n) #函数调用 fun(10) 结果是5 2 1 0 递归的执行过程:递归执行到最里面一层 ... 
随机推荐
- 第13章 Swing程序设计----JFrame窗体
			JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些Swing组件的容器. 在开发应用程序时可以通过继承java.swing.JFrame类创建一个窗体,在 ... 
- dfs.replication 参数 动态修改
			首先 dfs.replication这个参数是个client参数,即node level参数.需要在每台datanode上设置.其实默认为3个副本已经够用了,设置太多也没什么用. 一个文件,上传到hd ... 
- 聊一聊PV和并发、以及计算web服务器的数量的方法【转】
			聊一聊PV和并发.以及计算web服务器的数量的方法 站长之家 2016-08-17 09:40 最近和几个朋友,聊到并发和服务器的压力问题.很多朋友,不知道该怎么去计算并发?部署多少台服务器才合适? ... 
- 数论+dp Codeforces Beta Round #2 B
			http://codeforces.com/contest/2/problem/B 题目大意:给你一个n*n的矩形,问从(1,1)出发到(n,n),把图中经过的所有的数字都乘在一起,最后这个数字有多少 ... 
- Qt使用中碰到的问题
			1.发现table第一列在切换后变黑,或多了行数. 一般是编译出来的.exe文件所使用的qt的dll不匹配造成的.一定要使用编译时,所使用的那个版本的qt的dll. 
- 超棒的自定义超酷滚动条jQuery插件 - Perfect Scrollbar
			可能大家厌倦了千篇一律的页面滚动条,如果你希望能够设计出与众不同的页面UI设计的话,Perfect ScrollBar可能就是你寻找的解决方案. 这个滚动条来自于一个个人项目,一个简单但是非常棒的滚动 ... 
- CodeForces 566B Replicating Processes
			#include <bits/stdc++.h> #define N 3010 #define LL long long #define unsigned U using namespac ... 
- phpmyadmin配置方式
			简单的说,phpmyadmin就是一种mysql的管理工具,安装该工具后,即可以通过web形式直接管理mysql数据,而不需要通过执行系统命令来管理,非常适合对数据库操作命令不熟悉的数据库管理者,下面 ... 
- php下载文件的一种方式
			<?php ob_start(); // $file_name="cookie.jpg"; $file_name="abc.jpg"; //用以解决中文不 ... 
- android 5.0新特性学习--视图轮廓
			ViewOutlineProvider -- 视图轮廓setOutlineProvider--可以使用View.setClipToOutline方法去剪切一个视图的outline区域.只有rectan ... 
