一、函数的参数
1、位置参数
2、默认参数

n就是默认参数

def power(x,n=2):
s=1
while n > 0:
n = n - 1
s = s * x
return s

默认参数有个坑,就是 默认参数要设置为 不可变对象,【str和None】
3、可变参数
一般情况下

def calc(numbers):
s=1
for n in numbers
s=s+n*n
return s

调用时需要把参数写成list或者tuple

>>>calc([1,2,3,4])

这样子就不用了【参数前边加个*号】,

def calc(*numbers):
s=1
for n in numbers
s=s+n*n
return s

调用时就直接写入参数就OK

>>>calc(1,2,3,4)

注意:可变参数允许你传入0个或任意个参数
4、关键字参数   **声明【说实话看了一遍还没有明白额】

5、命名关键字参数 * 声明,*号后边的就是命名关键字参数,且在调用的时候必须格式[参数名=‘值’]
   注意:使用命名关键字参数时,要特别注意,*不是参数,而是特殊分隔符
声明

def person(name,age,*,city,job):
print(name,age,city,job)
>>>person('n','a',city='c',job='j')

6、参数组合

二、递归函数

经典函数:阶乘,

def fact(n):
ifn==1:
return 1
return n*fact(n-1)

递归过深可能导致栈溢出,之后就来个名词“尾递归”,尾递归过深也会溢出

尾递归和循环是等价的

【Python】[函数] 函数的参数与递归函数的更多相关文章

  1. Python基础(函数,函数的定义,函数的调用,函数的参数,递归函数)

    1.函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...

  2. Python函数基础学习(定义、函数参数、递归函数)

    1.本程序是测试函数的基础.函数的参数.递归函数的测试. 函数的参数有: 必选参数.默认参数.可变参数.命名关键字参数和关键字参数 #!/usr/bin/python # -*- coding: ut ...

  3. Python函数篇(2)-递归函数、匿名函数及高阶函数

    1.全局变量和局部变量 一般定义在程序的最开始的变量称为函数变量,在子程序中定义的变量称为局部变量,可以简单的理解为,无缩进的为全局变量,有缩进的是局部变量,全局变量的作用域是整个程序,而局部变量的作 ...

  4. python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数

    1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...

  5. python中函数的参数和返回值

    目录 函数 目标 01. 函数参数和返回值的作用 1.1 无参数,无返回值 1.2 无参数,有返回值 1.3 有参数,无返回值 1.4 有参数,有返回值 02. 函数的返回值 进阶 示例 -- 温度和 ...

  6. day15 python lambda函数 递归函数 二分法

    day15 python   一.匿名函数 lambda     1.lambda函数 def func(n):                #普通函数, 功能比较简单, 当函数多的时候, 起名也不 ...

  7. python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程

    python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...

  8. Python函数中的参数(二)

    当使用混合特定的参数匹配模型时,Python将会遵循以下有关顺序的法则: 1.在函数调用中,参数必须以这样的顺序出现:任何位置参数(Value).任何关键字参数(name = Value)和*sequ ...

  9. Python函数中的参数(一)

    函数传递参数时的简要关键点: 1.参数的传递是通过自动将对象赋值给本地变量名来实现的.函数参数在实际中只是Python赋值的一个实例.因为引用是以指针的形式实现的,所有的参数实际上都是通过指针进行传递 ...

  10. python基础——函数的参数

    python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...

随机推荐

  1. Android设置AlertDialog点击按钮对话框不关闭(转)

    (转自:http://blog.csdn.net/winson_jason/article/details/8485524) 当我们在用到Android alertDialog创建对话框 的时候,我们 ...

  2. 单源最短路径算法——Dijkstra算法

    #include <stdio.h> #include <stdlib.h> #include <string.h> /* run this program usi ...

  3. Redhat Linux 修改主机名(HOSTNAME)

    hostname #查看当前主机的主机名hostname NEWHOSTNAME #临时修改当前主机名 修改主机名vi /etc/sysconfig/network #通过配置文件修改主机名NETWO ...

  4. Puppet3在CentOS6.5集群下的安装

    环境:3台主机, IP分别为10.211.55.11.12.13 puppet master安装在10.211.55.11 puppet agent安装在10.211.55.11.12.13 1.安装 ...

  5. 在win10中创建开机自动登陆的网络驱动器

    前提环境: win10系统电脑一台. centos系统电脑一台,在该系统中安装samba,并配置共享. 要解决的问题: 在win10做了网络映射,将centos共享的文件夹设置成本地硬盘.在映射时,也 ...

  6. html5全局属性

    全局属性:对于任何一个标签都是可以使用的属性. 一.data-* 在html5之前需要在html标签上添加自定义属性来存储和操作数据,可能是会写<form role="xxx" ...

  7. Android可移动控件

    可移动控件: 效果图: 获取屏幕的宽高: DisplayMetrics dm = getResources().getDisplayMetrics(); screenWidth = dm.widthP ...

  8. 使用while循环语句和变量输出九九乘法表

    输出的结果如下:

  9. lua upvalue

    转自http://blog.chinaunix.net/uid-52437-id-2108789.html Lua 中的函数是一阶类型值(first-class value),定义函数就象创建普通类型 ...

  10. Nginx 启用 https

    在nginx.conf中增加新server配置 server { listen ; server_name www.some.com; ssl on; ssl_certificate sslkey/s ...