• day30-python阶段性复习四


    九、函数

    函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字。

    降低编程难度

    代码重用

    可以通过函数名在程序的不同地方多长执行,这通常叫函数调用(。)。

    预定义函数

    可以直接使用

    自定义函数

    用户自己编写

    函数的定义和调用

    -def函数名([参数列表])://定义

    -函数名([参数名]) //调用

    函数调用

    #!/usr/bin/python
    
    def fun():
    
        sth = raw_input("Please input something: ")
    
    try:                                    
    
     #捕捉异常,如果有异常跳过执行 except处理
    
            if type(int(sth)) == type(1):
    
                print "%s is a number" %sth
    
        except:
    
            print "%s is not number" %sth
    
     fun()

    函数参数

    形式参数和实际参数

    在定义函数是,函数名后面括号中的变量名称叫做”形式参数”,或形参

    在调用函数时,函数名后面括号中的变量名称叫做”实际参数”,称为实参

    #函数命名俩个英文单词,第二个单词首字母大写.

    #!/usr/bin/ptyhon
    
     
    
    import sys       模块
    
    print sys.argv[1]   模块属性,传递参数,传递进去的字符串
    
     
    
    def isNum(s):
    
        for i in s:
    
            if i in '0123456789a':
    
                pass
    
            else:
    
                print "%s is not a number" %s
    
                sys.exit()
    
        else:
    
             print "%s is a number" %s
    
    isNum(sys.argv[1])
    
     
    
     
    
    print sys.argv[1]  模块属性 传递参数, 传递进去的是字符串
    
     
    ls /proc/ 查看pid
    
    函数的默认参数
    
    缺省参数(默认参数) (默认参数从右到左定义,不能从只定义左边形参)(实参从左到右定义)
    
    def fun(x,y=100)
    
    print x +y
    
     
    
    打印系统所有的Pid
    
    #!/usr/bin/ptyhon
    
     
    
    import sys
    
    import os   os模块  os.listdir读取目录,将文件名变为列表列出
    
    def isNum(s):
    
        for i in s:
    
            if i in '0123456789':
    
                pass
    
            else:
    
                break
    
        else:
    
            print s
    
    for i in os.listdir('/proc/'):
    
        isNum(i)
    
     

    函数的变量

     

    全局变量和局部变量

    全局变量在脚步开头定义。

    在局部可以print

    要在局部函数使用操作参数,需要声明成全局变量 global x

    局部变量在函数内局部,使用完立即销毁。局部变量在全局使用,也需要声明global

    1 #!/usr/bin/python
    
      2 def fun():
    
      3     x = 1
    
      4     y = 1
    
      5     print locals()
    
      6 fun()
    
      7 print locals()
    
    locals() 统计变量输出成字典

    函数的返回值

    函数被调用后会返回一个指定的值

    函数调用后默认返回NONE

    return返回值

    返回值可以是任意类型

    return执行后,函数终止

    return与print区别

    查找pid方法二

    #!/usr/bin/ptyhon
    
    import sys
    
    import os
    
    def isNum(s):
    
        for i in s:
    
            if i not in '0123456789':
    
                return False
    
        return True
    
    for i in os.listdir('/proc/'):
    
       if isNum(i):      如果返回值是true,则执行下面条件
    
           print i
    
     
    
    查找pid方法三
    
    #!/usr/bin/ptyhon
    
     
    
    import sys
    
    import os
    
    #print sys.argv[1]
    
     
    
    def isNum(s):
    
        if s.isdigit():     s.isdigit()如果是数字返回true 如果不是返回False
    
            return True
    
        return False
    
    for i in os.listdir('/proc/'):
    
       if isNum(i):
    
           print i
    
     

    多类型传值

    可以将元组和字典的数值传到函数

    def fun(x,y,z):
    
    print x+y+z
    
    t1=(2,3,5)
    
    fun(*t)  加*传递元组数值到函数
    
    dic = {'x':1,'y':4,'z':5}
    
    fun(**dic)  加**传递字典到函数,参数需要一一对应,k值和形参一致。

    冗余参数

    处理多余的参数

    两种类型,传到元组或者字典里

    def fun(x,*args,**kwargs):  *args定义元组,**kwargs定义字典

    单个字符传入元组,例如 1,4,‘a’

    赋值传入字典   例如  x=1,y=2

     递归调用
    
    #!/usr/bin/python
    
    def factorial(n):
    
        sum=1
    
        for i in range(1,n+1):
    
            sum*=i
    
        return sum
    
    print factorial(5)
    
     
    
    递归的注意事项
    
    必须有最后的默认结果
    
    if n ==0
    
    递归参数必须向默认结果收敛的:
    
    factorial(n-1)
  • 相关阅读:
    bzoj2946 [Poi2000]公共串(SA,SAM)
    77 最长公共子序列
    C++ lower_bound 与 upper_bound 函数
    76 最长上升子序列
    75 寻找峰值
    C++标准输入问题
    74 第一个错误的代码版本
    73 前序遍历和中序遍历树构造二叉树
    72 中序遍历和后序遍历树构造二叉树
    71 二叉树的锯齿形层次遍历
  • 原文地址:https://www.cnblogs.com/wxp997/p/7979043.html
Copyright © 2020-2023  润新知