python学习实验报告(第九周)

一、实验目的

1. 理解tkinter标准库的用法。

2. 熟悉创建窗体和组件的方法。

3. 熟悉tkinter组件属性及其作用和设置方法。

4. 了解如何为tkinter组件绑定事件处理方法。

二、实验内容及结果

1. Tkinter实现用户登录界面。建立一个文本文件users.txt,其中每一行存储一个用户的名字和密码,二者之间使用冒号分割,例如“admin:123456”。用户输入名字和密码后,单击“Login”按钮,根据文件users.txt中存储的信息判断用户输入是否正确。如果不正确就提示“用户名或者密码不正确”,如果正确就提示“登录成功”。请将界面中的文字全部改为中文。

python学习实验报告(第九周)_第1张图片

from tkinter import *
from tkinter import ttk
from tkinter import messagebox
import sys

def login():
    with open("users.txt", "r", encoding="utf-8") as f:
        for line in f.readlines():
            user, pwd = line.strip().replace('\n', '').split(':')
            if edit1.get() == user and edit2.get() == pwd:
                messagebox.showinfo("成功", "登录成功!")
                return
        messagebox.showerror("失败", "用户名或者密码不正确!")
        return
def end():
    sys.exit()

window = Tk()

window.title("登录界面")

label1 = ttk.Label(window, text="用户名:")
edit1 = ttk.Entry(window)

label2 = ttk.Label(window, text="密 码:")
edit2 = ttk.Entry(window, show="*")

button1 = ttk.Button(window, text="Login", command=login)
button2 = ttk.Button(window, text="Exit", command=end)

label1.grid(row=0, column=0, padx=(5, 0), pady=10)
edit1.grid(row=0, column=1, padx=(0, 15), pady=10)

label2.grid(row=1, column=0, padx=(5, 0), pady=10)
edit2.grid(row=1, column=1, padx=(0, 15), pady=10)

button1.grid(row=2, column=0, padx=(10, 0), pady=10)
button2.grid(row=2, column=1, padx=(40, 0), pady=10)

window.mainloop()

python学习实验报告(第九周)_第2张图片

python学习实验报告(第九周)_第3张图片

2. 编写带有图形化界面的猜数字游戏,数字为100以内整数。用户输入猜测值,如果正确,弹出“您猜对了!”消息框,否则提示“猜小了”或者“猜大了”消息框。

from tkinter import *
from tkinter import ttk
from tkinter import messagebox
import random

def guess():
    if edit.get() == "":
        messagebox.showerror("警告", "输入不能为空!")
    if not edit.get().isdigit():
        messagebox.showerror("警告", "只能输入数字!")
    elif eval(edit.get()) < answer:
        messagebox.showinfo("错误", "猜小了!")
    elif eval(edit.get()) > answer:
        messagebox.showinfo("错误", "猜大了!")
    elif eval(edit.get()) == answer:
        messagebox.showinfo("正确", "您猜对了!")

answer = random.randint(0, 100)
window = Tk()
window.title("猜数游戏")

rule1 = ttk.Label(window, text="游戏规则:系统会随机生成一个100以内的整数,请你猜这个数。")
rule2 = ttk.Label(window, text="如果正确,弹出“您猜对了!”消息框,否则提示“猜小了”或者“猜大了”消息框。")

label = ttk.Label(window, text="请输入你猜测的数字:")
edit = ttk.Entry(window)
button = ttk.Button(window, text="确定", command=guess)

rule1.grid(row=0, columnspan=2)
rule2.grid(row=1, columnspan=2, pady=(0, 10))
label.grid(row=2, column=0, padx=(5, 0), pady=10)
edit.grid(row=2, column=1, padx=(0, 15), pady=10)
button.grid(row=3, column=0, columnspan=2, pady=10)

window.mainloop()

python学习实验报告(第九周)_第4张图片

python学习实验报告(第九周)_第5张图片

python学习实验报告(第九周)_第6张图片

python学习实验报告(第九周)_第7张图片

你可能感兴趣的:(Python学习实验报告,python,学习,开发语言)