• 函数


    函数定义

          使用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。

  • 相关阅读:
    [HAOI2009] 毛毛虫
    [NOI2015]品酒大会
    SDOI2016 生成魔咒
    [POJ2406]字符串的幂
    [SPOJ705]不同的子串
    快速幂和矩阵快速幂
    对于最近的一些日常总结by520(17.10.18)
    思维训练
    趣味性的高智商(贼有意思)的题(坑)
    C++手动开O2优化
  • 原文地址:https://www.cnblogs.com/baiyideng/p/3641231.html
Copyright © 2020-2023  润新知