码迷,mamicode.com
首页 > 编程语言 > 详细

Python 之路5

时间:2017-07-18 01:54:33      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:turn   地方   lob   问题   glob   pytho   3.2   结束   通过   

3 局部变量

     3.1 定义:

     只在函数里生效的变量,这个函数就是变量的作用域,离开了这个函数,就不存在了

eg  def function(name):

    print(name)

  function("Logan")

  print(name) #这个地方会报错,因为我们没有定义name

   3.2 对应面

     全局变量,在第一级定义的变量,后面所有的函数都可以调用

            如果局部变量与全局变量重名,那么局部变量一定要在执行语句之前进行定义,否则会出现错报。

      但是,我们可以在函数内部通过Globa 全局变量的方式,来修改全局变量

    3.3 函数内部坚决不要声明全局变量,不要声明全局变量,不要声明全局变量。

         因为在函数里面改的话,但是由于我们不知道该函数会被什么引用,这样的话全局变量怎么变得我们很难知道如何进行,导致我们无法调试。

   3.4 列表,字典,集合都可以在函数中可以通过调用函数进行修改。

   eg1    name=“Logan”

      def  chang_name(name):

         print("Before print",name)

         name="Logan L"

         print("after print",name)

      

      chang_name("Logan3")

      print(name)  # 结果还是Logan ,不会因为局部变量变化了name,就导致全局变量结果改变。

 

   eg 2  names=["Logan","Sean","Emma"]

      print(names)

      def change_names():

         names[0]="Logan  L"

        print(names)# 这里的结果就是  "Logan L", "Sean", "Emma", 全局变量变了

4 递归

4.1 定义

函数自动调用自己,就叫做递归函数

4.2 条件

必须有明确的结束条件

每次进入更深一层递归时,问题规模相比上次递归都应该有所减少

 

eg

  def cal(n)

   print(n)

   if int(n/2)>0:

          return cal(n/2)

   print("-->",n)

   cal(2)# 结果就是1,因为再除下去,就不满足int(0.5)>0的条件了

 

 

Python 之路5

标签:turn   地方   lob   问题   glob   pytho   3.2   结束   通过   

原文地址:http://www.cnblogs.com/logan-EY/p/7198087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!