Python 程序设计(2)

精华 发表在    Python教程部落 11-23 21:08:49

2 1999 2

在前一节的讲解中,我们已经学到了如何创建框架

在这一节我们将会学到如何判断是否正确

开始判断

首先,我们要把那个pass去掉(别问我为什么)

然后,我们还需要设定一个答案(使用random.randint来从1到var之间选一个数)

number = random.randint(1,int(var))

这里注意当我们设定var的时候,是一个字符串,就说明我们要把它转换成一个数字

然后,调用get方法来获取单行文本框的内容:

answer = entry.get()

然后,开始判断:

if answer == str(number):
    pass
else:
    pass

这里要把number转换为str(因为number是数字)

然后,我们如果answer大于或小于了number,我们要对它进行第二次判断:

def trying():
    answer = entry.get()
    if answer == str(number):
        pass
    else:
        if answer > str(number):
            pass
        else:
            pass

对话框

在这里我们还需要用到一个模块:tk.messagebox

tk.messagebox的方法很多,

例如:

tkinter.messagebox.showerror('错误','出错了')

968522-20170625154144773-711947939

tkinter.messagebox.showinfo('提示','人生苦短')

968522-20170625153951616-1060961971

那么,我们可以把它换成pass里的代码:

代码如下:

def trying():
    answer = entry.get()
    if answer == str(number):
        tkinter.messagebox.showinfo('提示','成功!')
        exit()
    else:
        if answer > str(number):
            tkinter.messagebox.showerror('错误','大了')
        else:
            tkinter.messagebox.showerror('错误','小了')

注意在答对时我们弹出窗口后就调用sys模块的exit函数

全部代码如下:

from tkinter import *
import random
import tkinter.messagebox
from sys import exit

'''===========start==========='''

tk = Tk()
tk.title("我的第一个猜数字游戏")
tk.geometry("300x200")
var = "100"
number = random.randint(1,int(var))
label = Label(tk,text="在1到%s中间选一个数吧"%var)
label.pack()
def trying():
    answer = entry.get()
    if answer == str(number):
        tkinter.messagebox.showinfo('提示','成功!')
        exit()
    else:
        if answer > str(number):
            tkinter.messagebox.showerror('错误','大了')
        else:
            tkinter.messagebox.showerror('错误','小了')
    
entry = Entry(tk)
entry.pack()
button = Button(tk,text="确定",command=trying)
button.pack()

tk.mainloop()

谢谢大家~~