python大法好——递归、内置函数、函数进阶

1.递归(自己干自己)

def  fun(n):
        n=n/2
        print(n)
        if(n>2)
           fun(n)
#函数调用
fun(10)

结果是5 2 1 0

递归的执行过程:递归执行到最里面一层,外面的层还没有结束,所以由内而外结束。

证明:

def  fun(n):
        n=n/2
        print(n)
        if(n>2)
           fun(n)
        print(n)
#函数调用
fun(10)

结果是 0 1 2 5

递归获取最后一个值:

def calc(n,count):
    print(n,count)
    if count<5:
        return calc(n/2,count+1)
    else:
        return n

c=calc(10,1)
# print("最后一个值的结果是",c)

递归的特性:

1.必须有一个终止条件

2.每次进入更深一层递归时,问题规模应该比上次递归应当减少。

3.递归效率不高,递归层次过多会导致栈溢出。

2.内置函数

1 any()  接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False

2. ascii()  调用对象的__repr__()方法,获得该方法的返回值.

3. bin(), 6. oct(),  7. hex()    三个函数功能为:将十进制数分别转换为2/8/16进制。

4. bool()  测试一个对象是True还是False.

5. bytes()  将一个字符串转换成字节类型

6. str()  将字符类型/数值类型等转换为字符串类型

7. challable()  判断对象是否可以被调用,能被调用的对象就是一个callables对象,比如函数和带有__call__()的实例

8.classmethod()  用来指定一个方法为类的方法,由类直接调用执行,只有一个cls参数,执行雷的方法时,自动将调用该方法的类赋值给cls.没有此参数指定的类的方法为实例方法

9.delattr()  删除对象的属性

10. dict()  创建数据字典

11. dir()  不带参数时返回当前范围内的变量,方法和定义的类型列表,带参数时返回参数的属性,方法列表

1 >>> dir()
2 [‘__builtins__‘, ‘__doc__‘, ‘__loader__‘, ‘__name__‘, ‘__package__‘, ‘__spec__‘, ‘li‘, ‘li1‘, ‘li2‘, ‘li_1‘]
3 >>> dir(list)
4 [‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘clear‘, ‘copy‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]

12. divmod()  分别取商和余数

13. eval()  将字符串str当成有效的表达式来求值并返回计算结果

1 >>> s = "1+2*3"
2 >>> type(s)
3 <class ‘str‘>
4 >>> eval(s)
5 7

14.hash()  哈希值

15. id()  返回对象的内存地址

16. input()  获取用户输入内容

17. int()  将一个字符串或数值转换为一个普通整数

18. len()  返回对象长度,参数可以是序列类型(字符串,元组或列表)或映射类型(如字典)

19 list()  列表构造函数

20. locals()  打印当前可用的局部变量的字典

21. max()  返回给定元素里最大值

...

...

3.函数进阶

名称空间(存放的是变量名字与值之间关系的地方)

名称空间共三种:

A.locals:是函数内的名称空间,包括局部变量和形参

B.globals:全局变量,函数定义所在的模块的名字空间

C.builtins:内置模块的名字空间

作用域的查找顺序:LEGB

local-encosing-globals-builtins

闭包

这种情况是闭包!

def calc():
    n=10
    def fun():
        print(n)
     return fun()
calc()
#结果是10  程序走进calc函数没有执行什么走到return 这是程序应该是要结束了但 return返回了 fun函数 进入fun函数 根据就近原则得到n=10 返回了10的结果

装饰器

由于暂时想的不是太全今天就不写了,不能自圆其说!

原文地址:https://www.cnblogs.com/lchh/p/9383029.html

时间: 2024-08-28 19:40:19

python大法好——递归、内置函数、函数进阶的相关文章

python学习笔记11-python内置函数

python学习笔记11-python内置函数 一.查看python的函数介绍: https://docs.python.org/2/library/ 二.python内置函数 1.abs获取绝对值: 通过python官网查看abs abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument

