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)


本文转自 枫叶云  51CTO博客,原文链接:http://blog.51cto.com/fengyunshan911/2057573



相关文章
|
7天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
11 1
|
1天前
|
索引 Python
python 格式化、set类型和class类基础知识练习(上)
python 格式化、set类型和class类基础知识练习
16 0
|
1天前
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
|
3天前
|
Python
python学习10-函数
python学习10-函数
|
3天前
|
Python
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
|
6天前
|
测试技术 开发者 Python
Python中的装饰器:优雅而强大的函数修饰工具
在Python编程中,装饰器是一种强大的工具,用于修改函数或方法的行为。本文将深入探讨Python中装饰器的概念、用法和实际应用,以及如何利用装饰器实现代码的优雅和高效。
|
Python Java
Python 传值还是传引用
在实现二叉树的代码时,使用递归调用,当给空叶子节点赋值的时候,发现只修改了局部变量。 因此研究了一下Python中传值和传引用的问题。 实验 实验一 a = None print(id(a)) b = None print(id(b)) 432...
1107 0
|
7天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
7天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
10天前
|
缓存 监控 Python
解密Python中的装饰器:优雅而强大的编程利器
Python中的装饰器是一种强大而又优雅的编程工具,它能够在不改变原有代码结构的情况下,为函数或类添加新的功能和行为。本文将深入解析Python装饰器的原理、用法和实际应用,帮助读者更好地理解和利用这一技术,提升代码的可维护性和可扩展性。

热门文章

最新文章