Python之知识点(二)

一、颜色选择框

颜色选择框可以帮助我们设置背景色、前景色、画笔颜色、字体颜色等等

【示例】颜色选择框的基本用法

"""askcolor颜色选择框的测试,改变背景颜色"""

from tkinter import *
from tkinter.colorchooser import *
root = Tk();root.geometry("400x150")

def test1():
    s1 = askcolor(color="red", title="选择背景色")
    print(s1)
    #s1的值是:((0.0,0.0,255.99609375),‘#0000ff’)
    root.config(bg=s1[1])

Button(root,text="选择背景色",command=test1).pack()
root.mainloop()

二、文件对话框

文件对话框可以帮助我们实现可视化的操作目录、操作文件。最后,将文件、目录的信息传入到程序中。文件对话框包含如下一些常用的函数:

函数名对话框说明
askopenfilename(**options)文件对话框返回打开的文件名
askopenfilenames(**options)文件对话框返回打开的多个文件名列表
askopenfile(**options)文件对话框返回打开文件对象
askopenfiles(**options)文件对话框返回打开的文件对象的列表
askdirectory(**options)目录对返回目录名

命名参数options的常见值如下:

参数名说明
defaultextension默认后缀:  .XXX   用户没有输入则自动添加
filetypes=[(label1,pattern1),(label2,pattern2)]文件显示过滤器
initaldir初始目录
initalfile初始文件
parent父窗口,默认根窗口
title窗口标题

【示例】 

"""文件对话框获取文件"""

from tkinter import *
from tkinter.filedialog import *
root = Tk();root.geometry("400x100")

def test1():
    f = askopenfilename(title="上传文件",
                        initialdir="f:",filetypes=[("视频文件",".mp4")])
    #print(f)
    show["text"]=f

Button(root,text="选择编辑的视频文件",command=test1).pack()

show = Label(root,width=40,height=3,bg="red")
show.pack()
root.mainloop()

三、简单输入对话框

simpledialog(简单对话框)包含如下常用函数:

函数名说明
askfloat(title,prompt,**kw)输入并返回浮点数
askinteger(title,prompt,**kw)输入并返回整数
askstring(title,prompt,**kw)输入并返回字符串

参数中:title表示窗口标题;prompt是提示信息;命名参数kw为各种选项:initialvalue(初始值)、minvalue(最小值)、maxvalue(最大值)。

【示例】简单对话框的基本用法:

"""简单对话框"""

from tkinter import *
from tkinter.simpledialog import *
root = Tk();root.geometry("400x100")

def test1():
    a = askinteger(title="输入年龄",prompt="请输入年龄",initialvalue=18,minvalue=1,maxvalue=150)
    #askstring、askfloat框使用方式一样
    show["text"]=a

Button(root,text="你多大了?请输入",command=test1).pack()

show = Label(root,width=40,height=3,bg="red")
show.pack()
root.mainloop()

四、菜单

GUI程序通常都用菜单,方便用户的交互,我们一般分为两种:

1.主菜单

   主菜单通常位于GUI程序的上方。

2.上下文菜单

快捷菜单(上下文菜单)是通过鼠标右键单击组件而弹出的菜单,一般是和这个组件相关的操作,比如:剪切、复制、粘贴、属性等。

"""开发记事本软件的菜单"""

from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *

class Application(Frame):

    def __init__(self,master=None):
        super().__init__(master)            #super()代表的是父类的定义,而不是父类对象
        self.master=master
        self.textpad= None                  #textpad表示Text文本框对象
        self.pack()
        self.createWidget()

    def createWidget(self):
        # 创建主菜单栏
        menubar = Menu(root)

        #创建子菜单
        menuFile = Menu(menubar)
        menuEdit = Menu(menubar)
        menuHelp = Menu(menubar)

        #将子菜单加入到主菜单栏
        menubar.add_cascade(label="文件(F)", menu=menuFile)
        menubar.add_cascade(label="编辑(E)", menu=menuEdit)
        menubar.add_cascade(label="帮助(H)", menu=menuHelp)

        # 添加菜单栏
        menuFile.add_command(label="新建", accelerator="ctrl+n", command=self.test)
        menuFile.add_command(label="打开", accelerator="ctrl+o", command=self.test)
        menuFile.add_command(label="保存", accelerator="ctrl+s", command=self.test)
        menuFile.add_separator()    # 添加分割线
        menuFile.add_command(label="退出", accelerator="ctrl+q", command=self.test)

        #将主菜单栏加到根窗口
        root["menu"] = menubar

        #文本编辑区
        self.textpad = Text(root, width=50, height=30)
        self.textpad.pack()

        #创建上下菜单
        self.contextMenu = Menu(root)
        self.contextMenu.add_command(label="背景颜色", command=self.test)

        #为右键绑定事件
        root.bind("<Button-3>",self.createContextMenu)

        def test(self):
            pass
        def createContextMenu(self,event):
            #菜单在鼠标右键单击的坐标处显示
            self.contextMenu.post(event.x_root, event.y_root)

