利用Python写猜数字游戏

时间:2025-03-10 11:18:25
import random from tkinter import * time = 0 # 尝试次数 num = random.randint(100, 999) # 随机生成的数字 max_num = 999 min_num = 100 def click(): # 防止输入非数字 try: user = int(float(entry_num.get())) # 获取在输入框输入的数字 # 利用global把局部变量变为全局变量,目的是实时更新次数和范围 global time global max_num global min_num if user == num: time += 1 if time <= 5: # 尝试次数的显示 # 更新label label2.config(text='很棒,尝试次数为:%s' % time) label3.config(text='恭喜!!') elif 5 < time < 10: label2.config(text='还行,尝试次数为:%s' % time) label3.config(text='恭喜!!') else: label2.config(text='加油老铁,尝试次数为:%s' % time) label3.config(text='恭喜!!') elif user > num: time += 1 max_num = user label2.config(text='当前范围[%s,%s]' % (min_num, max_num)) label3.config(text='大了哦!') else: time += 1 min_num = user label2.config(text='当前范围[%s,%s]' % (min_num, max_num)) label3.config(text='小了哦!') except ValueError: label3.config(text='输入无效,请输入数字!') # 创建窗口 app = Tk() app.title('猜数字游戏') # 不让随意调整窗口大小 app.resizable(0, 0) label1 = Label(app, text='输入 100~999 的任意整数\n', font=('幼圆', 20, 'bold')) label1.pack(pady=8) label2 = Label(app, text='当前范围[100,999]', font=('幼圆', 15, 'bold')) label2.pack() label3 = Label(app, fg='red', font=('幼圆', 13, 'bold')) label3.pack(pady=8) # 输入框 entry_num = StringVar() # 这即是输入框中的内容 Entry(app, textvariable=entry_num, bd=5, font='幼圆', fg='blue', width=20).pack() Button(app, text='确定', command=click, width=20, height=3).pack(side=LEFT, padx=25) Button(app, text='退出程序', command=app.quit, width=20, height=3).pack(side=RIGHT, padx=25) # 窗口大小 app.geometry('400x300') app.mainloop()