• Python学习笔记(四)—第六天,easygui


    接触了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、然后给出结果

  • 相关阅读:
    使用java.util.Timer来周期性的执行制定的任务
    Android中为APP创建快捷方式的原理(自己的理解)
    View.setTag()的作用
    用3种方法在 operator= 中处理“自我赋值”
    关于 const 成员函数
    复制构造函数 与 赋值操作函数
    Command 模式
    Mediator 模式
    求一棵普通树的两个结点的最低公共祖先
    Memento 模式
  • 原文地址:https://www.cnblogs.com/fqxtony/p/8265567.html
Copyright © 2020-2023  润新知