• day15


    y=2*x+1
    def test(x,y,z)
      '注释'
      代码
      return res
    test()

    局部变量与全局变量
    全局变量
    顶头写的

    局部变量
    子程序中定义的变量

    nam='sb'
    def change():
      nam="dog"
      print(nam)
    change()
    print(nam)

    #结果
    dog
    sb

    nam='sb'
    def change():
      global name
      nam="dog"
      print(nam)
    change()
    print(nam)

    如果函数的内容无global关键字,优先读取局部变量,无法对全局变量重新赋值,
    但是对可变对象,可以对内部元素进行操作
    如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值

    全局变量名大写
    局部变量名小写

    name='gangniang'
    def weihou():
      name='chengzhuo'
      def weiweihou():
        global name
        name='lengjing'
      weiweihou()
      print(name)
    print(name)
    weihou()
    print(name)

    #结果
    gangniang
    chengzhuo
    lengjing


    name='gangniang'
    def weihou():
      name='chengzhuo'
      def weiweihou():
        nonlocal name #上一级变量
        name='lengjing'
      weiweihou()
      print(name)
    print(name)
    weihou()
    print(name)


    #结果


    def foo()
      print("from foo")
      bar()

    foo() #有问题


    def bar():
      print('bar')
    def foo()
      print("from foo")
      bar()

    foo() #没问题

    def foo()
      print("from foo")
      bar()
    def bar():
      print('bar')

    foo() #没问题

    def foo()
      print("from foo")
      bar()
    foo()
    def bar():
      print('bar') # 有问题

    风湿理论:函数即变量



    递归
    def calc(n):
      print(n)
      calc(n)
    calc(10) #死循环



    def calc(n):
      print(n)
      if int(n/2)==0:
        return n
      res=cal(int(n/2))
      return res

    calc(10)

    递归特性:
    必须有一个明确的结束条件
    每次进入更深层次递归,问题规模比上一次递归有所减少
    递归效率不高,递归层次过多会导致栈溢出


    person_list=['alex','wupeiqi','yuanhao','linhaifeng','zsc']
    def ask_way(person_list):
      if len(person_list)==0:
        return '根本没人知道'
      person=person_list.pop(0)
      if person=='linhaifeng':
        return '%s说:我知道。。。' %person

      print('hi 美男%s,敢问路在何方' %person)
      print('%s回答道:我不知道,但念在你慧眼识猪,你等着,我帮你问问%s' %(person,person_list))
      res=ask_way(person_list)
      print('%s问的结果是:%s' %(person,res))
      return res
    res=ask_way(person_list)
    print(res)

    2018-08-18

  • 相关阅读:
    笨笨的洪水堵截
    青蛙的约会
    扩展欧几里德
    windows上修改路由表
    怎样编写注册表文件
    win7启动文件修复
    word文档中的字号和磅的对应关系
    将Windows 7导航窗格中的收藏夹、库、家庭组、网络全部去掉
    DNS
    UTF-8 GBK GB2312 之间的区别和关系
  • 原文地址:https://www.cnblogs.com/jiangjunfeng/p/9497277.html
Copyright © 2020-2023  润新知