2017年11月21日学习总结__关于函数的定义的说明以及递归函数
来源:互联网 发布:matlab软件介绍 编辑:程序博客网 时间:2024/06/06 01:05
一 函数的作用域是有规律可循的,首先应该声明在使用,如果没有声明直接使用就会报错,需要注意的一点是,全局变量和局部变量不能相互影响:
x
=
6
def
f():
print
(x)
x
=
5
f()
这里会报错,如果全局变量可以在局部变量中使用的话,那么运行之后不会报错,但是把x = 5 进行注明后,还是报错,所以,由此可得,这里不能共通,且顺序必须是先声明在使用!
先定义一个阶乘的方式
def num(n): nums = 1 for i in range(1,n): nums = nums * i return numsprint(num(10))'''对应的说明:第一行:定义一个函数-num 先定义一个数字nums = 1(说明)乘法里面要用1,加减法里面要用0,这样对数据不会破坏 用for..in ...的方式将n从数列range中一个个赋值到i上并且列印出来后面的备注(1,n)作用是指的将0跳过 然后用之前定义的nums等于nums*i 这样可以进行阶乘 将nums数字重新定义并且返回循环 打印出num(1-9)的阶乘函数结果为:362880'''说明递归函数的两个特点:
1/自我调动数值,
2/必须要有一个结束的需求,或者是条件,否则将会无限循环
看例子:
#定义一个递归函数def fact(n): if n == 1: return 1 return n*fact(n - 1)print(fact(10))'''定义一个递归函数fact(n)这个n指的是不定向函数 注明条件如果n ==1 两个等号是相等于,不是赋值的意思 返回1 如果不等于一,那就应该自减自乘,然后进行累积'''
递归的函数优点就是非常清晰明了的解释,大家看到代码之后就会很清晰明了!
而且设计代码也很简单,但是对应的就是工作效率慢!意思就是用时间换效率....
所以使用的场合需要慎重,慎用慎用...
比如...汉诺塔..是很经典的函数....
def move(n, a, b, c): if(n == 1): print(a,"->",c) return move(n-1, a, c, b) move(1, a, b, c) move(n-1, b, a, c)move(3, "a", "b", "c")很经典..可以适当的深入研究,这里就不在赘述,有需要可以自己查查....
这里用递归非常简单明了,只需要写出步骤,那么,系统自动给你计算,如果用for....in.....明年都滤不清楚...
所以这个东西优点与缺点一样清晰...
讲一讲几个特殊的遍历函数
map()filter()两个共同点,就是两个作用基本相同,都是遍历的作用,但是区别是,map()之后会进行数值的更改,干事filter()仅仅起到过滤作用,并不对源代码进行修改例子:str = ['a','b','c']def fun(s): return s + 'leon'a = map(fun,str)print(a)print(list(a))输出效果为:<map object at 0x0000000001E8C1D0> ['aleon', 'bleon', 'cleon']str = ['a','b','c']def fun(s): return s + 'leon'a = filter(fun,str)print(a)print(list(a))# 输出效果为:<filter object at 0x000000000222C1D0># ['a', 'b', 'c']
阅读全文
0 0
- 2017年11月21日学习总结__关于函数的定义的说明以及递归函数
- 关于C++递归函数的学习总结
- 函数的复习(10月15日学习总结)
- 2017年10月25日关于哈希函数去重的方法
- 有关【年、月、日】的函数
- java中递归函数的应用2013年2月1日
- Python【函数:调用函数 定义函数 函数的参数 递归函数】学习注意事项
- 2016年11月30日学习总结----C语言中野指针的定义、危害及规避
- 有关函数定义的说明
- Python教程学习简记2--Python 函数调用 定义函数 函数的参数 递归函数
- 递归函数的学习
- 定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天
- 定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天
- C和C++__带默认值参数的函数说明
- C和C++__带默认值参数的函数说明
- PHP函数定义声明以及函数类型(回调函数,递归函数,重用函数。。)的介绍 变量的范围
- 学习类,笔记!关于一个函数里面定义多个类以及相互访问的问题
- 关于Controller方面的总结__以及资料收集
- 二维码大揭密
- angularjs综合
- centos6.4安装LNMP环境详细安装
- 基于SSD的图片文本检测及快速方法
- mysql 创建数据库和表的相关操作
- 2017年11月21日学习总结__关于函数的定义的说明以及递归函数
- 编写函数,判断year是否为闰年,若是则返回1,否则返回0
- 查询历史表和当前出现的问题
- 171121 Differences between the L1-norm and the L2-norm
- CEdit换行和GetLine乱码
- 自学与复习设计模式笔记(2)单例模式
- 对象跟字符串相互转换
- Hadoop完全分布式安装Kafka
- Dagger2解耦简易版