•        Python : 3.7.0
  •          OS : Ubuntu 18.04.1 LTS
  •         IDE : PyCharm 2018.2.4
  •       Conda : 4.5.11
  •    typesetting : Markdown

阶乘

code

  1. """
  2. @Author : 行初心
  3. @Date : 18-9-24
  4. @Blog : www.cnblogs.com/xingchuxin
  5. @Gitee : gitee.com/zhichengjiu
  6. """
  7. def f(x):
  8. """
  9. 递归 要调用函数自身,都要进行压栈,弹栈。资源消耗的问题
  10. 递归 要有正确的终止条件
  11. 递归有危险性
  12. """
  13. if x == 1:
  14. return 1
  15. else:
  16. return x * f(x - 1)
  17. """
  18. step 1:先下去
  19. f(5)=5*f(4)
  20. f(4)=4*f(3)
  21. f(3)=3*f(2)
  22. f(2)=2*f(1)
  23. f(1)=1 (return)
  24. step 2:在逐层返回来
  25. f(1)=1 (return)
  26. f(2)=2*f(1)
  27. f(3)=3*f(2)
  28. f(4)=4*f(3)
  29. f(5)=5*f(4)
  30. 最终,我们知道了f(5)的结果
  31. """
  32. def main():
  33. print(f(5))
  34. if __name__ == '__main__':
  35. main()

result

  1. /home/coder/anaconda3/envs/py37/bin/python /home/coder/PycharmProjects/basic/demo.py
  2. 120
  3. Process finished with exit code 0

斐波那契数列

code

  1. """
  2. @Author : 行初心
  3. @Date : 18-9-24
  4. @Blog : www.cnblogs.com/xingchuxin
  5. @Gitee : gitee.com/zhichengjiu
  6. """
  7. # 要想往上走的话,数据结构与算法必须要学习。
  8. # 如果遇到优秀的老师,那么数据结构与算法是很好玩的知识。
  9. def fab(n):
  10. if n < 1:
  11. print('输入有误')
  12. return -1
  13. elif n == 1 or n == 2:
  14. return 1
  15. else:
  16. return fab(n - 1) + fab(n - 2)
  17. def main():
  18. result = fab(20)
  19. print(result)
  20. if __name__ == '__main__':
  21. main()

result

  1. /home/coder/anaconda3/envs/py37/bin/python /home/coder/PycharmProjects/basic/demo.py
  2. 6765
  3. Process finished with exit code 0

resource

  • [文档] docs.python.org/3
  • [规范] www.python.org/dev/peps/pep-0008
  • [规范] zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules
  • [源码] www.python.org/downloads/source
  • [ PEP ] www.python.org/dev/peps
  • [平台] www.cnblogs.com
  • [平台] gitee.com


Python具有开源、跨平台、解释型、交互式等特性,值得学习。

Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。

代码的书写要遵守规范,这样有助于沟通和理解。

每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。

Python3基础 函数 递归 阶乘与斐波那契数列的更多相关文章

  1. Python3基础 用 while循环实现 斐波那契数列

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  2. Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列)

    Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列) 一丶带参数的装饰器 def wrapper_out(pt): def wrapper(func): ...

  3. 算法 递归 迭代 动态规划 斐波那契数列 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  4. Count and Say,统计并输出,利用递归,和斐波那契数列原理一样。

    问题描述:n=1,返回“1”:n=2,返回“11”:n=3,返回“21”:n=4,返回1211,.... 算法分析:和斐波那契数列道理差不多,都是后一个要依赖前一个元素.因此可以使用递归,也可以使用迭 ...

  5. 剑指offer 7. 递归和循环 斐波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 简简单单 废话不多说,直接上代码: public class Sol ...

  6. Python 基础之递归 递归函数 尾递归 斐波那契

    1.递归函数 定义:自己调用自己的函数递:去归:回有去有回是递归#(1)简单的递归函数def digui(n):    print(n)    if n > 0:        digui(n- ...

  7. C#斐波那契数列求法(比较阶乘和循环所用时间)

    using System; namespace ConsoleApp3 { class Program { static void Main(string[] args) { Console.Writ ...

  8. 剑指offer-面试题9.斐波拉契数列

    题目一:写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列的定义如下: { n=; f(n)={ n=; { f(n-)+f(n-) n>; 斐波拉契问题很明显我们会想到用递归来解决: ...

  9. 剑指Offer的学习笔记(C#篇)-- 斐波那契数列

    题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). 一 . 理解概念 斐波那契数列概念:斐波那契数列(Fibonacci sequence), ...

随机推荐

  1. sql中varchar(max),取代text类型

    SQL Server 2005之后版本:请使用 varchar(max).nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text.ntext 和 image 数据 ...

  2. VIM 文件编码识别与乱码处理(转载)

    在 Vim 中,有四个与编码有关的选项,它们是:fileencodings.fileencoding.encoding 和 termencoding.在实际使用中,任何一个选项出现错误,都会导致出现乱 ...

  3. Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)

    记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += - ...

  4. Animator Override Controller学习及性能测试

    本文由博主(YinaPan)原创,转载请注明出处: http://www.cnblogs.com/xsln/p/Animator_Override_Controller.html 一.Animator ...

  5. IO流(5)判断功能

    判断功能: * public boolean isDirectory():判断是否是目录 * public boolean isFile():判断是否是文件 * public boolean exis ...

  6. 用tomcat发布自己的Java项目

    作为一名web开发人员,用的又是Java语言,少不得和tomcat打交道.tomcat是什么?它是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器.我们用Java开发出来的web项目,通 ...

  7. python基础班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...

  8. java8,方法引用

    1:方法引用,https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html 当我们使用lambda表达式去创建一个 ...

  9. MySQL IFNULL()函数用法MySQL

    用法说明:IFNULL(expr1,expr2) 如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2. IFNULL()返回一个数字或字符串值,取决于它被使用 ...

  10. hdu1542 Atlantis(矩阵面积的并)

    这个题算是我的第一个扫描线的题,扫描线算是一种思想吧,用到线段树+离散化.感觉高大上. 主要参考了这位大神的博客. http://www.cnblogs.com/kuangbin/archive/20 ...