Python随机数和猜数字小游戏
Python之random库(模块)详见random --- 生成伪随机数 — Python 3.11.2 文档
random.randint(a,b) 生成一个[a,b]之间的整数 (包含a、b)
random 库是 python 版本中自带的一个随机库,无需安装,你直接在py文件中加入 import random 即可使用。
文本界面版
源码如下:
import random
# 随机生成一个1-100之间的整数
number = random.randint(0, 100)
# 统计所猜次数
count = 0
while True:
# 每循环一次,count加1
count += 1
# input函数从键盘输入要猜的数字,并转换为int类型
choice = int(input("请输入你要猜测的数字[1~100]:"))
# 大于目标数字
if choice > number:
print("你猜大了")
# 小于目标数字
elif choice < number:
print("你猜小了")
# 等于目标数字
else:
print("你猜对了,真棒!")
print(f"你一共用了{count}次机会")
break
运行之:
GUI(图形用户界面)版
Tkinter 是内置到 python 的安装包中的图形开发界面的库。无需安装,你直接在py文件中加入 import tkinter即可使用。
源码如下:
import tkinter as tk
import random
def eBtnReset():
global num
num=0
global number
number=random.randint(1,100)
print(number) #
labelqval("请输入1-100之间得任意整数:")
btnGuess['state'] = "normal"
def eBtnGuess(event):
#检查输入框是否为空
if entry_a.get()=="":
return
global num
num+=1
val_a=int(entry_a.get())
if val_a==number:
labelqval(f"恭喜你答对了!!! 你猜了{num}次")
btnGuess['state'] = "disabled"
if val_a<number:
labelqval(f"第{num}次,猜小了哦!")
if val_a>number:
labelqval(f"第{num}次,猜大了哦")
def labelqval(vText):
label_val_q.config(label_val_q,text=vText)
root=tk.Tk(className="猜数字游戏")
root.geometry("400x90+200+200")
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="关闭",command=root.destroy)
#btnClose.bind('<Button-1>',eBtnClose)
btnClose.pack(side="left")
line_btn.pack(side="top")
btnReset=tk.Button(line_btn,text="新局",command=eBtnReset)
btnReset.pack(side="left")
labelqval("请输入1-100之间得任意整数:")
entry_a.focus_set()
number=random.randint(1,100)
num=0 #猜的次数计数
print(number) #
root.mainloop()
运行之:
Ok!