zoukankan      html  css  js  c++  java
  • Python 函数基本概念

    函数基本概念

    函数是对程序逻辑进行结构化或过程化的一种编程方法
    将整块代码巧妙地隔离成易于管理的小块,把重复代码放到函数中而不是进行大量的拷贝,这样既能节省空间,也有助于保持一致性,通常函数都是用于实现某一种功能
    定义一个函数,定义函数不执行函数的调用加()
     
    #!/usr/bin/env python
    
    def  pstar():
        print '*' * 20
        print '#' * 20
    
    pstar()
    pstar()

    /usr/bin/python2.6 /root/PycharmProjects/untitled10/fun.py
    ********************
    ####################
    ********************
    ####################

    Process finished with exit code 0

    不写括号是对函数的引用

    调用与引用

    引用是一个指针,函数在内存中的地址

    #!/usr/bin/env python
    
    def  pstar():
        print '*' * 20
        print '#' * 20
    
    a = pstar()
    b = pstar
    
    print a
    print 'hello'
    b()
    
    
    /usr/bin/python2.6 /root/PycharmProjects/untitled10/fun.py
    ********************
    ####################
    None
    hello
    ********************
    ####################
    
    Process finished with exit code 0
    函数很少会有raw_input
    通过参数的方式传入
    def pstar(num):
        return '*' * num
    
    n = int(raw_input("Please enter number:"))
    a = pstar(n)
    
    print a
    
    
    /usr/bin/python2.6 /root/PycharmProjects/untitled10/canshu.py
    Please enter number:10
    **********
    
    Process finished with exit code 0

    num 形式的参数 形参 n是实际的参数  实参

     默认参数

    def pstar(num=20):
        return '*' * num
    
    print pstar()
    
    
    /usr/bin/python2.6 /root/PycharmProjects/untitled10/canshu.py
    ********************
    
    Process finished with exit code 0

    之前写的 模拟cp操作写成函数的形式

    #/usr/bin/env python
    
    def cp():
        sfname = open('/bin/ls')
        dfname = open('/tmp/ls','w')
    
        while True:
            data = sfname.read(4069)
            if not data:
                break
            dfname.write(data)
    
        sfname.close()
        dfname.close()
        
    cp()

    改进函数

    #/usr/bin/env python
    
    def cp(sfname,dfname):
        src_fobj = open(sfname)
        dst_fobj = open(dfname,'w')
    
        while True:
            data = src_fobj.read(4069)
            if not data:
                break
            dst_fobj.write(data)
    
        src_fobj.close()
        dst_fobj.close()
    
    cp('/tmp/ls','/tmp/ls.old')
    
    
    [root@localhost ~]# md5sum  /tmp/ls
    062551aec6c44f228777fde0ea992a65  /tmp/ls
    [root@localhost ~]# md5sum  /tmp/ls.old 
    062551aec6c44f228777fde0ea992a65  /tmp/ls.old

    位置参数

    通过位置传入参数

    #/usr/bin/env python
    
    import sys
    
    def cp(sfname,dfname):
        src_fobj = open(sfname)
        dst_fobj = open(dfname,'w')
    
        while True:
            data = src_fobj.read(4069)
            if not data:
                break
            dst_fobj.write(data)
    
        src_fobj.close()
        dst_fobj.close()
    
    cp(sys.argv[1],sys.argv[2])
    
    
    [root@localhost untitled10]# python cp.py  /etc/hosts /tmp/hosts
    [root@localhost untitled10]# md5sum  /etc/hosts 
    54fb6627dbaa37721048e4549db3224d  /etc/hosts
    [root@localhost untitled10]# md5sum  /tmp/hosts
    54fb6627dbaa37721048e4549db3224d  /tmp/hosts
  • 相关阅读:
    js笔记4
    js笔记3
    js笔记2
    js笔记1
    前端笔记13
    (7)第3章的开始
    (6)第2章的尾巴~
    (5)自定义数据结构再探
    我的学习方法(6)
    (4)自定义数据结构初探
  • 原文地址:https://www.cnblogs.com/weiwenbo/p/6559460.html
Copyright © 2011-2022 走看看