ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 函数

2021-10-02 13:06:09  阅读:141  来源: 互联网

标签:功能 return 函数 形参 python 参数 实参


函数

1.函数的概述

为什么会出现函数? 因为代码的复用性太差,所以需要用到函数。

函数是对功能(代码)的封装。

函数的作用:增强代码的复用性 提高程序的效率

要求:求圆的面积?

S = π*r**2

求半径为10的面积? 3.14*10**2

求半径为9的面积? 3.14*9**2

工程效率低

2.函数的分类

内置函数 和 自定义函数

内置函数:系统提供的现成的函数 直接可以使用

例如;print() input() int() help()…

自定义函数:

函数的定义格式:

def  函数名(参数1,参数2...):
	函数的功能实现
	return 功能的结果


def ---  声明的关键字
函数名 --- 功能的名称 方便之后通过名称进行调用
	      命名规范:符合标识符规范
	      函数名英文字符都是小写的 每个单词之间使用下划线隔开
	      circle——area
	      起名字的时候注意(见名知意)
小括号的参数  ---  参数的定义方式和变量一样  形参
		  形参:作用于储存函数功能中未知项的值
		  实参:为形参赋值的数据

return --- 作用:结束函数 并将功能的结果返回给调用者	
		   如果该功能的实现没有必要返回结果  return可以省略  或者 retrun None
		   return 忽略的情况下 直到函数结束

3.函数实战

1.封装一个功能

根据两个明确来进行定义:

a)明确是否有未知项参与函数的运算 – 参数

b)明确是否需要返回结果 — return

封装一个计算圆的面积?

未知项? 1 个 r

返回结果: return

4.函数的调用

格式:

函数名(实参1,实参2…)

如果函数的功能有结果返回

可以设置变量来接收返回的结果

value = 函数名(实参1,实参2…)

注意:传入的实参要与声明的形参个数一致

当记不住形参的顺序时,为了避免传值顺序错误 在传值的时候可以通过形参名字进行赋值。

5.变量的作用域

作用域:变量的使用范围

变量分为(局部变量)和(全局变量)

局部变量:声明在函数内的变量 作用范围仅限于在函数中有意义 出来函数就没有意义

全局变量:作用范围在整个.py文件

关键字:global 标注为全局变量

6.默认参数

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

def defaulet(x,y=2):
    return x*y

声明一个形参 并给他赋予了初始值

当我们调用这个函数时,如果没有给参数进行赋值 这个具体默认值得数据就会参与函数的运算

求x的y次方?

7.递归

算法:前辈们总结某种问题的经验

递归算法:在函数内部调用函数自己 这种结构称之为递归

例子:斐波拉契数:一堆兔子

第一个月 有一对兔子 从第三个月开始 每个月都生一对小兔子 小兔子到了第三个月开始 每个月也可以生一对小兔子 假设兔子不死 问n个月后总有多少只兔子?

5 个月有多少只兔子?

注意;

1.递归一定要有出口【已知项】

2.嵌套的层次最好不要太深 否则容易出现栈的溢出

def nb(x):
    if x == 1:
        return 1
    elif x == 2:
        return 2
    else:
        return nb(x - 1) + nb(x - 2)


make= int(input('请输入一个数字'))
a = 1
while a <= make:
    print(nb(a), '', end=' ')
    a+=1



标签:功能,return,函数,形参,python,参数,实参
来源: https://blog.csdn.net/Tan_jianchi/article/details/120585036

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有