python数据函数定义的规则是什么_Python自定义函数基础概念

一、函数定义语法:

def 函数名(形参列表):

语句块

二、函数定义规则

1. 函数的名字就是语句块的名称

2. 函数名的命名规则与变量名相同(函数名必须是标识符)

3. 函数名是一个变量(不要轻易对其赋值)

4. 函数有自己的名字空间,在函数外部不可以访问函数内部的变量,在函数内可以访问函数外部的变量,但不能修改此变量。

5. 函数如果不需要传入参数,形参列表可以为空

6. 语句块部分,内容不能为空,如果为空需要填充pass

三、形参定义方式

形参:函数调用时,接收调用时传递的数据

【1】位置形参

【2】关键字形参

【3】缺省参数

def 函数名(形参名=默认实参1, 形参名2=默认实参2, ...):

pass

缺省参数必须自右至左依次存在,如果一个参数是缺省参数,则其右侧的所有参数都必须是缺省参数。

【4】*args

星号元组形参,收集多余的位置传参

def 函数名(*元组形参名):

pass

【5】**kwargs

双星号字典形参,收集多余的关键字传参

def 函数名(**字典形参名):

pass

【6】不定长形参

星号元组形参,双星号字典形参

可以接受任意的位置传参和关键字传参

def fun(*args,**kwargs):

pass

位置形参,缺省参数,星号元组形参,双星号字典形参可以混合使用.

函数形参自左至右的顺序为:

位置形参

星号元组形参

命名关键字形参

双星号字典形参

四、函数调用

函数名(实参)

注:

1. 函数调用是一个表达式

2. 如果函数内部没有return语句,函数调用完毕后返回None对象

3. 如果函数需要返回其它的对象需要用到 return 语句

4.函数名是一个变量,绑定的是函数对象

六、函数调用时参数的传递形式

【1】位置传参

实参和形参的位置对应,将实参数据传递给函数形参。

实参和形参按位置一一对应。

实参个数和形参个数必须一致。

【2】序列传参

位置传参的一种。

用 * 将序列拆解后按位置进行传递的传参方式

【3】关键字传参

按形参的名称将实参数据传递给形参。

实参和形参按形参名称匹配。

【4】字典关键字传参

实参为字典,将字典用 '**' 拆解后再进行关键字传参的传参方式。

字典的键名必须和形参一致,切数量相同。

字典的键必须为字符串。

七、全局变量与局部变量

【1】全局变量

① 定义在函数外部,模块内部的变量称为全局变量

② 全局变量所有函数都可以直接访问(但函数内不能将其直接赋值)

【2】局部变量

① 定义在函数内部的变量称为局部变量(函数的形参也是局部变量)

② 局部变量只能在函数内部使用

③ 局部变量在函数调用时才能够被创建,在函数调用之后会自动销毁

八、函数的功能性

① 一个函数可以作为另一个函数调用时的实参,传递给此函数

def f1():

print("f1被调用")

def f2():

print("f2被调用")

def fx(fn):

print(fn)

fn() # 此时这是调用什么呢?

fx(f1)

fx(f2)

#结果

f1被调用

f2被调用

#---------------------

def goodbye(L):

for x in L:

print("再见:", x)

def hello(L):

for x in L:

print("你好:", x)

def operator(fn, L):

fn(L)

operator(hello, ['Tom', 'Jerry', 'Spike'])

#结果

你好: Tom

你好: Jerry

你好: Spike

② 一个函数可以作为另一个函数的返回值

def fx():

return max

fn = fx()

print(fn([1, 3, 5, 7]))

#结果

7

③ 函数可以嵌套

九、函数式编程

用一系列函数解决问题。

优点:

【1】用每一个函数完成细小的功能,一系列函数的任意组合可以完成大问题

【2】函数仅接受输入并产生输入,不包含任何能影响输出的内部状态

要求:

def 语句创建的函数最好不要访问局部作用域以外的变量,这样可以保证返回结果的唯一性(可重入性)

十、函数的 可重入性(结果唯一性)

如果一个函数的输入参数一定,则返回结果必须一定的函数称为可重入函数

【1】 可重入函数,传入参数一定.结果必然一定

def myadd(x, y):

return x + y

【2】不可重入函数:

y = 200

def myadd2(x):

return x + y

print(myadd2(10)) # 210

y = 300

print(myadd2(10)) # 310

标签:传参,函数,形参,Python,函数调用,实参,def,自定义

来源: https://www.cnblogs.com/longyuu/p/14154697.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值