Python交互式编程导论----事件驱动编程

传统的编程是如下线性模式的:

开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束

每一个代码块里是完成各种各样事情的代码,但编程者知道代码块A,B,C,D...的执行顺序,唯一能够改变这个流程的是数据。输入不同的数据,根据条件语句判断,流程或许就改为A--->C--->E...--->结束。每一次程序运行顺序或许都不同,但它的控制流程是由输入数据和你编写的程序决定的。如果你知道这个程序当前的运行状态(包括输入数据和程序本身),那你就知道接下来甚至一直到结束它的运行流程。

 对于事件驱动型程序模型,它的流程大致如下:

开始--->初始化--->等待

 与上面传统编程模式不同,事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发。传统编程下也有“等待”的时候,比如在代码块D中,你定义了一个input(),需要用户输入数据。但这与下面的等待不同,传统编程的“等待”,比如input(),你作为程序编写者是知道或者强制用户输入某个东西的,或许是数字,或许是文件名称,如果用户输入错误,你还需要提醒他,并请他重新输入。事件驱动程序的等待则是完全不知道,也不强制用户输入或者干什么。只要某一事件发生,那程序就会做出相应的“反应”。这些事件包括:输入信息、鼠标、敲击键盘上某个键还有系统内部定时器触发。

     Python中利用simplegui模块实现程序交互,结构如下:

 

Python交互式编程导论----事件驱动编程

   以下是一个简单的交互编程程序:

 

 1 # Import the module

 2 import simplegui

 3 

 4 # Define global variables (program state)

 5 counter = 0

 6 

 7 # Define "helper" functions

 8 def increment():

 9     global counter

10     counter = counter + 1

11 

12 # Define event handler functions

13 def tick():

14     increment()

15     print counter

16 

17 # Create a frame

18 frame = simplegui.create_frame("Test",100,100)

19 

20 # Register event handlers

21 timer = simplegui.create_timer(1000,tick)

22 frame.add_button("Click me!",tick)

23 

24 # Start frame and timers

25 frame.start()

26 timer.start()

 

 

  

你可能感兴趣的:(python)