函数

函数

函数参数

一·必须参数
调用函数时参数数量必须保持与定义函数时的参数数量一致
二.关键字参数
关键字参数可以不按函数定义时的参数顺序调用,python解释器能够按照函数定义时的参数名来匹配参数

def printf(age, name):
    print(age,name);
printf(3,"hello");
printf(name="hello",age = 1);

三.默认参数
注意默认参数必须定义在最后

def printf(age, name = "小白",goal = 100):
    print(age,name,goal);
print("传入三个参数");
printf(18,"小明",90);
print("只传必须参数");
printf(20);
print("不传最后一个参数");
printf(20,"小李");
print("不传第二个参数");
printf(11,goal=90);

四.可变参数
某些情况下我们不能确定参数的数量和内容,这时可以用到可变参数。
基本语法:some_func(*args,**kwargs) //其中括号内的为可变参数。
1.*args获取到的是一个元组

def foo(*args):
    print(args);
foo();
foo(1,2,3,4,5);
foo("one","two","three");

输出结果:

()
(1, 2, 3, 4, 5)
('one', 'two', 'three')

2.**kwargs获取到的是一个字典,所以在调用函数时必须要使用关键字参数的形式

def foo(**kwargs):
    print(kwargs);
foo();
foo(name ="good");

输出结果

{}
{'name': 'good'}

下面的例子可以很好地显示可变参数的作用

def caculatesum(*args,**kwargs):
    s = 0;
    for i in args:
        s += i;
    print(s);
    for v,k in kwargs.items():
        print(v,k);
caculatesum(1,2,3,4,5, name = "hello");

结果如下:

15
name hello

不只在函数调用时可以使用*与**来声明参数,在函数调用时也可以使用相同的方式来传递参数。

def caculatesum(*args,**kwargs):
    print(args);
    print(kwargs);
a = (1,2,3,4,5);
b = {
    "1":"hello","2":"my","3":"life"
}
caculatesum(*a,**b);

结果如下:

(1, 2, 3, 4, 5)
{'1': 'hello', '2': 'my', '3': 'life'}
x = 3;
def change():
    x = 4;
    print(x);
change();
print(x);

输出 4,3。可以看出函数体内并没有改变函数体外的值。
如果想改变函数外的值,要用到global关键字。

x = 3;
def change():
    global x;#global关键字
    x = 4;
    print(x);
change();
print(x);

输出4,4

函数返回值

Python的返回值和其他语言的差不多,但是却可以有多个返回值。
例子如下:

def value():
    a = 1;
    b = 2;
    c = 3;
    return a,b,c;
print(value());

输出:(1,2,3)
可以看出Python返回的是一个元组。
所以当有多个返回值时就可以赋值给多个变量了

def value():
    a = 1;
    b = 2;
    c = 3;
    return a,b,c;
d,e,f = value();
print(d,e,f);

输出:(1,2,3)
lambda表达式
1.以lambda开头表示是lambda表达式。
2.lambda后面有“:”分为两部分,左面相当于函数参数,右面相当于返回值。
3.需要注意lambda表达式没有函数名。

lambda x,y:x+y;
f = lambda x,y:x+y;
print(f(3,4));

使用lambda表达式的情况:
1:程序只执行一次,不需要函数名,方便定义,节省空间。
2,:某些函数要以函数作为参数,但函数本身十分简单,且仅在一处使用。

注释

Python中的文档字符串

def add(x,y):
    """
    计算两个数的和
    :param x: 第一个数
    :param y: 第二个数
    :return: x+y
    """
    return x+y;
print(add(1,2));

一般来说,文档字符串(docstring)偏向于对特定模组(module)、函数(function)、类(class)和方法(method)的一个总体介绍,更注重于告诉其他程序员应该怎么使用这些模组/函数/类/方法;而注释(comment)则注重于记录代码实现的细节
普通注释
“#”后面可以写注释内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值