函数

作者: suss | 来源:发表于2018-10-01 15:25 被阅读0次

函数的参数

1, 位置参数

 比如:

Powe (x)函数,参数 x 位一个位置参数。

当我们调用 power 的时候,必须传入有且仅有的一个参数 x:

>>> power(5)

25

如果需要x3、x5、我们不可能定义无限多个函数

我们可以这样做 


def power(x,n)

     s = 1

   while n > 0

            n = n -1 

           S = s * x

    return = s

对于修改过的 power (x, n)函数,可以任意次n方:

>>>  power(5,2)

25


修改后的的函数有两个位置参数;x 和 n ,这两个参数都是位置参数,调用参数时,传入两个值按照位置顺序一次赋予给 参数 x 和 n

2, 默认参数

当 新的 power(x,n) 函数定义没有问题,但是, 旧的代码失败了,原因是我们增加了一个函数,所以导致旧的代码无法正常调用

因为少了以一个位置参数


如何解决?

由于我们可以将经常使用的 x2, 所以可以完全把第二个参数 n 的默认值 设定为 2:

def power(x,n=2)

   s=1

while n>0

 n=n-1

s=s*x

return s

这样我们就可以在使用 power(5)时相当于 power(5,2)

而其他的情况,就必须明确地传入 n 比如 power(5,4)


默认参数可以简化函数的调用, 设置默认函数需要注意的问题:

1, 必选参数在前,默认参数在后 否则 python 解释器会报错

2, 如何设置 默认参数?

当函数有多个参数时, 把变化大的函数放在前面, 变化小的函数放在后面。变化小的函数就可以作为默认 参数默认参数的好处:可以降低调用函数的难度。

3,可变参数

指传入的参数 可以是一个也可以任意个,也可以是零个

 比如:一组数字a b c d….计算 a2 + b2 + c2 + …

需要定义这个参数必须输入参数。由于参数个数不确定, 我们首先可以想到吧 这些数字 作为一个 list 或者 tuple 传进来 如下:


Der calc(number):

sum=0

for n in numbers:

sum=sum+n*n

return sum


但是在调用之前必须组装一个 list 或者 tuple


>>> calc(1,2,3,)

14

>>> calc(1,3,5,7)

84


所以我们可以将参数改为可变参数


Der calc(*number):

sum=0

for n in numbers:

sum=sum+n*n

return sum


定义可变参数定义的一个 llist 或者 tuple 参数相仅仅在参数前面加了一个 * 符号。在函数内部,参数 number s接收到的是一个 tuple 因此,函数代码完全不变。但是调用该函数时,可以闯入任意个参数,包括零个参数

如果已经有一个 list 或者 tuple ,要调用一个可变的参数怎么办?可以这样:


>>>nuns=[1,2,3]

>>>calc(nums[0],nums[1],nums[2])

14


这样的方法可行但是 太繁琐,所以 python 允许你在 list 或者 tuple 前面几一个 *, 将list 或者 tuple 的元素 变 可变参数穿进去:

>>>nums=[1,2,3]

>> calc(*nums)

14


4, 关键字参数

可变参数允许你传入 0 个或者 任意和参数, 这些参数在函数用时自动组位一个 tuple , 而关键字参数允许你传入 0 个或者任意个含参数名的参数, 这些关键字参数在函数内部自动组装位一个 dict。


def person(name,age,**kw)

print(‘name:’,name,‘age:’age,‘other:’,kw)


函数 person 处除了必选参数 name 和 age 之外,还接受关键字参数 kw。 在调用必选参数,也可以传只入必选参数;也可以只传入任意个数的关键字参数;

关键字的作用:

可以拓展函数的功能。比如在 person 函数中, 我们可以确保接收到 name 和 age 的两个参数, 但是, 如果调用者愿意提供更多的参数信息我们也可以收到。

5,命名关键字参数

对于 关键字参数,函数的调用者可以传入任意不受限制的关键字参数。 至于到底传入了多少 需要用 kw 来检查。

命名关键字参数可以有缺省值,从而简化调用

而有默认值的参数 调用是不可以再次传入。

注:使用命名关键参数时, 要特别注意, 如果没有可变参数, 就必须加一个 * 作为特殊分隔符。如果缺少 * ,python 解释器将无法识别位置参数 和 命名关键字参数。

参数的组合

在 pytho 中定义函数, 可以用必选参数, 默认参数, 可变参数, 关键字参数 和命名关键字参数,者五种参数都可以组合使用。

注:参数定义的的顺序必须是: 必选参数、默认参数、 可变参数、 命名关键字参数和关键字参数

注: 虽然可以组合多达五种参数, 但是不要同时使用太多的组合, 否则函数的借口可理解性 很差。

小结:

默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑性错误

定义可变参数的关键字参数的语法:

**args 是可变参数, args 接受的是一个 tuple

**kw是关键字参数, kw接受的是一个 dict

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:函数

      本文链接:https://www.haomeiwen.com/subject/rliuoftx.html