Python标准库:内置函数open(file, mode=&#39;r&#39;, buffering=-1, encoding=None, errors=None, newline=None, closefd=T

本函数是打开一个文件并返回文件对象.如果文件不能打开,抛出异常OSError. 参数file是一个字符串表示的文件名称,或者一个数组表示的文件名称.文件名称可以是相对当前目录的路径,也可以是绝对路径表示. 参数mode是指明打开文件的模式.默认值是'r',表示使用文本的方式打开文件来读取. 'r'表示打开文件只读,不能写. 'w'表示打开文件只写,并且清空文件. 'x'表示独占打开文件,如果文件已经存打开就会失败. 'a'表示打开文件写,不清空文件,在文件后尾追加的方式写入. 'b'表示二进制的

Python标准库:内置函数str(object=&#39;&#39;) str(object=b&#39;&#39;, encoding=&#39;utf-8&#39;, errors=&#39;strict&#39;)

本函数是实现返回字符串对象.参数object是要转换内容的对象:参数encoding是编码方式:errors是错误处理方式. 例子: #str() print(str(b'abc')) print(str(200)) print(str(b'\xe5\x93\x88\xe5\x93\x88', encoding = 'utf-8', errors = 'ignore')) print(str('蔡屋围'.encode('utf-8'), encoding = 'utf-8', errors =

Python标准库:内置函数print(*objects, sep=&#39; &#39;, end=&#39;\n&#39;, file=sys.stdout, flush=False)

本函数是实现对象以字符串表示的方式格式化输出到流文件对象file里.其中所有非关键字参数都按str()方式进行转换为字符串输出,关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符:关键字参数end是输出结束时的字符,默认是换行符\n:关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件:参数flush是立即把内容输出到流文件,不作缓存. 例子: #print() print(1, 2, 3, sep = ',', end =

Python函数式编程:内置函数reduce 使用说明

一.概述 reduce操作是函数式编程中的重要技术之一,其作用是通过对一个集合的操作,可以从中生成一个值.比如最常见的求和,求最大值.最小值等都是reduce操作的典型例子.python通过内置reduce函数对reduce操作提供了很好的支持. 函数语法:  reduce(function, iterable[,initializer]) 函数参数含义如下: 1.function 需要带两个参数,1个是用于保存操作的结果,另一个是每次迭代的元素. 2.iterable 待迭代处理的集合 3.i

Python:常用的内置函数

内置方法  说明  __init__(self,...)  初始化对象,在创建新对象时调用  __del__(self)  释放对象,在对象被删除之前调用  __new__(cls,*args,**kwd)  实例的生成操作  __str__(self)  在使用print语句时被调用  __getitem__(self,key)  获取序列的索引key对应的值,等价于seq[key]  __len__(self)  在调用内联函数len()时被调用  __cmp__(stc,dst)  比较两

python 之 数据库(内置函数、流程控制、索引)

10.17 内置函数 强调:mysql内置的函数只能在sql语句中使用 #数学函数 round(x,y) #返回参数x的四舍五入的有y位小数的值 rand() #返回0到1内的随机值,可以通过提供一个参数(种子)使rand()随机数生成器生成一个指定的值. ? #加密函数 md5() #计算字符串str的MD5校验和 password(str) #返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法. date_format: create table bl

MySQL中的内置系统函数

MySQL中的内置系统函数 用在SELECCT语句, 能及子句 where order by having 中 UPDATE DELETE, 函数中可以将字段名作为变量来用,变量的值就是这个列对应的每一行记录 一.字符串函数 php中用的函数,MySQl中大部也提供 1. CONCAT(S1,S2....SN): 把传入的参数连接成一个字符串 2. INSERT(str, x, y, insert): 将字符串X位置开始,y个字符串长度替换为字符串insert 3. LOWER(str) UPP

javascript内置顶层函数

名词解释: 1.内置:  ECMAscript 内置函数:ECMAscript 自带的函数  Number() 宿主函数: BOM    DOM   alert()   prompt()   confirm(); //confirm()  弹出一个带有确定和取消按钮的一个对话框,确定返回真,取消返回假. 2.顶层 字符串函数:字符串.函数() 数组函数 顶层对象的函数,可以作用于任何对象. 内置 顶层 函数 1.escape()   对字符串进行编码 2.unescape()   对编码的字符串

浏览器内置Console函数使用详解

浏览器内置Console函数比较好用:Chrome 和 FireFox(Firebug插件) 利用此功能可以像直接在面板里面运行JS一样(写法不同而已) 一.显示信息的命令 Firebug内置一个console对象,提供5种方法,用来显示信息. 最简单的方法是console.log(),可以用来取代alert()或document.write().比如,在网页脚本中使用console.log("Hello World"),加载时控制台就会自动显示如下内容. 另外4种写法: consol