zoukankan      html  css  js  c++  java
  • Python学习:def函数的定义、使用及参数传递

    Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为:

    def 函数名(参数1, 参数2, ……, 参数N):
        执行语句
    函数名为调用的表示名,参数则是传入的参数,可以更具需要定义,也可以没有。 
    
    # 例1:简单的函数使用
    #
     coding=gb2312

    # 定义函数
    def hello():
        print 'hello python!'
        
    # 调用函数        
    hello()
        
    >>> hello python!
    
    

    函数可以带参数和返回值,参数将按从左到右的匹配,参数可设置默认值,当使用函数时没给相应的参数时,会按照默认值进行赋值。

    # 例2:累加计算值
    #
     coding=gb2312

    # 定义函数
    def myadd(a=1,b=100):
        result = 0
        i = a
        while i <= b:    # 默认值为1+2+3+……+100
            result += i    
            i += 1
        return result

    # 打印1+2+……+10        
    print myadd(1,10)
    print myadd()       # 使用默认参数1,100
    print myadd(50)     # a赋值50,b使用默认值
        
    >>> 55
    >>> 5050
    >>> 3825
    
    

    Python 函数的参数传递时,值得注意的是参数传入时若为变量会被当作临时赋值给参数变量,如果是对象则会被引用。

    # 例3:
    #
     coding=gb2312

    def testpara(p1,p2):
        p1 = 10
        p2.append('hello')

    l = []      # 定义一数组对像
    a = 20      # 给变量a赋值
    testpara(a,l)  # 变量a与对象数组l作为参数传入
    print a     # 打印运行参数后的值
    for v in l: # 打印数组对象的成员
        print v
            
    >>> 20        # 调用函数后a变量并未被复值
    >>> hello   # 而对象l数组则增加成员hello    
  • 相关阅读:
    javaWeb学习笔记之关于重定向和请求转发的区别
    javaWeb学习笔记之关于Servlet文件下载
    javaWeb学习笔记之关于http
    javaWeb学习笔记之关于tomcat
    小程序订阅消息推送
    Oracle数据库序列的相关问题
    将本地项目push到gitlab仓库中
    面试之BI-SQL--table转换[2]
    面试之BI-SQL--table转换
    面试之C#--垃圾回收器什么时候回收?
  • 原文地址:https://www.cnblogs.com/nosnowwolf/p/2514997.html
Copyright © 2011-2022 走看看