第五天(全局变量,局部变量,高级函数)

在python中,没有缩进的变量为全局变量,推荐全部用大写字母。

NAME = "aitg"
def mz():
    global NAME
    print(NAME)
mz()

在代码块内部的变量为局部变量。

def mz():
    name = "aitg"
    print(name)
mz()

局部变量还可以使用global方法指定为全局变量

NAME = "码农也疯狂"
def mz():
    global NAME
    NAME = "aitg"
    return NAME
print(mz())
print(NAME)
#输出结果全部是
# aitg
#aitg

匿名函数使用

#计算x+1的结果
a = lambda x:x+1
print (a(1)) #传入x值
#输出 2

递归使用

def calc(n):
    print(n)
    if int(n / 2) == 0: #终止条件
        return n
    res=calc(int(n / 2))
    return res

res=calc(10)
print(res)

高级函数

1、函数式编程

  • 函数本身可以赋值给变量,赋值后变量为函数;
  • 允许将函数本身作为参数传入另一个函数;
  • 允许返回一个函数。

2、map/reduce函数

  • map(fun, lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表返回

  • reduce(func(x,y),lst),其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累积计算。

  lst = [a1, a2 ,a3, ......, an]

  reduce(func(x,y), lst) = func(func(func(a1, a2), a3), ......, an)

3、filter函数

  • 筛选序列
  • filter(func, lst),将func作用于lst的每个元素,然后根据返回值是True或False判断是保留还是丢弃该元素。

原文地址:https://www.cnblogs.com/zhangguanghe/p/8719640.html

时间: 2024-10-12 09:43:10

第五天(全局变量,局部变量,高级函数)的相关文章

python局部变量、高级函数、匿名函数、嵌套函数、装饰器

1.局部变量 在函数内部,可以用Global,显式的声明为全局变量.这种方式永远不要这么用. Ctrl+?多行注释i 2.高级函数 把函数名当做参数,传给函数 def add(a,b,f): return f(a)+f(b) res = add(3,-6,abs) abs是内置函数 def bar(): print("in the bar") def test1(func): 首先看第一个例子:def bar(): print("in the bar") def t

JavaScript高级 函数表达式 《JavaScript高级程序设计(第三版)》

函数表达式的特征 使用函数实现递归 使用闭包定义私有变量 前面我们说到定义函数有两种方式:函数声明.函数表达式. 两者的区别在于函数声明提升,前者在执行之前的上下文环境中直接被赋值,而后者不会. 一.递归 递归函数是一个函数通过名字调用自身的情况下构成的. function factorial(num){ if(num<1){ return 1; }else{ return num * arguments.callee(num-1); } } alert(factorial(10)); 二.闭包

(十六)python 3 全局变量局部变量

全局变量和局部变量 全局变量与局部变量两者的本质区别就是在于作用域. 用通俗的话来理解的话,全局变量是在整个py文件中声明,全局范围内都可以访问.局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就爆掉了. 在子程序中定义的变量称为局部变量,只在子程序内部生效, 在程序一开始定义的变量称为全局变量 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序. 当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用,在其他地方全局变量起作用 gl

一篇文章把你带入到JavaScript中的闭包与高级函数

在JavaScript中,函数是一等公民.JavaScript是一门面向对象的编程语言,但是同时也有很多函数式编程的特性,如Lambda表达式,闭包,高阶函数等,函数式编程时一种编程范式. function dada() { var a = 1; var b = function() { console.log(a); } return b // b 就是一个闭包函数,因为它能访问dada函数的作用域 } JavaScript的函数也是对象,可以有属性,可以赋值给一个变量,可以放在数组里作为元素

静态变量,全局变量,局部变量的区别

1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局作用域.全局变量只需在一个源文件中定义,就可以作用于所有的源文件.当然,其他不包含全局变量定义的源文件需要用extern关键字再次声明这个全局变量. 2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对所有的函数都是可见的,而静

高级函数

高级函数 安全的类型检测 js内置的类型检测并非完全可靠,typeof操作符难以判断某个值是否为函数 instanceof在多个frame的情况下,会出现问题. 例如:var isArray = value instance of Array ; 会由于存在多个window,而value与Array不属于同个window的情况而导致出错 对于这样的问题,最好的解决方法是通过调用Object的toString方法,例如: 1 function isArray(){ 2 return Object.

JS的全局变量&amp;局部变量

1 <script> 2 var i=10; //全局变量 3 j = 20; //全局变量 4 5 function(){ 6 var i=30; //局部变量 7 h = 40; //全局变量 8 } 9 </script> 由此可以总结一句话,在函数内部定义的就是局部变量,否则就是全局变量. 1 <script> 2 var i =10; 3 function display(){ 4 //var i = 20;//局部变量只在局部作用域起作用 5 i= 30;

什么是回调或高级函数?

http://blog.csdn.net/luoweifu/article/details/41466537    在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实际上是一种对象,它可以“存储在变量中,通过参数传递给(别一个)函数(function),在函数内部创建,从函数中返回结果值”. 因为function是内置对象,我们可以将它作为参数传递

C++中如何访问全局变量和全局函数

全局变量和全局函数是相对局部变量和局部函数而言的,不在{}或者for, if 等范围内的都是全局变量或者全局函数,最简单的是在同一个文件中去声明. 例如在mian.cpp中 #include <iostream> int gResult; int gAdd(int a, int b) { return a + b; } int main(int argc, const char * argv[]) { gResult = aAdd(2, 3); } 这样的话main函数上面的都是都是全局变量和