函数参数的类型

1148-张同学

发表文章数:63

热门标签

首页 » Python » 正文

参数

位置参数

函数调用时,实参数默认按位置顺序传递,需要和个数和形参匹配,按位置传递的参数,成为“位置参数”

// An highlighted block
def test01(a,b,c):
    d=a*b*c
    print(d)

#test01(20,30)  #形参和实参的个数需要对应,不然会出错
test01(20,30,40)

函数参数的类型

默认值参数

参数在传递时可选,必须放在普通参数的后边。

// An highlighted block
def test01(a,b,c=40,d=50):
    print(a,b,c,d)

test01(20,30)     #这时传递的是a,b的值
test01(20,30,70)  #这时传递的是a,b,c的值

函数参数的类型

命名参数

形参的名称传递参数

// An highlighted block
def test01(a,b,c):
    print(a,b,c)

test01(8,9,10)     #位置参数
test01(b=9,a=8,c=10)  #命令参数,位置可以改变

函数参数的类型

可变参数

可改变数量的参数,将多个参数收集到一个“元组”,“字典”对象中。

  1. *param “元组”
  2. **param “字典”
// An highlighted block
def test01(a,b,*c):
   print(a,b,c)

def test02(a,b,**c):
   print(a,b,c)

test01(8,9,100,200)     #元组
test02(8,9,name='一个小白的日常',age=24)     #字典

函数参数的类型

lambda表达式和匿名函数

用来声明匿名函数,生成一个函数对象。只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是一个函数的返回值。
基本语法: lambda arg1,arg2,arg3…:<表达式>
arg1,arg2,arg3为函数的参数。
<表达式>相当于函数体,运行结果:表达式的运算结果。

// An highlighted block
f=lambda a,b,c:a+b+c
print(f)
print(f(2,3,4))

函数参数的类型

eval()函数

将字符串str当成有效表达式来求值并计算返回结果
基本语法:eval(source[,globals[,locals]])->value
source:一个python表达式或函数compile()返回的代码对象。
globals:可选,必须是dictionary.
locals:可选,任意映射对象。

// An highlighted block
s="print('abc')"
eval(s)    #执行输出语句
s="print('一个小白的日常')"
eval(s)    #当参数变得时候,也会跟着改变

a=10
b=20
c=eval("a*b")
print(c)        #执行乘法运算

dict1=dict(a=100,b=200)
d=eval("a*b",dict1)
print(d)           #执行元组的参数的乘法运算

函数参数的类型

递归函数

自己调用自己的函数

  1. 终止条件:表示递归什么时候结束,一般用于返回值,不再调用自己。
  2. 递归步骤:把第n步的值和第n-1步相关联。

递归函数由于会创建大量的函数对象,过量的消耗内存和运算能力。在处理大量数据时,谨慎使用。

// An highlighted block
def test01(n):
    print("test01:",n,end="/t")
    if n==0:         #当n为0时,整个调用停止
        print("over")
    else:             #控制调用次数n在一定范围就结束
        test01(n-1)
    print("test01***",n,end="/t")     #不参与递归调用,就是普通调用

test01(5)  

函数参数的类型

练习:递归实现阶乘

// An highlighted block
'''练习阶乘'''
def factional(n):
    if n==1:
        return 1    #求1的阶乘时,直接返回1
    else:
        return n*factional(n-1)          #不为1时,则通过调用求阶乘

for i in range(1,6):
    print(i,"!=",factional(i),end='/t')              #1-5的阶乘

函数参数的类型

标签:

未经允许不得转载:作者:1148-张同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《函数参数的类型》 发布于2020-06-24

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录