• 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

  • 相关阅读:
    Hadoop学习笔记1:伪分布式环境搭建
    VMware 下的CentOS6.7 虚拟机与Windows7通信
    CentOS6.7 下安装JDK
    [HDU 1430] 魔板
    数码问题合集
    [light oj 1328] A Gift from the Setter
    [light oj 1013] Love Calculator
    [POJ 1151] Atlantis
    关于12月28日到12月29日
    [HDU 1199] Color the Ball
  • 原文地址:https://www.cnblogs.com/jiangjunfeng/p/9497277.html
Copyright © 2020-2023  润新知