zoukankan      html  css  js  c++  java
  • 06 变量与递归函数

    全局变量与局部变量
    前者:无缩进
    后者:子程序中的变量 有缩进

    name="lhj"
    def change_name():
        name='cool'
        print('change_name',name)
        print (name)
    change_name()
    
    name="lhj"
        def change_name()
        global name            #global使name变成全局变量的改变
        name='cool'        #这里也是全局变量的修改
        print('change_name',name)    



    ATT:global声明最好放在开头 否则可能报错
    写代码习惯规则:全局变量大写,局部变量小写

    name="lhj"
    def weihou()    
        name='cool'    
        def weiweihou():
            global name                #若执行此子函数,则全局变量修改
            name='coolcool'
    print('change_name',name)
    
    name="lhj"
        def weihou()    
        name='cool'    
        def weiweihou():
            nonlocal name                #声明上一级变量
            name='coolcool'
    print('change_name',name)
                        


    风湿理论:函数即变量!!!细思甚恐!!!

    递归:在函数内部,调用自己本身
    def calc(n):
    print (n)
    if int(n/2)==0:
    return n
    res=calc(int(n/2))
    return res
    特性:1 必须有一个即明确的结束条件
    2 每次进入更深一层递归 问题规模比上次递归有所减少
    3 递归效率不高 层次过多会导致栈溢出

    import time
    
    person_list=[1,2,3,4,5]
    def ask_way(person_list):
        print ('-'*60)
        if len(person_list)==0:
            return "根本没人知道“
        person=person_list.pop(0)
        if person=='4':
            return '%s说:我知道,老男孩就在XXX地方'%person
    
        print ('hi 帅哥[%s] 敢问路在何方'%person)
        print('%s回答:不晓得 我帮你问问%s吧'%(person,person_list))
        time.sleep(1)
        res=ask_way(person_list)    #返回啦!!递归
        print('%s问的结果是:%res'%(person,res))
        return res
    res=ask_way(person_list)
    print(res)    
  • 相关阅读:
    信息安全[0836]
    05 二极管的微变等效和稳压二极管
    04 二极管的直流等效通路
    STM32 ADS112C04
    03 PN与二极管的特性
    STM32中的程序在RAM还是FLASH里运行?
    基于STM32的MLX90614人体红外测温枪
    KEIL5如何打开KEIL4工程 [复制链接]
    02 PN结的形成
    PreparedStatement和Statament的性能
  • 原文地址:https://www.cnblogs.com/louzhiyuan/p/10389545.html
Copyright © 2011-2022 走看看