pyhon 函数分类及用法

python函数

  • 函数
    • 函数定义
    • 函数调用
    • 函数分类
    • 全局变量,局部变量
    • 函数的参数
      • 位置参数
      • 默认值参数
      • 可变参数
      • 关键字参数
      • 命名关键字参数
    • 函数递归
    • 匿名函数
    • 偏函数

函数

什么是函数:
函数是功能 过程 结果(是实现某一功能或者某些功能的命令的集合)

函数定义

def 函数名称(参数):
#缩进 函数体

  • 1.定义函数的时候,需要确定函数的名称和参数个数

  • 2.如果有必要的话,需要先对参数的类型做检查

  • 3.函数的内部可以用return返回函数的结果

  • 4.函数可以返回多个值,但是返回的结果实则是元组tuple

函数调用

格式:
print(函数名称(参数))
函数名称实则是指向函数对象的引用,可以把函数名称赋值给一个变量。

函数分类

  • 有没有参数:

    有参函数 ,无参函数

  • 有没有返回值:

    有返回值函数 ,无返回值函数

  • 定义者分类:

    系统 , 第三方

全局变量,局部变量

全局变量:
在模块内、在所有函数外面、在class外面
局部变量:
在函数内的方法内
1.局部变量的作用域:只在函数内有效
2.函数的内部是可以访问全局变量,但是不能改变全局变量
(在局部变量内可用global()来操作全局变量)

函数的参数

位置参数

def show(a): 
return a*a

show(a)中a就是位置参数

默认值参数

定义函数的时候,可以给参数加上默认值,调用函数的时候,如果没有给这个参数赋值,也是可以成功调用函数
注意:
1.默认值参数应该写在必选参数的后面
2. 默认值参数可以有多个,变化范围小的参数要写在变化范围大的参数前

可变参数

def word(*str):
	sum=0
	for i in str:
		sum+=i
	return sum

li=[2,3]
print(li(num[0],num[1]))
结果为:
6

li列表的所有元素作为可变参数传递给了word

关键字参数

(用于扩展,使参数3为一盒列表)
格式:
def 函数名 (参数1,参数2,**参数3)
参数3为关键字参数(用于扩展,使参数3为一个列表)

命名关键字参数

函数递归

在函数的内部,可以调用其他函数,函数内部调用自己,就是递归

前提条件:

  • 1.函数自己调用自己
  • 2.有终止条件
//求a的阶乘
def sum(a):
	if n==1:
		return 1
	return n*sum(a-1)
print(fact(3))
结果为:
6

匿名函数

定义:
lambad 表达式就是一个函数,可以赋值给一个变量,既然是表达式,可以参与运算

lambda_b = lambda x : x if x % 2 == 0 else x+2 
print(lambda_b(6)) 
print(lambda_b(7))

6
9

lambda x: x** 2 这个匿名函数的形参是x,那么可以找个变量存起来,在调用这个变量的时候传递的参数就是实参,表达式 x if x % 2 == 0 else x+2的值就是这个函数的返回值。

偏函数

调用函数的时候,需要把函数中的参数设定为一个固定的一个值的时候
(引用functools模块

partial (函数的名称,参数=固定值)

import functools
int2 =functools.partial (int, base=2)
# 把 int 的转换设为二进制了,这里 base 是 int 函数表示进制的参数。
int2('1000000')

64

你可能感兴趣的:(pyhon 函数分类及用法)