Python函数中多类型传值和冗余参数及函数的递归调用

1.多类型传值和冗余参数


多类型传值:

def fun(x,y):

return x +y

print fun(3,5)

8

print fun(*t)

3

def fun(x,y,z):

return x + y + z

t1 = (1,2,3)

fun(*t1)

6

fun(*(2,4,5))

11

fun(1,*t)

4

print t

(1, 2)

fun(x=1,y=3,z=5)

9

>>> dic = {'x':1,'y':3,'z':6}

>>> fun(**dic)

10

冗余参数:

>>> def fun(x,*args,**kwargs):

...     print x

...     print args

...     print kwargs

...

>>> fun(1)

1

()

{}

>>> fun(1,2)

1

(2,)

{}

>>> fun(1,2,3)

1

(2, 3)

{}

>>> t

(1, 2)

>>> fun(1,2,3,'a',[1,2],*t,a=3,**{'t':11,'p':22})

1

(2, 3, 'a', [1, 2], 1, 2)

{'a': 3, 'p': 22, 't': 11}

2.函数的递归调用

递归的注意事项:

必须有最后的默认结果:

if n == 0

递归参数必须向默认结果收敛的:

factorial(n-1)

阶乘脚本:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# @Time:   2018/1/4 11:57

# @Author: Feng Xiaoqing

# @File:   jiecheng.py

# ======================

def factorial(n):

sum = 0

for i in range(1,n+1):

sum += i

return sum

print factorial(100)

另外一种方法:

def factorial(n):

if n == 0:

return 1

else:

return n * factorial(n-1)

print factorial(5)

求1-100相加的和:

def factorial(n):

if n == 0:

return 0

else:

return n + factorial(n-1)

print factorial(100)

原文地址:http://blog.51cto.com/fengyunshan911/2057573

时间: 2024-10-30 02:56:42

Python函数中多类型传值和冗余参数及函数的递归调用的相关文章

python学习笔记7-函数的多类型传值和冗余参数

python学习笔记7-函数的多类型传值和冗余参数 函数多类型传值 例一,元组传参 In [2]: def fun(x,y):    ...:     return x+y In [4]: print fun(3,5) 8 In [5]: t=(1,2) In [6]: print fun(*t)  注意,这里使用的是*t调用元组t 3 In [7]: print fun(t)   用t,不加*,报错只给了一个参数,需要给2哥参数 --------------------------------

用三个函数分别实现求三角形,正方形,圆形面积(所有底高半径都由用户 输入);在主函数中,通过用户不同的选择分别进行调用;

/*2.用三个函数分别实现求三角形,正方形,圆形面积(所有底高半径都由用户输入):在主函数中,通过用户不同的选择分别进行调用:*/ #include <stdio.h>#define P 3.14double sanjiao(double di,double gao){ double mianji = (di * gao)/2 ; return mianji;} double zhengfangxing(double bian){ double mianji2 = bian*bian; ret

C语言求两个函数中的较大者的MAX函数

//求两个函数中的较大者的MAX函数 #include <stdio.h> int main(int argc, const char * argv[]) { printf("input two nimbers\n"); int max(int x,int y); int a, b,c; scanf("%d,%d,",&a,&b); c=max(a,b); printf("max=%d\n",c); printf(&q

通过指针子函数中分配内存,在主函数中实现赋值

实现了在子函数中分配内存,在主函数中实现赋值或对其值的修改. 原文地址:https://www.cnblogs.com/jefy/p/9383899.html

JS高级---函数中的this的指向,函数的不同调用方式

函数中的this的指向 普通函数中的this是谁?-----window 对象.方法中的this是谁?----当前的实例对象 定时器方法中的this是谁?----window 构造函数中的this是谁?-----实例对象 原型对象方法中的this是谁?---实例对象 //严格模式: "use strict";//严格模式 function f1() { console.log(this);//window } f1() 函数的不同调用方式 //普通函数 function f1() {

Python的多类型传值和冗余参数

多类型传值(向函数中传递元组和字典) 1 向函数中传递元组 def func(x,y): print x+y 调用这个函数的时候,我们只需要传入两个变量就可以了,但是比如我有一个元组t = (1,2),我想把t的值传入func,那么func(t)是不可以的,因为默认情况下它把t当做1个变量了,那么这种情况下,我们就需要使用*t来表示把t的内存地址中的数据传入,这时就可以了.但要注意,元组t中元素的个数要小于等于函数中定义的形参个数才可以,当函数需要3个形参的时候,此时t中只有两个元素,那么传递是

函数的多类型传值

如下: #!/usr/bin/env python def fun(x, y): print(x+y) fun(2, 3) # 把数值类型作为参数传入函数 fun('a', 'b') # 把字符串类型作为参数传入函数 t = (2, 3) # 把元组类型作为参数传入函数 fun(*t) dic = {'x':2, 'y':3} # 把字典类型作为参数传入函数 fun(**dic) 原文地址:https://www.cnblogs.com/pzk7788/p/10262192.html

在Python函数中如何多类型传值与递归调用

1.多类型传值和冗余参数 多类型传值: def fun(x,y): return x +y print fun(3,5) 8 print fun(*t) 3 def fun(x,y,z): return x + y + z t1 = (1,2,3) fun(*t1) 6 fun(*(2,4,5)) 11 fun(1,*t) 4 print t (1, 2) fun(x=1,y=3,z=5) 9 >>> dic = {'x':1,'y':3,'z':6} >>> fun(

《python解释器源码剖析》第12章--python虚拟机中的函数机制

12.0 序 函数是任何一门编程语言都具备的基本元素,它可以将多个动作组合起来,一个函数代表了一系列的动作.当然在调用函数时,会干什么来着.对,要在运行时栈中创建栈帧,用于函数的执行. 在python中,PyFrameObject对象就是一个对栈帧的模拟,所以我们即将也会看到,python虚拟机在执行函数调用时会动态地创建新的PyFrameObject对象.随着函数调用链的增长,这些PyFrameObject对象之间也会形成一条PyFrameObject对象链,这条链就是对象x86平台上运行时栈