• Python函数变量和返回值


    Python函数的全局变量和局部变量

    1、不同的编程语言,程序可以分为函数过程两大类,函数具有具体返回值,而过程则不具有具体的返回值,python只具有函数,因为对于它的一般函数,其返回值为所具体返回的值,而类似于过程的实现函数返回值默认为None。

    2、函数的变量具有不同的作用域,根据不同的作用域可以分为全局变量和局部变量,在python编程过程中一般不到万不得已不适用全局变量,因为它具有以下特点:

     1) 代码可读性变差
        2) 代码安全性降低

    以下是关于全局变量的评价总结
        a) 它会造成不必要的常量频繁使用,特别当这个常量没有用宏定义“正名”时,代码阅读起来将万分吃力
       
        b) 它会导致软件分层的不合理,全局变量相当于一条快捷通道,它容易使程序员模糊了“设备层”和“应用层”之间的边界。写出来的底层程序容易自作多情地关注起上层的应用。这在软件系统的构建初期的确效率很高,功能调试进度一日千里,但到了后期往往bug一堆,处处“补丁”,雷区遍布。说是度日如年举步维艰也不为过。

        c) 由于软件的分层不合理,到了后期维护,哪怕仅是增加修改删除小功能,往往要从上到下掘地三尺地修改,涉及大多数模块,而原有的代码注释却忘了更新修改,这个时候,交给后来维护者的系统会越来越像一个“泥潭”,注释的唯一作用只是使泥潭上方再加一些迷烟瘴气。

        d) 全局变量大量使用,少不了有些变量流连忘返于中断与主回圈程序之间。这个时候如果处理不当,系统的bug就是随机出现的,无规律的,这时候初步显示出病入膏肓的特征来了,没有大牛来力挽狂澜,注定慢性死亡。

        e) 无需多言,如果您的系统中大量使用全局变量,那么您已经成功得到一个畸形的系统,它处于一个神秘的稳定状态!你看着这台机器,机器也看着你,相对无言,心中发毛。你不确定它什么时候会崩溃,也不晓得下一次投诉什么时候道理。

    3、关于具体的实例:

    函数实现功能:统计出任何一句所输入字符串里所拥有的字母、数字、空格及其其他字符的数目

    两种方法:

    第一:

    def count(x):
      a="1234567890"
      b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
      c=" "
      x1=x2=x3=0
      i1=i2=i3=0
      L=len(x)
      while x1<=L-1:
        if x[x1] in a:
          i1+=1
        else:
          i1=i1
        x1+=1
      while x2<=L-1:
        if x[x2] in b:
          i2+=1
        else:
          i2=i2
        x2+=1
      while x3<=L-1:
        if x[x3] in c:
          i3+=1
        else:
          i3=i3
        x3+=1
       i4=L-i1-i2-i3
      print("该字符串共有数字:",i1,"个,字母:",i2,"个,空格:",i3,"个,其他字符:",i4,"个")
    t=input("请输入一串字符串:")
    count(t)

    第二:

    def count(*param):

      length = len(param)

      for i in range(length):

      letters = 0

      space = 0

      digit = 0

      others = 0

      for each in param[i]:

       if each.isalpha():

      letters += 1

      elif each.isdigit():

      digit += 1

      elif each == ' ':

      space += 1

       else:

       others += 1

       print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))

    t=input("请输入一串字符串:")
    count(t)

    4、Python的return语句可以返回多个不同类型的值:  默认用逗号隔开,是以元祖的形式返回,你当然也可以用列表包含起来返回

    例如以下:

      >>> def myFun():

        return '知识点', 520, 3.14, True

      >>>  myFun()

       ('知识点', 520, 3.14, True)

  • 相关阅读:
    Interleaving String
    Binary Tree Inorder Traversal
    Unique Binary Search Trees II
    Unique Binary Search Trees
    .Net(C#)访问X509证书加密的Webservice(六)--WSE 2来订制web service
    UpdatePanel控件
    在InfoPath中如何获取user profle
    Sharepoint Webpart 自定义属性
    Sharepoint 服务端对象模型增加项到文档库
    从Sharepoint的List中获取不重复的item
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/9854167.html
Copyright © 2020-2023  润新知