接触了easygui的简单图形用户界面编程,尝试结合前面的汉诺塔写一个小程序。奇怪的是本来运行一切正常,
各种图形化界面输入输出也都ok。
尝试优化一些语句时,也没做什么改变,突然就开始报各种(SyntaxError: invalid syntax)错误。。。然而在命令行界面运行又一切正常。
即便是将代码恢复到原来可以正常运行时,还是报各种错误。
菜鸟的头疼。。。
先贴出代码,明天再查一些。
好吧,本来打算明天的。。。刚才又一行行调试,终于发现是第四行少了一个括号,一个括号引发的血案,耽误了我好久时间。
1 # coding=utf-8 2 import easygui 3 easygui.msgbox('Hello World!','我的第一个GUI程序') 4 i = int(easygui.enterbox('请输入你希望的汉诺塔层数:','hanoi')) 5 easygui.msgbox ('您输入了:' + str(i),'hanoi') 6 way = [] 7 8 def hanoi(n,a,b,c): 9 if n == 1: # 如果只有一个盘,那么就是把这一个盘,从a轴(起始轴)移动到c轴(目标轴)。10 print (a ,'-->', c) #这一句其实没什么用了,可以删除了11 temp1 = str(a)12 temp2 = str(c)13 way.append(temp1+'-->'+temp2)14 15 else: #如果有n个盘子 16 hanoi((n-1),a,c,b) #那么第一步,就是先把(n-1)个盘子从a轴移动到b轴,以c轴为缓冲。此时,a轴为起始轴,b轴为目标轴,c轴为缓冲轴。17 hanoi(1,a,b,c) #第二步,移动了(n-1)个盘子后,a轴还剩下一个,那么就是把最后这个从a轴移动到c轴。即hanoi(1,a,b,c),a -->c。18 hanoi((n-1),b,a,c) #第三步,将b轴上的(n-1)个盘子,从b轴移动到c轴,此时b为起始轴,a为缓冲轴,c为目标轴,即hanoi((n-1),b,a,c)19 20 21 hanoi(i,'A','B','C')22 easygui.msgbox(way,'您要走的路径')
运行的话,就会出现几个界面,然后输入想要的数字,得到结果。
还很丑T_T,后续优化吧。。。
1、先是欢迎。。。
2、输入想要的数字,3:
3、然后给出结果