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
  • 相关阅读:
    原生j获取元素的几种方法
    git 解决每次更新代码都要输入用户名密码
    npm/ yarn设置淘宝镜像
    git clone 失败: fatal: unable to access 'https://github.com/liufeifie/xxx.git/': Failed to connect to github.com port 443: Timed out
    git注意事项之|解决remote: User permission denied 问题
    js-input file 文件上传(照片,视频,音频)
    设置 npm 源为淘宝镜像
    vue-cli3安装过程
    PowerShell yarn : 无法加载文件 C:UserspcAppDataRoaming pmyarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参 阅 ....
    http协议简介
  • 原文地址:https://www.cnblogs.com/weiwenbo/p/6559460.html
Copyright © 2011-2022 走看看