zoukankan      html  css  js  c++  java
  • Python学习笔记七:函数

    1. 定义一个函数

    • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
    1 def functionname( parameters ):
    2    "函数_文档字符串"
    3    function_suite
    4    return [expression]

    2. 函数调用

     1 #coding=utf-8
     2 #!/usr/bin/python
     3  
     4 # Function definition is here
     5 def printme( str ):
     6    "打印任何传入的字符串"
     7    print str;
     8    return;
     9  
    10 # Now you can call printme function
    11 printme("我要调用用户自定义函数!");
    12 printme("再次调用同一函数");

    3. 参数

    按值传递和按引用传递参数

    所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。

     1 #coding=utf-8
     2 #!/usr/bin/python
     3  
     4 # 可写函数说明
     5 def changeme( mylist ):
     6    "修改传入的列表"
     7    mylist.append([1,2,3,4]);
     8    print "函数内取值: ", mylist
     9    return
    10  
    11 # 调用changeme函数
    12 mylist = [10,20,30];
    13 changeme( mylist );
    14 print "函数外取值: ", mylist

    Python解释器能够用参数名匹配参数值,命名参数顺序不重要

     1 #coding=utf-8
     2 #!/usr/bin/python
     3  
     4 #可写函数说明
     5 def printinfo( name, age ):
     6    "打印任何传入的字符串"
     7    print "Name: ", name;
     8    print "Age ", age;
     9    return;
    10  
    11 #调用printinfo函数
    12 printinfo( age=50, name="miki" );

    不定长参数,你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。加了星号(*)的变量名会存放所有未命名的变量参数,选择不多传参数也可。

     1 #coding=utf-8
     2 #!/usr/bin/python
     3  
     4 # 可写函数说明
     5 def printinfo( arg1, *vartuple ):
     6    "打印任何传入的参数"
     7    print "输出: "
     8    print arg1
     9    for var in vartuple:
    10       print var
    11    return;
    12  
    13 # 调用printinfo 函数
    14 printinfo( 10 );
    15 printinfo( 70, 60, 50 );
    16 
    17 >
    18 输出:
    19 10
    20 输出:
    21 70
    22 60
    23 50

    匿名函数,lambda函数只能写一行,

    • 匿名函数不能直接调用print,因为lambda需要一个表达式。
    • Lambda函数能接收任何数量的参数但只能返回一个表达式的值
    1 #coding=utf-8
    2 #!/usr/bin/python
    3  
    4 #可写函数说明
    5 sum = lambda arg1, arg2: arg1 + arg2;
    6  
    7 #调用sum函数
    8 print "Value of total : ", sum( 10, 20 )
    9 print "Value of total : ", sum( 20, 20 )

    定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域

     1 #coding=utf-8
     2 #!/usr/bin/python
     3  
     4 total = 0; # This is global variable.
     5 # 可写函数说明
     6 def sum( arg1, arg2 ):
     7    #返回2个参数的和."
     8    total = arg1 + arg2; # total在这里是局部变量.
     9    print "Inside the function local total : ", total
    10    return total;
    11  
    12 #调用sum函数
    13 sum( 10, 20 );
    14 print "Outside the function global total : ", total 
    >30,30
  • 相关阅读:
    布局-float-margin-padding
    乡镇投票笔记
    Ajax实战
    Form,tagName和nodeName的区别
    Form,选择并转移导航菜单
    如何在ajax请求中设置特殊的RequestHeader
    nginx配置转发详解
    利用循环遍历的方式判断某个对象是否属于这个数组
    几个原生js方法总结
    chrome JS关闭当前页无效问题
  • 原文地址:https://www.cnblogs.com/haizhupan/p/4204515.html
Copyright © 2011-2022 走看看