读到这篇文章[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_自己做的猜数字小程序的更多相关文章

  1. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)

    在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...

  2. python开发_tkinter_小球完全弹性碰撞游戏

    python开发_tkinter_小球完全弹性碰撞游戏   完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改 ...

  3. python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  4. python开发_tkinter_获取单选菜单值

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  5. python开发_tkinter_多级子菜单

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  6. python开发_tkinter_单选菜单_不可用菜单操作

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  7. python开发_tkinter_复选菜单

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  8. python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐

    我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...

  9. Python初学者随笔(一)_ 用Python写的第一个游戏“猜数字”

    如标题所写,这篇随笔主要记录下学习Python过程中用Python写的第一个游戏--"猜数字"_跟着"小甲鱼"学Python,链接: https://b23.t ...

随机推荐

  1. tomcat发布html静态页面

    一.环境 在Linux系统安装JDK并配置环境变量,安装tomcat(在tomcat官网下载压缩包即可,我使用的是tomcat7 https://tomcat.apache.org/download- ...

  2. 【CTF WEB】GCTF-2017读文件

    读文件 只给了个1.txt可以读,试了一下加*不行,感觉不是命令执行,"../"返回上级目录也不行,猜测可能过滤了什么,在1.txt中间加上"./"发现仍能读取 ...

  3. 畸形的 dockerfile中的COPY命令-

    dockerfile中的COPY是指COPY 指定目录的“子级目录”下所有的目录和文件,到指定目录中,这个shell中的cp命令大相径庭,使得很多人纳闷,怎么cpy过去的文件不是自己想要的

  4. shell服务管理->

    nginx.php等服务管理练习脚本 ->nginx的启动状态 root@jumpserver- day02]# cat nginx_web.sh #!/bin/bash source /etc ...

  5. SQLAlchemy-对象关系教程ORM-一对多(外键),一对一,多对多

    一:一对多 表示一对多的关系时,在子表类中通过 foreign key (外键)引用父表类,然后,在父表类中通过 relationship() 方法来引用子表的类. 在一对多的关系中建立双向的关系,这 ...

  6. Hadoop(三):MapReduce程序(python)

    使用python语言进行MapReduce程序开发主要分为两个步骤,一是编写程序,二是用Hadoop Streaming命令提交任务. 还是以词频统计为例 一.程序开发1.Mapper for lin ...

  7. java基础58 JavaScript的几种格式和变量的声明方式(网页知识)

    1.JavaScript的几种格式 1.1.JavaScript的特点 1.跨平台性    2.安全性.(javaScript代码不能直接访问电脑硬盘上的信息) 1.2.Java与javaScript ...

  8. 洛谷P1120 小木棍(升级版)

    传送门啦 一道经典的搜索剪枝题,不废话,步入正题. 分析: 一.输入时手动过滤不合法的情况 二.很明显我们要枚举把哪些棍子拼接成原来的长棍,而原始长度(原来的长棍的长度)都相等,因此我们可以在 $ d ...

  9. MATLAB读写Excel文件中的数据

    读取: %读取filename文件中指定表的数据,存入dataRead矩阵中 dataRead=xlsread('filename.xls',sheet); 写入: %将矩阵dataWrite中的数据 ...

  10. hdu 5131 (2014广州现场赛 E题)

    题意:对给出的好汉按杀敌数从大到小排序,若相等,按字典序排.M个询问,询问名字输出对应的主排名和次排名.(排序之后)主排名是在该名字前比他杀敌数多的人的个数加1,次排名是该名字前和他杀敌数相等的人的个 ...