maikeweisi 发表于 2018-5-8 17:46:34

汉诺塔完全没办法看懂哦!

def hanoi(n,x,y,z):
        if n==1:
                print(x,'-->',z)
        else:
                hanoi(n-1,x,z,y)
                print(x,'-->',z)
                hanoi(n-1,y,x,z)
n=int(input("请输入汉诺塔的层数:"))
hanoi(n,'x','y','z')
为什么调用中的函数参数不带引号?                       

annqlm 发表于 2018-5-8 18:42:50

已经定义好了,就不需要带参数了。一个是形参,一个是实参。。。

maikeweisi 发表于 2018-5-8 19:27:01

annqlm 发表于 2018-5-8 18:42
已经定义好了,就不需要带参数了。一个是形参,一个是实参。。。

还是不太明白,你的解答不到位。hanoi(n-1,x,z,y)应该是将参数传到def hanoi(n,x,y,z)中,hanoi(n-1,x,z,y)这里的x,y,z怎么不加引号,为什么好像将x,y,z作为变量传到def hanoi(n,x,y,z)中?

maikeweisi 发表于 2018-5-8 19:28:34

annqlm 发表于 2018-5-8 18:42
已经定义好了,就不需要带参数了。一个是形参,一个是实参。。。

函数自己调用自己,变量也可以直接调用吗?

annqlm 发表于 2018-5-8 19:41:05

maikeweisi 发表于 2018-5-8 19:27
还是不太明白,你的解答不到位。hanoi(n-1,x,z,y)应该是将参数传到def hanoi(n,x,y,z)中,hanoi(n-1,x,z ...

0.0
hanoi(n-1,x,z,y)应该是将参数传到def hanoi(n,x,y,z)中,hanoi(n-1,x,z,y)这里的x,y,z怎么不加引号
第一个 hanoi(),已经有了声明,直接传参就可以了。。。。

annqlm 发表于 2018-5-8 19:41:50

maikeweisi 发表于 2018-5-8 19:28
函数自己调用自己,变量也可以直接调用吗?

变量指的是什么呢?

maikeweisi 发表于 2018-5-8 20:47:57

annqlm 发表于 2018-5-8 19:41
变量指的是什么呢?

你的解答我只能给0分,只能让我更迷茫。

maikeweisi 发表于 2018-5-8 21:01:07

annqlm 发表于 2018-5-8 19:41
变量指的是什么呢?

如果if==1的时候print(x,'-->',z),程序在这里不是已经结束了吗?怎么还可以运行else那部分?

annqlm 发表于 2018-5-9 11:24:23

maikeweisi 发表于 2018-5-8 21:01
如果if==1的时候print(x,'-->',z),程序在这里不是已经结束了吗?怎么还可以运行else那部分?

我觉得,按理解,你说的没错。不知道你指的问题是什么呢?

annqlm 发表于 2018-5-9 11:24:59

maikeweisi 发表于 2018-5-8 20:47
你的解答我只能给0分,只能让我更迷茫。

嗯嗯,你说的没错。希望有人可以解答你的疑问。

fineconey 发表于 2018-5-13 18:01:25

估计你也是刚刚学,我也学到这里,你可以反复的看下视频。多解释你会跟糊涂。一遍看不懂,就看两遍,两遍看不懂,就看一句,暂停一下。
页: [1]
查看完整版本: 汉诺塔完全没办法看懂哦!