if __name__=='__main__':
    root = Tk()
    root.geometry("450x300+200+300")
    root.title("简易记事本")
    app = Application(master=root)
    root.mainloop()

五、NumPy

NumPy(Numerical Python)是科学计算基础库,提供大量的科学计算相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算,Numpy支持向量处理ndarray对象,提高程序运算速度。

1.Numpy的安装:

          安装Numpy最简单的方法就是使用pip工具,语法格式为:

pip install numpy

【示例】用arange函数测试环境安装 

#导入numpy
import numpy as np
#创建数组
a=np.arange(10)
print(a)

六、数组

1.数组的创建

array创建:

语法格式:

numpy.array(object, dtype =None, copy=True, order=None, subok=False,ndmin=0)

【示例】:

#导入numpy
import numpy as np
#使用array函数创建一维数组
a=np.array([1,2,3,4])
print(a)

#使用array函数创建二维数组
b=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(b)

#使用array函数创建三维数组
c=np.array([[[1,2,3],[4,5,6],[7,8,9]]])
print(c)

 arange创建:

使用arange函数创建数值范围并返回ndarray对象,函数格式如下:

 numpy.arange(start, stop, step, dtype)

参数说明:

参数描述
start起始值,默认为0
stop终止值(不包含)
step步长,默认为1
dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型

 【示例】arange生成 0到 5的数组

#导入numpy
import numpy as np
#range的使用range(start,end,step)
a=list(range(1,10))
print(a)
b=list(range(10))  #默认的是从0开始,步长为1
print(b)
c=list(range(1,10,3))
print(c)

#arange创建数组
#使用arange创建1到10的数组
d=np.arange(1,11)
print(d)
e=np.arange(1,11,2)
print(e)

2.数组的复制

#导入numpy
import numpy as np
#创建一个二维的数组
a=np.arange(1,13).reshape((3,4))   #将一维数组转化为一个二维数组(3行4列)
print(a)
#对a数组进行切片处理,获取第一、二行,第一、二列
sub_a=a[:2,:2]
print(sub_a)
#对sub_a中的第一行第一列的值进行修改
sub_a[0][0]=100
print(sub_a)
print(a)
#通过切片可以获取到新数组,即使赋值给新的变量,但还是原来数组的视图,

#如果对切片数组中元素的值进行修改会影响原来的数组可以使用numpy中的copy方法实现
sub_aa=np.copy(a[:2,:2])    #是深拷贝
sub_aa[0,0]=200
print(sub_aa)
print(a)

3.数组的拼接

水平数组组合:

      通过hstack函数可以将两个或多个数组水平组合起来形成一个数组

垂直数组组合:

      通过vstack函数可以将两个或多个数组垂直组合起来形成一个数组

数组的拼接:

函数描述
concatenate连接沿现有轴的数组序列
hstack水平堆叠序列中的数组(列方向)
vstack竖直堆叠序列中的数组(行方向)

numpy.concatenate 函数用于沿指定轴连接相向形状的两个或多个数组,格式如下:

numpy.concatenate((a1,a2,....), axis)

【示例】

#导入numpy
import numpy as np
#创建两个数组
a=np.array([[1,2,3],[4,5,6]])
b=np.array([[11,12,13],[14,15,16]])

#使用hstack进行水平拼接
r=np.hstack((a,b))
print(r)

#使用vstack进行垂直拼接
s=np.vstack((a,b))
print(s)

#concatenate的使用
q=np.concatenate((a,b),axis=0)    #当axis=0时,为默认情况,相当于垂直方向拼接,相当于vstack
print(q)

#二维数组有两个轴,axis=0    axis=1
p=np.concatenate((a,b),axis=1)
print(p)

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值