python开发_tkinter_自己做的猜数字小程序
读到这篇文章[python 3.3下结合tkinter做的猜数字程序]的时候,就复制了代码,在自己机器上面跑了一下
源程序存在一个缺陷:
即当用户答对了以后,用户再点击'猜'按钮,最上面的提示标签还会变化
而实际情况应该是:用户答对了以后,'猜'按钮不随用户点击而使得提示标签发生变化。
以下是我对程序做的一些改进...
运行效果:

当用户猜对了以后:

修改后的代码:
# -*- 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="")
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="")
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开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...
- python开发_tkinter_小球完全弹性碰撞游戏
python开发_tkinter_小球完全弹性碰撞游戏 完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改 ...
- python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_获取单选菜单值
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_多级子菜单
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_单选菜单_不可用菜单操作
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_复选菜单
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐
我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...
- Python初学者随笔(一)_ 用Python写的第一个游戏“猜数字”
如标题所写,这篇随笔主要记录下学习Python过程中用Python写的第一个游戏--"猜数字"_跟着"小甲鱼"学Python,链接: https://b23.t ...
随机推荐
- NTC热敏电阻认识及功率型热敏电阻选型
-------------------记公司一款已经量产的产品,在最新加工的批次上出现:刚上电就炸毁功率型热敏电阻的问题------------------------- ************写在 ...
- C#基础学习之FileStream
FileStream和File的区别 后者比前者给内存带来压力大. FileStream可以操作字节也就是可以保存任何类型的文件. 1.FileStream读文件操作 //OpenOrCreate: ...
- word文档下划线无法显示的解决方法
在编辑文档的时候经常会遇到下划线无法显示的情况,如图: 如果遇到不能在姓名后面加下划线的情况,我们该怎么做? 请看下面的图解: 1.首先点击左上角的office图标 2.点击右下角“word选项” 3 ...
- Add custom daemon on Linux System
Ubuntu add custom service(daemon) Task 需要在系统启动的时候自动启动一个服务(后台程序),在系统关闭的时候关闭服务. 比如在部署某个应用之前,需要将某个任务设置成 ...
- 转载:Github项目解析(七)-->防止按钮重复点击
不错的东西,记录下... http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/qq_23547831/article/deta ...
- Ubuntu下使用virtualenv
Ubuntu 18.04,Python 3.6.5(最新3.7),virtualenv 16.0.0, 即将在Ubuntu上大张旗鼓地干活啦!那么,将之前安装的virtualenv运行起来吧(前面都是 ...
- maxout激活函数
maxout的拟合能力是非常强的,它可以拟合任意的的凸函数.最直观的解释就是任意的凸函数都可以由分段线性函数以任意精度拟合(学过高等数学应该能明白),而maxout又是取k个隐隐含层节点的最大值,这些 ...
- MySQL 存储过程入门
存储过程是带有逻辑的SQL语句,优点是执行效率高.缺点是可移植性差 1.存储过程语法 DELIMITER $ --声明结束符 CREATE PROCEDURE pro_test() --创建存储过程 ...
- 使用mybatis-generator-core自动生成代码
SSM框架可以使用mybatis-generator-core-1.3.2.jar来自动生成代码,以下是配置和使用的代码. generatorConfig.xml <?xml version=& ...
- servlet 学习笔记(二)
---------------------第二讲--------------------------------- 开发servlet有三种方法: 1.实现servlet接口(最原始的) 实现接口的5 ...