python开发_tkinter_自己做的猜数字小程序
2013-09-09 17:29
399 查看
读到这篇文章[python 3.3下结合tkinter做的猜数字程序]的时候,就复制了代码,在自己机器上面跑了一下
源程序存在一个缺陷:
即当用户答对了以后,用户再点击'猜'按钮,最上面的提示标签还会变化
而实际情况应该是:用户答对了以后,'猜'按钮不随用户点击而使得提示标签发生变化。
以下是我对程序做的一些改进...
运行效果:
![](http://images.cnblogs.com/cnblogs_com/hongten/498466/o_hongten_tkinter_test7.png)
当用户猜对了以后:
![](http://images.cnblogs.com/cnblogs_com/hongten/498466/o_hongten_tkinter_test8.png)
修改后的代码:
源程序存在一个缺陷:
即当用户答对了以后,用户再点击'猜'按钮,最上面的提示标签还会变化
而实际情况应该是:用户答对了以后,'猜'按钮不随用户点击而使得提示标签发生变化。
以下是我对程序做的一些改进...
运行效果:
![](http://images.cnblogs.com/cnblogs_com/hongten/498466/o_hongten_tkinter_test7.png)
当用户猜对了以后:
![](http://images.cnblogs.com/cnblogs_com/hongten/498466/o_hongten_tkinter_test8.png)
修改后的代码:
# -*- coding: utf-8 -*- import tkinter as tk import sys import random import re number = random.randint(0,1024) running = True num = 0 nmaxn = 1024 nminn = 0 def eBtnClose(event): root.destroy() def eBtnGuess(event): global nmaxn global nminn global num global running #修改缺陷:用户答对了,提示标签还提示信息 Edit by Hongten 2013-09-09 #即用户在答对了以后,提示标签不应该再随着用户点击'猜'按钮而变化 if running: val_a = int(entry_a.get()) if val_a == number: labelqval("恭喜答对了!") num+=1 running = False numGuess() elif val_a < number: if val_a > nminn: nminn = val_a num+=1 label_tip_min.config(label_tip_min,text=nminn) labelqval("小了哦") else: if val_a < nmaxn: nmaxn = val_a num+=1 label_tip_max.config(label_tip_max,text=nmaxn) labelqval("大了哦") else: labelqval('你已经答对啦...') def numGuess(): if num == 1: labelqval('我靠!一次答对!') elif num < 10: labelqval('= =十次以内就答对了牛逼。。。尝试次数:'+str(num)) elif num < 50: labelqval('还行哦尝试次数:'+str(num)) else: labelqval('好吧。。。。。您都试了超过50次了。。。。尝试次数:'+str(num)) def labelqval(vText): label_val_q.config(label_val_q,text=vText) root = tk.Tk(className="比大小游戏") root.geometry("400x90+200+200") line_a_tip = tk.Frame(root) label_tip_max = tk.Label(line_a_tip,text=nmaxn) label_tip_min = tk.Label(line_a_tip,text=nminn) label_tip_max.pack(side = "top",fill = "x") label_tip_min.pack(side = "bottom",fill = "x") line_a_tip.pack(side = "left",fill = "y") line_question = tk.Frame(root) label_val_q = tk.Label(line_question,width="80") label_val_q.pack(side = "left") line_question.pack(side = "top",fill = "x") line_input = tk.Frame(root) entry_a = tk.Entry(line_input,width="40") btnGuess = tk.Button(line_input,text="猜") entry_a.pack(side = "left") entry_a.bind('<Return>',eBtnGuess) btnGuess.bind('<Button-1>',eBtnGuess) btnGuess.pack(side = "left") line_input.pack(side = "top",fill = "x") line_btn = tk.Frame(root) btnClose = tk.Button(line_btn,text="关闭") btnClose.bind('<Button-1>',eBtnClose) btnClose.pack(side="left") line_btn.pack(side = "top") labelqval("请输入0到1024之间任意整数:") entry_a.focus_set() print(number) root.mainloop()
相关文章推荐
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
- python3.3使用tkinter开发猜数字游戏示例
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
- 黄聪:pycharm开发python 在python Console中输出的程序有乱码,含有中文的输出
- 搭建python的eclipse开发环境并创建简单的python程序
- 使用python开发命令行程序的知识点之二
- 自己用C#开发的EMAIL地址抓取程序。
- 微信小程序开发中按下自己手机的返回按键是直接退出小程序而不是返回上级页面
- Python中使用epoll开发服务端程序
- 使用Python开发windows GUI程序入门实例
- 基于PyQt(Python+QT)的gui程序开发
- 创建并运行一个基本的Python测试程序(自己的看法修改)
- $微信小程序开发实践点滴——Bmob基本REST API的python封装
- 【Python】工作中自己用的一个程序,操作excel
- 普通管理类程序开发之难度系数、层次之说法,可以看看自己停留在哪个层次,不足之处,请大家一起补充
- python开发_tkinter_小球完全弹性碰撞游戏_源码下载
- Python学习笔记(二)Pytho解释器和程序开发、执行过程
- 如何开发自己的操作系统的引导程序?
- python开发之tkinter实现图形随鼠标移动的方法
- Moblin的简单Python程序开发