第六章-抽象——python基础教程(第二版)笔记
来源:互联网 发布:金融量化分析师 知乎 编辑:程序博客网 时间:2024/05/19 13:06
进入稍难的部分了
6.3创建函数
终于自己写函数了
#斐波那契数列def fibs(num): #定义函数名和参数类型 result=[0,1] #初始化斐波那契的两项 for i in range(num-2): result.append(result[-2]+result[-1]) return result #返回结果是斐波那契最后一项print fibs(10) #结果[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]#6.3.1文档化函数def square(x): "caculates the square of x"#函数说明 return x*xprint square(10)#结果100print help(square)#查看函数说明'''Help on function square in module __main__:square(x) caculates the square of xNone'''#6.3.2并非真正函数的函数def test(): print "a" return print "b"x=test() print test()print x'''没看懂结果aaNoneNone'''
6.4参数魔法
#6.4.2变参#字符串(数字和元组)是不可变的def change(n): n[0]="c"name=["a","b"]change(name)print name #结果['c', 'b']#这个参数有点复杂,举个例子def story(**kwds): #将**后面的参数转化为字典 return "once upon a time,there was a \%(b)s called %(a)s."%kwds #连成一行def power(x,y,*others): #将*后的所有参数转化为列表 if others: print "receieved redundant parameters:",others return pow(x,y)def interval(start,stop=None,step=1): "Imitates range() for step>0" if stop is None: #如果没有为stop提供值 start,stop=0,start #指定参数 result=[] i=start #计算start索引 while i<stop: #直到计算到stop的索引 result.append(i) #将索引添加到result内 i+=step #用step(>0)增加索引i return result#开始测试函数print story(a="A",b="B") #结果 once upon a time,there was a B called A.x={"a":"c","b":"d"}print story(**x) #结果 once upon a time,there was a d called c.del x["a"] #修改参数print story(a="e",**x) #结果once upon a time,there was a d called e.print power(2,3) #结果 8print power(x=2,y=3) #结果 8x=(5,)*2 #序列乘2print power(*x) #结果 3125print power(2,3,"hello world")'''结果receieved redundant parameters: ('hello world',)8'''print interval(5) #结果 [0, 1, 2, 3, 4]print interval(1,5) #结果[1, 2, 3, 4]print interval(3,12,4) #结果[3, 7, 11]print power(*interval(3,7))'''结果receieved redundant parameters: (5, 6)81'''
6.5作用域
6.6递归
#6.6.1阶乘和幂#阶乘 #1.循环方法def factorial(n): result=n for i in range(1,n): result*=i return resultprint factorial(4) #结果 24 #2.迭代方法def factorial(n): if n==1: return 1 else: return n*factorial(n-1)print factorial(4) #结果 24#幂 #1.循环方法def power(x,y): result=1 for i in range(y): result*=x return resultprint power(2,3) #结果 8 #2.迭代方法def power(x,y): if y==0: return 1 else: return x*power(x,y-1)print power(2,3) #结果 8#6.2.2二分查找法def search(sequence,number,lower=0,upper=None): if upper is None: upper=len(sequence)-1 if lower==upper: assert number==sequence[upper] return upper else: middle=(lower+upper)//2 if number>sequence[middle]: return search(sequence,number,middle+1,upper) else: return search(sequence,number,lower,middle)seq=[12,141,123,14,12,2,86,45,2,123]seq.sort()print seq #结果[2, 2, 12, 12, 14, 45, 86, 123, 123, 141]print search(seq,14) #结果 4
0 0
- 第六章-抽象——python基础教程(第二版)笔记
- Python基础教程第六章学习笔记——抽象
- 第七章-更加抽象——python基础教程(第二版)笔记
- 学习《Python基础教程(第二版)》笔记9--抽象1
- 学习《Python基础教程(第二版)》笔记10--抽象2
- python基础教程读书笔记——第六章 抽象
- 第二章-列表和元组——python基础教程(第二版)笔记
- 笔记-Python基础教程(第二版)第二章
- 第十五章-Python和web——python基础教程(第二版)笔记
- Python基础教程笔记——抽象
- 学习《Python基础教程(第二版)》笔记10--抽象3(练习)
- Python基础教程第七章学习笔记——更加抽象
- Python基础教程—第二章
- 第三章-使用字符串——python基础教程(第二版)笔记
- 第四章-字典当索引不好用时:——python基础教程(第二版)笔记
- 第五章-条件、循环和其他语句——python基础教程(第二版)笔记
- 第八章-异常——python基础教程(第二版)笔记
- 第九章-魔法模块、属性和迭代器——python基础教程(第二版)笔记
- iOS 将字符串复制到粘贴板
- 配置Tomcat的数据源
- Base 7
- c++中的内存对齐
- Python高级数据处理与可视化(五)---数据存取
- 第六章-抽象——python基础教程(第二版)笔记
- js--变量对象VO,活动对象AO
- Face++ 接口 java.lang.ClassNotFoundException: org.apache.commons.collections.map.ListOrderedMap解决方法
- Linux下安装rar
- This 指针和const 修饰This指针
- 数据库三范式
- iOS 图片防渲染
- 编程实现学生信息的输入、查询、浏览,其中浏览分为:升序和降序两种。
- 再读c++第一篇 基本知识