• python文件操作图形化——python实战项目:单词练习系统


    python 文件操作与图形化编程

    文件基本操作

    D:\Python\example.txt

    • 文件路径:D:\Python\
    • 文件名:example
    • 文件扩展名:.txt
      文件的组织形式和表达数据的方式更有效、更灵活。按编码方式一般分为两大类型:文本文件二进制文件

    Python对文件采用统一的操作步骤:打开—操作—关闭

    1. open()
    # 变量名=open(文件名,打开模式,文件编码)
    f=open('example.txt','r',encoding='utf-8')
    
    • 1
    • 2
    1. close()
    f.close()
    
    • 1
    1. 文件读取
      当文件以文本文件方式打开时,读写按照字符串方式进行操作,并用当前计算机使用的编码或指定的编码。当文件以二进制文件方式打开时,读写按照字节流方式进行操作。

    2. 文件写入
      file.seek(offset):改变当前文件操作指针的位置。offset:0表示文件开头,1当前位置,2文件结尾

    图形化界面tkinter

    tkinter是使用Python进行窗口视窗设计的模块。tkinter模块("Tk接口")是Python的标准Tk GUI工具包的接口。作为Python特定的GUI界面,它是一个图像的窗口,并且tkinter是Python自带的模块,可以编辑GUI界面,并且可以用GUI实现很多直观的功能,例如开发一个计算器或者开发一个有交互功能的小系统。
    由于tkinter是Python内置的库,不用安装,所以只需在使用时导入tkinter模块:import tkinter,或者from tkinter import∗
    需要说明的是,虽然tkinter很好用,但是如果要开发一些大型的应用,tkinterᨀ供的功能还是太少了,需要使用wxPython、PyQt这些第三方库。

    1. 主窗体创建运行
    • 图形用户界面程序都需要一个根窗口,也叫主窗口,它就好像绘画时需要的画纸一样,tkinterᨀ供创建主窗口的构造函数Tk()
    • 窗口和组件都创建好后,需要运行,程序要不停地告诉窗口管理对象GM(Geometry Manager)有一个组件产生
    # 创建
    root = Tk()
    # 运行
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    1. tkinter的组件
      canvas,Frame,Label…

    2. 组件属性
      background,borderwidth,cursor…

    单词练习系统

    需求:设计单词练习系统,建立一个单词库,可以从单词库中随机抽取单词进行练习。练习方式有英译中、中译英、拼写填空,对于回答正确的问题会给出提示,并增加积分,错误的问题只有ᨀ示,不增加积分。练习完成后可以查看出错的单词,并对错误的单词进行次数统计。

    1. 初始化设置
      创建系统类,在类中创建构造方法,设置各种初始化变量。
      (1)创建tkinter窗口对象,设置窗口属性。
      (2)设置窗口中需要使用的变量,如:当前积分、显示的随机单词,以及回答ᨀ示信息。
      (3)创建单选按钮组名。创建各类变量,相当于是全局变量。
      (1)创建单词列表变量。
      (2)创建错词列表变量。
      (3)创建显示单词变量。
      (4)创建拼写填空的变量。
      (5)创建随机数变量(用于从单词表中随机抽取单词)。
      (6)引用各种方法:如界面设置布局、窗体运行方法。
      初始化代码:
    import tkinter
    import tkinter.messagebox
    import random
    
    
    class Recite():
    
        def __init__(self):
            self.root = tkinter.Tk()
            self.root.geometry('450*500')
            self.root.title('xxr背单词')
            self.root['bg'] = 'yellow'
            self.word = tkinter.StringVar()
            self.score = tkinter.StringVar()
            self.fen = 0
            self.score.set(0)
            self.prompt = tkinter.StringVar()
            self.prompt.set('你最棒~')
            self.wrong = []
            self.dic = []
            self.word_list()
            # print(len(self.dic))
            self.radiolist = tkinter.IntVar()
            self.fill = ''
            self.space = ''
            self.r = random.randint(0, len(self.dic) - 1)
            self.word.set(self.dic[self.r][0])
            self.layout()
            self.root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    1. 单词读取设计
      从单词库文件中将单词读取出来。可以用数据库,也可以使用文件,此处用的是文件。文件中的每一行由一个单词的中英文构成。
      打开文件读取数据,先对数据进行清洗,按换行符将它们分离成列表,一个单词为一个元素。再对列表进行遍历,对于遍历到的每一个元素即单词再次进行分离,即每个单词分成中文和英文两个元素,将分离得到的列表追加到初始化设置中创建的单词列表变量中。
      代码:
    def word_list(self):
        f = open('words.txt', 'r', encoding='utf-8')
        t = f.read().split('\n')
        for d in t:
            self.dic.append(d.split
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    es滚动查询分析和使用步骤
    如何结合整洁架构和MVP模式提升前端开发体验(三) - 项目工程化配置、规范篇
    Redis进行RCE利用总结
    git 对比两个分支差异
    LeetCode 之 长度最小的子数组
    骨传导耳机和气传导区别有哪些?骨传导和气传导耳机科普
    Linux高性能服务器编程——ch2笔记
    2022年最新《谷粒学院开发教程》:6 - 整合SpringCloud
    spark完全分布式部署
    Docker基础知识总结
  • 原文地址:https://blog.csdn.net/coising/article/details/128037444