廖雪峰网站:学习python函数—递归函数(四)

# 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数

# 计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:

# fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n

# 使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。

def fact(n):
    if n==1:
        return 1
    return n * fact(n-1)
print(‘fact(1) =‘, fact(1))
print(‘fact(5) =‘, fact(5))
print(‘fact(10) =‘, fact(10))

# 利用递归函数移动汉汉诺塔:
def move (n, a, b, c):
    if n == 1:
        print(‘move‘, a, ‘-->‘, c)

    else:
        move(n-1, a, c, b)
        move(1, a, b, c)
        move(n-1, b, a, c)
move(4, ‘A‘, ‘B‘, ‘C‘)

原文地址:https://www.cnblogs.com/qy1234/p/9362581.html

时间: 2024-08-03 17:40:08

廖雪峰网站:学习python函数—递归函数(四)的相关文章

廖雪峰网站—学习python基础知识(二)

1.list """ Python内置的一种数据类型是列表:list. list是一种有序的集合,可以随时添加和删除其中的元素. """ classmates = ['Michael', 'Bob', 'Mary'] print('classmates', classmates) print('len(classmates)= ', len(classmates)) print('classmates[0]=', classmates[0]) p

python3 基础 廖雪峰教程笔记-2 函数

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167832686474803d3d2b7d4d6499cfd093dc47efcd0001.函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数 https://docs.python.org/3/library/functions.html Built-in Funct

廖雪峰网站:学习python函数—函数参数(三)

1.*args # 位置参数,计算x2的函数 def power(x): return x * x p = power(5) print(p) # 把power(x)修改为power(x, n),用来计算xn def power(x, n): s = 1 while n > 0: n = n - 1 s = s * x return s p1 = power(5, 2) p2 = power(5, 3) print(p1) print(p2) # 默认参数 # 使用默认参数有什么好处?最大的好处

廖雪峰网站:学习python基础知识—循环(四)

一.循环 1.for names = ['Michal', 'Bob', 'tracy'] for name in names: print(name) sum = 0 for x in [1, 2, 3, 4, 5, 6, 7,8,9,10]: sum = sum + x print(sum) # 打印数字 0 - 9 for x in range(10): print(x) 2.while sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2

据廖雪峰python3教程----python学习第九天

递归函数 ------- 在函数内部可以调用自身本身的函数 定义一个计算阶乘的函数fact(n): fact(n) = n!       = 1 x 2 x 3 x ... x (n-1) x n      = (n-1)! x n      = fact(n-1) x n 函数可以写为: >>> def fact(n):           if n==1:               return 1      return n*fact(n-1) >>> fact

廖雪峰老师的python教程中的几个学习笔记的备份

首先是学习@property的笔记 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/5/14 22:18 # @Author : 15407_000 # @Site : # @File : 使用@property.py # @Software: PyCharm class student(object): score=10 def getscore(self): return self.score def setscore

据廖雪峰python3教程----python学习第七天

函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了. python的函数除了正常的定义必选参数外,还可以使用默认参数,可变参数合关键字参数, 位置参数 定义一个计算x 的平方的函数 >>> def power(x):               #参数 x 就是一个位置参数      return x**2 >>> power(5) 25 >>> power(15) 225 为了方便我们再定义一个可以计算 x 的任意次的

据廖雪峰python3教程----python学习第十一天

sorted 排序算法 Python的内置sorted()函数可以对list进行排序: >>> sorted([1,10,2,5,42,6]) [1, 2, 5, 6, 10, 42] 此外,sorted()函数也是一个高阶函数,他还可以接受一个key函数来实现自定义的排序,例如按绝对值大小排序: >>> sorted([36,5,-12,9,-21],key=abs) [5, 9, -12, -21, 36] key指定的函数将作用于list的每一个元素上,并根据ke

据廖雪峰python3教程----python学习第二天

输入和输出 用print()在括号中加上字符串,就可以向屏幕输出指定的字符 eg: >>> print('hello, world') print()函数也可以接受多个字符串,字符串之间用 "," 逗号隔开 eg: >>> print('The quick brown fox', 'jumps over', 'the lazy dog') The quick brown fox jumps over the lazy dog print()会依次打印