码迷,mamicode.com
首页 > 编程语言 > 详细

python学习 函数

时间:2016-06-04 19:31:52      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

# -*- config=utf-8 -*-
####################################   函数  ##################################
def func_02(a,b):# a b  :形式参数
    if a>b:
        print("a 大于 b")
    else:
        print("b大于等于a");
func_02(2,4);# 2  4 :实际参数
###################################### 形参数设置默认值 #########################################
def mashine(x=0,y=0):#x=0  表示设置默认值
    print(x,"+" ,y,"计算结果:",x+y);
mashine();#使用默认值         0 + 0 计算结果: 0
mashine(21,34);#传值          21 + 34 计算结果: 55
mashine(21);# 不指定参数      21 + 0 计算结果: 21
mashine(y=21);# 指定参数传值  0 + 21 计算结果: 21
##########################################变量的作用域#########################################
x="I am global var";#全局变量
def func_03():
    b=200;#局部变量
    print(x,b);
func_03();
# 使用 global 将 函数内部的变量 强制 声明为全局变量  函数 必须先被调用
m="C-D-E";
def func_04():
    global m;
    m="A-B-C";
    print(m);

func_04();#A-B-C
print(m);#A-B-C  函数必须先调用
#######################################函数的返回值 #####################################
# 1. return 返回函数执行结果  并 终止函数
# 2、默认 返回None
def func_05(x,y):
    print(x+y);
    return x+y;
sum=func_05(12,23);#接收函数处理的结果
print(sum);

# -*- config=utf-8 -*-
##################################### 多类型参数 ########################
print("%s : %s " % (A,B)); #格式化输出   A : B
arr=(a,b,c);#元组
list=list(range(10));#元组
map={"a":"A","b":"B","c":"C"};#字典


#将元组 作为参数
def func_01(x,y,z):
    print(x,y,z);

func_01(*arr);#a b c

#默认参数
def func_02(name="张三",age=12):
    print("name : %s " % name);
    print("age : %s " % age);

func_02(); #在不传值得时候 使用默认值   name : 张三
func_02("李四",30);#name : 李四

#传递字典  函数额参数 要与 字典的key值对应
func_02(age=50,name="Kb"); #name : Kb  age : 50
map2={"age":40,"name":"王五"};
func_02(**map2);#name : 王五   age : 40
map2["age"]=41;
func_02(**map2); #age : 41

###############################处理传递的多余参数########################
# *args元组 存储 多余的实参
def func_03(x,*args):
    print(x);
    print(args);

func_03(1); #  1    ()元组
func_03(1,"a","C",4); #  1    (‘a‘, ‘C‘, 4)元组

# 以字典存储 key=value 类型多余的实参
def func_04(x,*agrs,**kwargs):
    print(x);
    print(agrs);
    print(kwargs);

func_04(2,"F","D","H",a="A",c="C"); #2  (‘F‘, ‘D‘, ‘H‘)    {‘c‘: ‘C‘, ‘a‘: ‘A‘}
func_04(2,"F","D","H",x="A",c="C");# 这样是 有问题的   因为 x 传递的多次

 

#####################################lambda(匿名)函数 ###################################
#lambda 函数是一种快速定义单行的最小函数,是从Lisp借鉴的,可以用在任何需要函数的地方
#Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字

def func_05(x,y):
    return  x*y;
g=lambda x,y :x*y; #t通过lambda 定义 一个匿名函数 付给g
print(g);#<function <lambda> at 0x000000000104C6A8>  返回的是一个函数对象
print(g(12,34));#408

#Python中的reduce
#python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:
#用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,
#得到的结果再与第三个数据用func()函数运算,最后得到一个结果。
#在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce
from functools import reduce;
# 求 5 的阶乘 5*4*3*2*1
def func_06(x,y):
    return x*y;
fh=list(range(1,6));
print(fh);
print(reduce(func_06,fh)); #120

print( reduce(lambda x,y:x*y,fh) ); #120  使用lambda 函数 处理  

 

python学习 函数

标签:

原文地址:http://www.cnblogs.com/jalja/p/5559249.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!