Python随机数和猜数字小游戏

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()

运行之:

扫描二维码关注公众号,回复: 14632319 查看本文章

Ok!

猜你喜欢

转载自blog.csdn.net/cnds123/article/details/129164018