• 15-python-局部变量全局变量


    1、局部变量与全局变量

     1 # -*- coding:utf-8 -*-
     2 name = "zf"   # 全局变量
     3 
     4 
     5 def change_name():
     6     name = "123"  # 这个name只在函数里面执行  局部变量  global name  定义一个全局变量name
     7     print("change_name", name)
     8 
     9 
    10 change_name()
    11 print(name)

    全局变量都要大写

    局部变量都要小写

    nonlocal 指同名的上一级变量

    2、风湿理论

      函数即变量

      把函数看成变量来使用

     1 # -*- coding:utf-8 -*-
     2 def bar():
     3     print("from bar")
     4 
     5 
     6 def foo():
     7     print("from foo")
     8     bar()
     9 
    10 
    11 foo()

    3、递归

      递归函数必须要有一个明确的结束条件,下面的程序没有结束条件

    1 # -*- coding:utf-8 -*-
    2 def calc(n):
    3     print(n)
    4     calc(n)
    5 
    6 
    7 calc(10)

      带有结束条件的递归函数程序

    1 # -*- coding:utf-8 -*-
    2 def calc(n):
    3     print(n)
    4     if int(n / 2) == 0:
    5         return n
    6     return calc(int(n / 2))
    7 
    8 
    9 calc(10)
     1 # -*- coding:utf-8 -*-
     2 import time
     3 
     4 person_list = ["1", "2", "3", "4", "5"]
     5 
     6 
     7 def ask_way(person_list, n=0):
     8     print("-"*40)
     9     if n == len(person_list):
    10         return "没人知道=000"
    11     person = person_list[n]
    12     if person == "3":
    13         return "%s知道=666" % person
    14     print("我不知道,我要去问下一个")
    15     n = n + 1
    16     return ask_way(person_list, n)   #  这行代码必须要有return
    17 
    18 print(ask_way(person_list))

    但是递归函数效率不高。而且容易内存溢出。建议尽量不要使用。

  • 相关阅读:
    Android apk 的安装过程
    Android布局技巧
    Android achartengine统计图
    Less适配移动端rem
    jquery.cookie.js时间设置
    前端面试题记录
    js身份证号码验证(小程序版)
    leetcode算法题笔记|Reverse Integer
    leetcode算法题笔记|two sum
    微信小程序多商品评价评星提交
  • 原文地址:https://www.cnblogs.com/zhfang/p/8724984.html
Copyright © 2020-2023  润新知