Python函数基础与函数递归

数学中函数的定义: 一般的 在一个变化过程中, 如果有两个变量 x 和 y 并且 对于 x的每一个确定的值,y都有唯一确定的值与 其对应, 那么我们就把 x 成为 自变量 把y成为 因变量 y是x的函数。自变量x的取值范围叫这个函数的定义域
y = 2*x

python 中函数 是一种逻辑结构化和过程化的一种变成方法
python中函数定义的方法:

1 def test(x):
2     "the function deinitions"
3     x += 1
4     return x

def 定义函数的关键字
test: 函数名
() 内可定义形参
"" 注释 注释是函数不可缺少的一部分****
x += 1 : 泛指代码块或程序处理逻辑
return 定义返回值
调试运行:可以带参数也可不带
函数名()

函数的优点:
  1.代码重用
  2. 保持一致性,易维护
  3. 可扩展性

Python中函数与过程:
过程的定义: 过程就是简单特殊 没有返回值
也就是 没有返回值的函数

函数返回值:
返回值 =0 返回None
返回值 =1 返回 object
返回值 >= 1 返回 tuple

函数参数
1 形参 只有被调用时分配内存单元, 调用结束释放单元
2 实参 在函数调用时 他们必须是确定的值,这些值传给形参 因此要 预先赋值

1 def test(x,y,z):
2     print(x,y,z)

位置 参数 需要一一对应 缺一不行 多一也不行
test(1,2,3)
关键字参数 无需一一对应 缺一不行 多一也不行
test(x=1,z=2,y=3)
位置参数必须在关键字参数左边
test(1,3,y=2) 报错
test(1,3,z=2) True

参数组 (**字典 *列表

如果没有 加* 就代表把整个列表当作一个整体
加*则 遍历后当作 多个参数传递

test(1,y=2,z=3,z=3) 一个参数不能传两个值

1 def test(*args, *kwargs):
2     print(args)
3     print(kwargs)

全局变量 和 局部变量
全局变量 一般在 文件最顶端定义 全局可用 全局变量字母全部大写
局部变量 在子程序中定义 只在子程序内部使用 局部变量 变量名小写

在子程序中定义的 全局变量的关键字 global
如果 函数的内容 无 global关键字 优先读取 局部变量 只能读取全局变量 无法对全局变量重新赋值
如果函数中有global 关键字 变量本质时 全局变量 函数内 可读取可赋值

函数 == 变量????

1 def foo():
2     print(‘this is foo‘)
3     bar()
4 def bar():
5     print(‘this is bar‘)
6
7 foo()

先加载完的函数 不会报错

1 def foo():
2     print(‘this is foo‘)
3     bar()
4 foo()
5 def bar():
6     print(‘this is bar‘)    

但 函数执行时 bar函数 未被加载到 内存中 会报错 所以就 引申出了 函数==变量

函数的递归:
特性:
1必须有一个明确的结束条件
2每次进入更深一层递归时,问题规模相比上次递归都应有减少
3递归效率不高,递归层数过多会导致 栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构 ,每进入一次 函数 调用,栈会加一层栈帧,每当函数返回时,栈较少一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数越多,会导致栈溢出

原文地址:https://www.cnblogs.com/poetl/p/8315336.html

时间: 2024-11-05 22:42:43

Python函数基础与函数递归的相关文章

第七章、函数基础之函数的调用05

目录 第七章.函数基础之函数的调用05 一.什么是函数调用? 二.函数调用的三种形式 第七章.函数基础之函数的调用05 一.什么是函数调用? 函数名()就会调用函数,会执行函数体代码,直到碰到return或者完函数体所有代码 运行完函数体内代码,如果没有return就会返回none def foo(): pass print(foo()) 二.函数调用的三种形式 def max_self(x,y): if x>y: return x else: return y \# 1. max_self(1

第七章、函数基础之函数的返回值04

目录 第七章.函数基础之函数的返回值04 一.什么是返回值 二.为什么要有返回值 第七章.函数基础之函数的返回值04 一.什么是返回值 函数内部代码经过一些列逻辑处理获得的结果. def func(): name = 'nick' return name name = func() print(name) nick 二.为什么要有返回值 如果需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须要有返回值 注意: return是函数结束的标志 return的返回值可以返回任意数据类型 re

【2017-03-05】函数基础、函数四种结构、ref和out参数、递归

一.函数基础 1.函数/方法:非常抽象独立完成某项功能的一个个体 2.函数的作用: 提高代码的重用性提高功能开发的效率提高程序代码的可维护性 3.分类 固定功能函数高度抽象函数 4.函数四要素:输入,输出,函数体,函数名.(函数体.函数名必须有,输入.输出不是必须有的!) 5.格式 public static 返回值类型 函数名(输入值类型参数,第二个,第三个,int a,string b) { return 上面的返回值类型 } 注:函数也是放在Main函数之外,在Class之内.花括号之内的

Python——day3_基础2_函数

函数 函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易

Python开发基础 day5 函数的定义与使用

#coding:utf-8: # x='你' # u'hello' # print(x.encode('gbk')) # print(b'\xc4\xe3') # y=b'\xc4\xe3' # print(y.decode('gbk')) # x='你' #unicode.encode('utf-8') y=u'你' print repr(y) # while True: # msg=input('>>: ') # # # print(len(msg)) # # res=len(msg) #

文件内光标的移动 函数基础 定义函数的三种形式

# with open(r'a.txt', 'r', encoding='utf-8')as f:# data1=f.read()# print('>1>:',data1)# print(f.tell()) # 44 只有一种情况下,光标的意思是字符# data2=f.read()# print('>2>:',data2) # 第一次有结果,第二次没有,第一次读取数据后光标已经移到了文件尾 # 只有一种情况下,光标以字符为单位:文件以rt方式打开,read()# with open

4.python语法基础-匿名函数lambda

1.lambda优点:     A.用python写一些执行脚本时候,用lambda可以省去定义函数的过程,让代码简洁化 B.对于一些抽象的,别的地方不会复用的函数,用lambda不需要考虑命名难的问题 C.使用lambda在某些时候使代码更容易理解 D.在用法上lambda语句中冒号前是参数,多个用逗号隔开,冒号右边是返回值 E.lambda语句构建的其实是一个函数对象 实例: z=lambda x,y,z : x*y*z print z(2,3,5)    #输出三者乘积:30 来自为知笔记

Python 入门基础11 --函数基础4 迭代器、生成器、枚举类型

今日目录: 1.迭代器 2.可迭代对象 3.迭代器对象 4.for循环迭代器 5.生成器 6.枚举对象 一.迭代器: 循环反馈的容器(集合类型) 每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 l = [1, 2, 3] count = 0 while count<len(l): print(l[count]) count += 1 1.1 为什么要有迭代器? 字符串.列表.元组可以通过索引的方式迭代取出其中包含的元素 字典.集合.文件等类型,没有索引,只有通过不依赖索引的迭代方式

python之路3:文件操作和函数基础

文件操作 字符编码解码 函数基础 内置函数 一.文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,追加可写 "U"表示在读取时,可以将 \r \n \r\n自动转换成