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)    
  • 相关阅读:
    Xpath在选择器中正确,在代码中返回的是空列表问题
    爬虫爬取实例与乱码的处理
    计算机知识
    Django的学习(六)————templates过滤器、Django shell、admin
    Django的学习(五)————实战问题
    Django的学习(四)———— admin
    Django的学习(三)————models
    Window10 MySQL5.7.X 使用SSL连接
    asp.net 防止 跨站脚本
    实用的Windows 工具命令
  • 原文地址:https://www.cnblogs.com/louzhiyuan/p/10389545.html
Copyright © 2011-2022 走看看