小白学python之练习记录3

小白学python之练习记录3

本篇文章包含了python基础的大部分练习,也是我学习python的练习记录,勤加练习是成为大牛的必经之路,希望我的练习能对你学习python有所帮助
python多线程

Python中的多线程是伪线程;不能充分利用cpu中的多核,但是在io等待型的场景下多线程还是可以提高效率
Python中的多线程有多种实现方式,利用threading包实现是比较普遍的做法

代码如下`:

#coding=UTF-8
import threading
class Read(threading.Thread):
    def __init__(self,fileName):
        super(Read, self).__init__()
        self.fileName=fileName
    def run(self):
        file=open(self.fileName,"r+",encoding="UTF-8")
        for line in file:
            print(line)
if __name__ == '__main__':
    t1=Read(r"G:\python\PycharmProjects\part-r-00001")
    t1.start()
    t2=Read(r"G:\python\PycharmProjects\part-r-00000")
    t2.start()

import time
import threading
class Read(threading.Thread):
    def __init__(self,doing):
        super(Read, self).__init__()
        self.doing=doing
    def run(self):
        while True:
            print(self.doing)
            time.sleep(1)  # cpu休眠一秒钟
if __name__ == '__main__':
    t1 = Read("听音乐")
    t1.start()
    t2 = Read("看电视")
    t2.start()

登录窗体

import tkinter as tk
class MainUI:
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("260x150+500+300")
        self.lblName = tk.Label(text="用户名", padx=20, pady=15)
        self.lblName.grid(row=0, column=0)
        self.textName = tk.Entry(width=20)
        self.textName.grid(row=0, column=1)
        self.lblPwd = tk.Label(text="密码", padx=20, pady=20)
        self.lblPwd.grid(row=1, column=0)
        self.textPwd = tk.Entry(width=20)
        self.textPwd.grid(row=1, column=1)
        self.btnLogin = tk.Button(text="登录")
        self.btnLogin.grid(row=2, column=1, columnspan=2)

    def mainloop(self):
        self.root.mainloop()


if __name__ == '__main__':
    m = MainUI()
    m.mainloop()

在这里插入图片描述
聊天对话框

#coding=UTF-8
import tkinter as tk
class mainUI:
    def __init__(self):
        self.main=tk.Tk()
        self.main.geometry("600x490+350+100")
        self.main.title("对话框")
        #左布局
        self.lst = ["aa", "bb"]  # 创建列表
        self.value = tk.StringVar(value=self.lst)
        self.listBox=tk.Listbox(master=self.main,height=24,listvariable=self.value)
        self.listBox.grid(row=0,column=0)
        #右布局
        self.rightText=tk.Text(master=self.main,height=33,width=62)
        self.rightText.grid(row=0,column=1)
        self.scrollbar = tk.Scrollbar(master=self.main)
        self.scrollbar.grid(row=0, column=3, sticky="ns")
        self.rightText.configure(yscrollcommand=self.scrollbar.set)
        #下布局
        self.frame=tk.Frame(master=self.main)
        self.frame.grid(row=1,column=0,columnspan=3)
        self.lable=tk.Label(master=self.frame,text="请输入发送消息",pady=10)
        self.lable.grid(row=0,column=0)
        self.entry=tk.Entry(master=self.frame,width=60)
        self.entry.grid(row=0,column=1)
        self.button=tk.Button(master=self.frame,text="发送消息",command=self.send)
        self.button.grid(row=0,column=2)
        self.rightText.insert(tk.END,"中国人民共和国万岁!!!"+"\n")
        self.rightText.insert(tk.END, "中国人民共和国万岁!!!" + "\n")
        self.rightText.insert(tk.END, "中国人民共和国万岁!!!" + "\n")
    def send(self):
        v=self.entry.get()
        self.rightText.insert(tk.END,v+"\n")

    def mainloop(self):
        self.main.mainloop()  # 死循环
if __name__ == '__main__':
    m=mainUI()
    m.mainloop()

在这里插入图片描述
登陆后进入聊天对话

#coding=UTF-8
import tkinter as tk
from tkinter.ttk import Combobox
class MainUI:
    def checkClick(self):
        print(self.chkValue.get())
    def __init__(self,name):
        self.mainUI=tk.Toplevel()
        self.mainUI.title("欢迎你:"+name)
        self.mainUI.geometry("600x490+350+300")
        self.txtShowMsgUp=tk.Text(master=self.mainUI,width=50,height=15)
        self.txtShowMsgUp.grid(row=0,column=0)
        self.upBar=tk.Scrollbar(master=self.mainUI)
        self.upBar.grid(row=0,column=1,sticky="ns")#南北方向
        self.txtShowMsgUp.configure(yscrollcommand=self.upBar.set)
        self.txtShowMsgUp.insert(float(0),"第一行\r\n")
        self.txtShowMsgUp.insert(float(1), "第二行\r\n")
        self.txtShowMsgDown = tk.Text(master=self.mainUI, width=50, height=15)
        self.txtShowMsgDown.grid(row=1, column=0)
        self.downBar = tk.Scrollbar(master=self.mainUI)
        self.downBar.grid(row=1, column=1, sticky="ns")  # 南北方向
        self.txtShowMsgDown.configure(yscrollcommand=self.downBar.set)
        self.frame=tk.Frame(master=self.mainUI)
        self.frame.grid(row=2,column=0,sticky="w")#w是西部
        self.cmbChatType=Combobox(master=self.frame,values=["群聊","私聊"])
        self.cmbChatType.current(0)#选中0项
        self.cmbChatType.grid(row=0,column=0)
        self.chkValue=tk.IntVar()
        self.chkButton=tk.Checkbutton(master= self.frame,text="yes|no",variable=self.chkValue,command=self.checkClick)
        self.chkButton.grid(row=0,column=1)
        self.sendMsgTxt=tk.Entry(master=self.mainUI,width=51)
        self.sendMsgTxt.grid(row=3,column=0,columnspan=2)

        self.list1 = ["aa", "bb"]
        self.vv = tk.StringVar(value=self.list1)
        self.rightListBox=tk.Listbox(master=self.mainUI,width=30,height=23,listvariable=self.vv)
        self.rightListBox.grid(row=0,column=2,rowspan=2)

        self.btnSend=tk.Button(master=self.mainUI,text="发送")
        self.btnSend.grid(row=3,column=2)

    def mainloop(self):
        self.mainUI.mainloop()
class LoginUI:
    def __init__(self):
        self.login=login=tk.Tk()
        login.title("登录窗体")
        self.lbluname=lbluname=tk.Label(login,text="用户名",padx=10,background="red",pady="10")
        self.lbluname.grid(row=0,column=0)
        self.lbluname=tk.Entry(login,width=20)
        self.lbluname.grid(row=0,column=1)
        self.btnOk=tk.Button(login,text="确定",command=self.click)
        self.btnOk.grid(row=2,column=0,columnspan=2)
        self.lblpwd=lblpwd=tk.Label(login,text="密 码")
        self.lblpwd.grid(row=1,column=0)
        self.txtpwd=txtpwd=tk.Entry(login,width=20)
        self.txtpwd.grid(row=1,column=1)
        self.login.geometry("200x100")
        self.mainloop()
    def click(self):
        print("click。。。")
        self.login.withdraw()#关闭登录的窗体
        MainUI("张三")
    def mainloop(self):
        self.login.mainloop()

if __name__ == '__main__':
    login=LoginUI()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值