zoukankan      html  css  js  c++  java
  • 函数

    函数定义

          使用def关键字,如    def  functionName(参数列表)

    函数的参数

           Python中任何变量都是对象,所以只支持按引用传递。Python通过名字绑定机制把实际参数的值和形式参数的名字绑定在一起。即把形式参数传递到函数所在的局部命名空间,形式参数和实际参数指向同一存储空间

      默认参数

           函数的参数支持默认参数。当某个参数没有传递实际值时,函数将使用默认参数。

    1 def append(args=[]):
    2     args.append(0)
    3     print args
    4 append()
    5 append([1])
    6 append([2,3])
    7 append()

    结果:

    line4:[0]
    line5:[1, 0]
    line6:[2, 3, 0]
    line7:[0, 0]

    注意line4和line7为何是这样的结果呢?(第一次见到时我也疑惑了)因为Python参数是按引用传递的,line4中使用默认参数在函数执行完后在结尾追加了[0],line7中再次使用默认参数时,默认参数已被line4修改为[0],再追加[0]就是[0,0]了。

      可变参数

      在形式参数前使用“ * ”标志符可实现可变参数。

    1 def func(*args):
    2     print args
    3 func(1,2,3)

    结果:(1, 2, 3)

      在形似参数前使用“ ** ”标志符,可以引用一个字典,该字典根据实际参数的赋值表达式生成。

      Python语法规定“*”必须写在“**”前面。

     1 def search(*t, **d):
     2     keys = d.keys()
     3     values = d.values()
     4     print keys
     5     print values
     6     for arg in t:
     7         for key in keys:
     8             if arg == key:
     9                 print "find", arg, d[key]
    10                 
    11 search("A", "B", "C", A = '1', C = '3', B = '2', D = '4')

    结果:

    ['A', 'C', 'B', 'D']
    ['1', '3', '2', '4']
    find A 1
    find B 2
    find C 3

    函数返回值

      函数的返回使用return语句,return后可以是变量或者表达式。

      Python中即使函数没有使用return语句,仍然能获得返回值。

    1 def func():
    2     pass
    3 
    4 b = func()
    5 print b

    结果:None

    None是Python中的一个对象,及不是数字也不是字符。当函数的return后没有对象时,也会返回None。

  • 相关阅读:
    10 个深恶痛绝的 Java 异常。。
    为什么公司宁愿 25K 重新招人,也不给你加到 20K?原因太现实……
    推荐一款代码神器,代码量至少省一半!
    Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝。。
    hdu 3853 LOOPS(概率 dp 期望)
    hdu 5245 Joyful(期望的计算,好题)
    hdu 4336 Card Collector(期望 dp 状态压缩)
    hdu 4405 Aeroplane chess(概率+dp)
    hdu 5036 Explosion(概率期望+bitset)
    hdu 5033 Building (单调栈 或 暴力枚举 )
  • 原文地址:https://www.cnblogs.com/baiyideng/p/3641231.html
Copyright © 2011-2022 走看看