|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题如下:
1.else后面到底是怎么运行的
2.函数后面x,y,z交换顺序有什么作用
3.调用函数时为什么要加引号
本帖最后由 铁棍阿童木 于 2018-2-2 20:15 编辑
首先你要理解这个游戏怎么玩,借用你的代码来解释:
1、x y z 分别代表三根轴(或者针),x 代表圆盘最初所在的轴,z 表示最后需要到达的轴;y代表过渡用的;
2、n代表有多少个圆盘需要移动;
|-- 如果 n == 1 也就是只有一个圆盘需要移动,那么直接从 x 轴移动到 z 轴就行了 --> printg(x," -->",z)
|-- 否则 递归调用自身 youxi(n-1, x,z,y) 这里为了把圆盘转移到 z 上去,先要把 n - 1个 圆盘移动到 y 上面才行
print(x,"-->",z) # 上一步递归完成,最后把剩余的最后一个圆盘从 x 移动到 z
youxi(n-1, y,x,z) # 然后再递归调用,把在 y 轴上的 n - 1个圆盘借助 x 轴再移动到 z
(这时就完成了圆盘在三根轴上面的来回移动,并且完整的从 x 轴 移动到了 z 轴)
所以,x,y,z需要在调用时交换位置
最后,加括号表示函数被调用,Python解释器将执行函数内部的代码;如果不加括号,表示函数对象,是存在内存中的一个对象而已,Python不会执行内部代码。
|
-
问题是函数中x,y,z交换位置是为什么,最后调用函数为什么要用引号
|