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的结果

装饰器

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

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

  1. Python函数式编程:内置filter函数使用说明

    filter操作是函数式编程中对集合的重要操作之一,其作用是从原集合中筛选符合条件的条目,组成一个新的集合. 这在我们日常编程中是非常常见的操作.我们通常的做法是通过循环语句来处理. 而使用filte ...

  2. Python之生成器及内置函数篇4

    一.可迭代对象 #1.什么是迭代?:迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来 #2.可迭代的对象:在python中,但凡内置有__iter__方法的对象,都是可迭代的对象 #3.迭代 ...

  3. python 类(object)的内置函数

    python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...

  4. Python标准库:内置函数hasattr(object, name)

    Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...

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

    一.概述 reduce操作是函数式编程中的重要技术之一,其作用是通过对一个集合的操作,可以从中生成一个值.比如最常见的求和,求最大值.最小值等都是reduce操作的典型例子.python通过内置red ...

  6. Python descriptor 以及 内置property()函数

    Python Descriptor  1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...

  7. python基础之常用内置函数

    前言 python有许多内置的函数,它们定义在python的builtins模块,在python的代码中可以直接使用它们. 常用的内置函数 类型转换 int python的整数类型都是int类型的实例 ...

  8. python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04

    多态 一种事物具备不同的形态 例如:水 --> 固态.液态.气态 多态:# 多个不同对象可以相应同一个对象,产生不同的结果 首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以 ...

  9. python字符串——"奇葩“的内置函数

      一.前言 python编程语言里的字符串与我们初期所学的c语言内的字符串还是有一定不同的,比如python字符串里的内置函数就比语言的要多得多:字符串内的书写格式也会有一点差异,例:字符串内含有引 ...

  10. javascript笔记整理(回调、递归、内置顶层函数)

    1.回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数) a.通过指针来调用 function aa(a,b,fun){ retur ...

随机推荐

  1. faker模块

    faker模块中有很多函数,可以直接生成手机号,身份证号,姓名等 1.安装faker pip install faker 2.faker的使用 from faker import Faker f=Fa ...

  2. 仿XP系统的任务栏菜单

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  3. C#修改json文件中的某些值

    using Newtonsoft.Json; JsonSerializer serialiser = new JsonSerializer(); string newContent = string. ...

  4. Android开发中Activity状态的保存与恢复

    当置于后台的Activity因内存紧张被系统自动回收的时候,再次启动它的话他会重新调用onCretae()从而丢失了之前置于后台前的状态. 这时候就要重写Activity的两个方法来保存和恢复状态,具 ...

  5. Python全栈之路----函数进阶----生成器

    生成器特点: 不能立即产生,取一次创建一次 只能往前走 等到走到最后,就会报错 >>> a = [i for i in range(1000)] >>> a [0, ...

  6. day05 None类型

    None:空类型 表示该值是一个空对象,既不是0也不是" ",判断时候都为False

  7. Unreal Engine 4 C++ UCLASS构造函数易出错分析

    Unreal Engine 4 C UCLASS构造函数易出错分析 GENERATED_BODY GENERATED_UCLASS_BODY 在Unreal Engine 4的任意类中通常会见到两个宏 ...

  8. 远程桌面连接问题,ping服务器ip无法连接主机。

    今天是礼拜一,上班的第一天去连公司的服务器,远程桌面竟然登录不上. 试了一下同事的电脑,也是一样的情况无法连接到远程计算机.这下可把我急坏了. 试了很多方法,也重新启动了服务器,重启后同事的win10 ...

  9. 421. Maximum XOR of Two Numbers in an Array

    这题要求On时间复杂度完成, 第一次做事没什么思路的, 答案网上有不贴了, 总结下这类题的思路. 不局限于这个题, 凡是对于这种给一个  数组,  求出 xxx 最大值的办法, 可能上来默认就是dp, ...

  10. xgboost实例代码

    # -*- coding: utf-8 -*- import xgboost as xgb import csv import jieba jieba.load_userdict('wordDict. ...