精华内容
下载资源
问答
  • 实例设计一个包含Label组件、Entry组件、Combobox组件、Radiobutton组件、Checkbutton组件GUI界面。其中,Combobox组件来自于thinter.ttk模块。程序运行后,输入考生姓名,选择考生省份、地区,并选择考生类别和...

    本实例设计一个包含Label组件、Entry组件、Combobox组件、Radiobutton组件、Checkbutton组件的GUI界面。其中,Combobox组件来自于thinter.ttk模块。程序运行后,输入考生姓名,选择考生省份、地区,并选择考生类别和专业等信息,单击‘增加’按钮,将学生信息添加到列表框中;选中列表框中的信息后,单击‘删除’按钮,将删除列表框中的信息。

     

    实例代码:

    from tkinter import *
    from tkinter import ttk, messagebox
    
    win = Tk()
    win.title('考试系统注册!!!')
    win.geometry('600x400')
    #fram1=Frame()
    #fram1.pack()
    #varname=StringVar()     #
    label1=Label(win,text='学生姓名:',justify=LEFT,width=10)
    label1.grid(row=1,column=1,padx=30)
    entry1=Entry(win,width=14)
    entry1.grid(row=1,column=2,pady=10,padx=10)
    
    label2=Label(win,text='省份:',justify=LEFT,width=10)
    label2.grid(row=2,column=1,padx=30)
    datas={'辽宁省':['沈阳市'],'广东省':['广州市'],'湖南省':['长沙市'],'浙江省':['杭州市']}
    comboPrvince1=ttk.Combobox(win,width=12,values=tuple(datas.keys()))
    comboPrvince1.grid(row=2,column=2,pady=10,padx=10)
    def comboChange(event):
        grade=comboPrvince1.get()
        if grade:
            comboPrvince2['values']=datas.get(grade)
        else:
            comboPrvince2.set([])
    comboPrvince1.bind('<<ComboboxSelected>>',comboChange)
    
    label3=Label(win,text='地区:',justify=LEFT,width=10)
    label3.grid(row=2,column=3,padx=20)
    comboPrvince2=ttk.Combobox(win,width=12)
    comboPrvince2.grid(row=2,column=4,pady=10,padx=10)
    
    label4=Label(win,text='请选择类别:',justify=LEFT,width=10)
    label4.grid(row=3,column=1,padx=20)
    Student_radio=IntVar()#与学生累别相关联份的变量
    Student_radio.set(1)
    radio1=Radiobutton(win,text='本科学生',variable=Student_radio,value=1)
    radio1.grid(row=3,column=2)
    radio2=Radiobutton(win,text='专科学生',variable=Student_radio,value=0)
    radio2.grid(row=3,column=3)
    
    major=IntVar()  #与英语专业相关联的变量
    check=Checkbutton(win,text='是否英语专业?',variable=major)
    check.grid(row=4,column=1,pady=10)
    
    def add_information():   #添加按钮事件处理函数
        if not entry1.get():
            messagebox.showwarning(title='注意!!!', message="输入学生姓名!")
        elif not comboPrvince1.get():
            messagebox.showwarning(title='注意!!!', message="请选择省份!")
        elif not comboPrvince2.get():
            messagebox.showwarning(title='注意!!!', message="请择地区!")
        else:
            result = '学生姓名:' + entry1.get()
            result = result + ';      省份:' + comboPrvince1.get()
            result = result + ';      地区:' + comboPrvince2.get()
            result = result + ';      类别:' + ('本科学生' if Student_radio.get() else '专科学生')
            result = result + ';      英语专业:' + ('yes' if major.get() else 'No')
            listbox_student.insert(0, result)
    
    
    buttonAdd=Button(win,text='增加',width=10,command=add_information)
    buttonAdd.grid(row=4,column=2)
    
    def del_information(): #删除按钮事件处理函数
        selection=listbox_student.curselection()
        if selection:
            listbox_student.delete(selection)
        else:
            messagebox.showwarning(title='注意!!!',message="请选中要删除的学生信息!")
    
    buttonDel=Button(win,text='删除',width=10,command=del_information)
    buttonDel.grid(row=4,column=3,)
    
    listbox_student=Listbox(win,width=83)  #创建列表框组件
    listbox_student.grid(row=5,column=1,columnspan=4,padx=5)
    win.mainloop()

    程序运行结果: 

    123

     

     

    展开全文
  • # Python 专用的列表表达式-循环嵌套形式 [expression for i in list1 for j in list2] # 完全等价于如下for循环嵌套形式 for i in list1: for j in list2: expression 我们先看普通for循环嵌套程序实例: 将两...

    在Python中使用列表推导式循环嵌套形式,也是有利于大大简化语言,非常简洁就实现循环嵌套。
    这些Python专有的表达式,我们称之为Python语句,很Python.

    # Python 专用的列表表达式-循环嵌套形式
    [expression for i in list1 for j in list2]
    # 完全等价于如下for循环嵌套形式
    for i in list1:
    	for j in list2:
    	expression
    

    我们先看普通的for循环嵌套程序实例:
    将两个字符串的字符相加,形成新的列表。

    new_list = []
    for i in "李磊":
        for j in "韩梅":
            new_list.append(i+j)
    print(new_list)
    

    运行结果:
    在这里插入图片描述
    我们用列表表达式-循环嵌套形式实现上述程序功能。

    name_list = [i+j for i in "李磊" for j in "韩梅"]
    print(name_list)
    

    运行结果:
    在这里插入图片描述

    展开全文
  • 队列的Python实现与实例分析

    千次阅读 2018-02-21 22:29:48
    队列是只有一端可以进行插入操作,而另一端可以进行删除操作的有序线性存储结构,满足先进先出的约束。...在 Python 中,和栈一样,同样可以用列表作为队列的底层实现,只需要确定列表的哪一端作为队列...

    队列是只有一端可以进行插入操作,而另一端可以进行删除操作的有序线性存储结构,满足先进先出的约束。

    生活中典型的实例就是排队,先到的人排在前面,可先得到服务,后到的人排在后面,并且不能插队。

    计算机应用中典型的实例就是打印机,先发送的打印任务可以先被执行,之后的都要排队等候

    Python实现

    在 Python 中,和栈一样,同样可以用列表作为队列的底层实现,只需要确定列表的哪一端作为队列的头,也即删除操作端,哪一端作为队列的尾,也即插入操作端。同时,把队列抽象为类,队列的先进先出操作实现为类的方法

    假定队尾在列表中的位置为 0。这允许我们使用列表上的插入函数向队尾添加新元素。弹出操作可用于删除队首的元素(列表的最后一个元素)。这样入队的复杂度为 O(n),出队为 O(1)。如果队尾和队首在列表中的位置换一下,则入队的复杂度为 O(1),出队为 O(n)。

    以下为按照前面一种方式的队列的Python实现

    Queue 实现一个队列类,可通过 Queue() 建立一个空队列

    is_empty 操作判断队列是否为空

    enqueue 操作将新元素插入到列尾

    dequeue 操作将弹出并删除队首的元素

    size 操作返回队列的大小

    class Queue:
        def __init__(self):
            self.items=[]
        def is_empty(self):
            return self.items==[]
        def enqueue(self,item):
            self.items.insert(0,item)
        def dequeue(self):
            return self.items.pop()
        def size(self):
            return  len(self.items)

    以上为队列的最简单实现,对比栈的实现,可以看出两者非常相像,只在插入操作上有所不同。

    应用实例

    约瑟夫问题:n个人围成一个圈,每个人分别标注为1、2、…、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。

    解约瑟夫问题的一种方法是模拟这个过程,模拟的载体可以是队列,也可以是链表,下面就用列队来模拟这个过程

    循环报数的过程可以看作是一个先报数先出的过程,用队列来模拟时,将当前报数的人弹出,如果报的不是k时,再插入到队尾,从而得以循环,如果报的是k,则抛弃。直至剩下最后一个人。

    下面是在生成 Queue 类的基础下,Python 解决约瑟夫问题的一个实例代码,以实际人名来仿真n个人,报数为7时删除,输出最后的胜利者。

    #约瑟夫问题仿真函数
    def circle(k,nameList):
        queue1=Queue()
        for i in range(len(nameList)):  #将名字列表逐个插入队列
            queue1.enqueue(nameList[i])
        i=1
        while queue1.size()!=1:
            temp=queue1.dequeue()       #叫到哪个将哪个弹出
            if i!=k:
                queue1.enqueue(temp)    #不是第k个再插入
            else :
                i=0                     #是第k个重新计数
            i+=1
        return queue1.dequeue()
    #主函数
    if __name__=='__main__':
        nameList=["Bill","David","Susan","Jane","Kent","Brad"]
        print(circle(7,nameList))
    #输出结果
    Kent
    展开全文
  • 本书是Python经典实例解析,采用基于实例的方法...Python是杰出脚本语言,可以为应用程序注入动力,提供出色速度、安全性和可扩展性。本书从解决具体问题角度出发,通过一系列实例来剖析Python,带领读者在特...

    本书是Python经典实例解析,采用基于实例的方法编写,每个实例都会解决具体的问题和难题。主要内容有:数字、字符串和元组,语句与语法,函数定义,列表、集、字典,用户输入和输出等内置数据结构,类和对象,函数式和反应式编程,Web服务,等等。

    Python是杰出的脚本语言,可以为应用程序注入动力,提供出色的速度、安全性和可扩展性。本书从解决具体问题角度出发,通过一系列实例来剖析Python,带领读者在特定的情境中全面深入了解其具体的语言特性,无论是新手还是老手都能从中获益。

    ●了解Python语法的复杂细节及其合理用法

    ●通过Python中的函数提高代码的可读性

    ●使用内置数据结构有效地操作数据

    ●熟悉Python中的编程技术

    ●处理JSON、XML等多种不同文件格式

    ●编写测试以确保程序按预期的方式工作

    ●使用Python集成应用软件

    史蒂文・F.洛特(Steven F. Lott),20世纪70年代开始编程生涯,作为软件工程师和架构师,参与过的大小项目众多。近十多年一直致力于用Python解决商业问题,对Python语言有深入体会和丰富经验。目前专注于利用Python来实现微服务和ETL管道。

    第 1 章 数字、字符串和元组 1

    1.1 引言 1

    1.2 创建有意义的名称和使用变量 2

    1.3 使用大整数和小整数 5

    1.4 在浮点数、小数和分数之间选择 8

    1.5 在真除法和floor除法之间选择 13

    1.6 重写不可变的字符串 15

    1.7 使用正则表达式解析字符串 19

    1.8 使用"template".format()构建复杂的字符串 22

    1.9 通过字符列表构建复杂的字符串 25

    1.10 使用键盘上没有的Unicode字符 27

    1.11 编码字符串――创建ASCII和UTF-8字节 29

    1.12 解码字节――如何根据字节获得正确的字符 31

    1.13 使用元组 33

    第 2 章 语句与语法 36

    2.1 引言 36

    2.2 编写Python脚本和模块文件――语法基础 37

    2.3 编写长行代码 40

    2.4 添加描述和文档 44

    2.5 在文档字符串中编写RST标记 48

    2.6 设计复杂的if…elif链 51

    2.7 设计正确终止的while语句 54

    2.8 避免break语句带来的潜在问题 58

    2.9 利用异常匹配规则 61

    2.10 避免except:子句带来的潜在问题 64

    2.11 使用raise from语句链接异常 65

    2.12 使用with语句管理上下文 67

    第 3 章 函数定义 70

    3.1 引言 70

    3.2 使用可选参数设计函数 70

    3.3 使用灵活的关键字参数 75

    3.4 使用*分隔符强制使用关键字参数 77

    3.5 编写显式的函数参数类型 80

    3.6 基于偏函数选择参数顺序 84

    3.7 使用RST标记编写清晰的文档字符串 87

    3.8 围绕Python栈限制设计递归函数 91

    3.9 根据脚本/库转换规则编写可重用脚本 94

    第 4 章 内置数据结构――列表、集、字典 98

    4.1 引言 98

    4.2 选择数据结构 99

    4.3 构建列表――字面量、append()和解析式 102

    4.4 切片和分割列表 106

    4.5 从列表中删除元素――del语句、remove()、pop()和filter() 109

    4.6 反转列表的副本 114

    4.7 使用set方法和运算符 116

    4.8 从集中移除元素――remove()、pop()和差集 120

    4.9 创建字典――插入和更新 122

    4.10 从字典中移除元素――pop()方法和del语句 126

    4.11 控制字典键的顺序 128

    4.12 处理doctest示例中的字典和集 130

    4.13 理解变量、引用和赋值 132

    4.14 制作对象的浅副本和深副本 134

    4.15 避免可变默认值作为函数参数 137

    第 5 章 用户输入和输出 141

    5.1 引言 141

    5.2 使用print()函数的功能 141

    5.3 使用input()和getpass()收集用户输入 145

    5.4 使用"format".format_map(vars())进行调试 150

    5.5 使用argparse模块获取命令行输入 151

    5.6 使用cmd模块创建命令行应用程序 156

    5.7 使用操作系统环境设置 161

    第 6 章 类和对象的基础知识 165

    6.1 引言 165

    6.2 使用类封装数据和操作 166

    6.3 设计操作类 169

    6.4 设计数据类 174

    6.5 使用__slots__优化对象 177

    6.6 使用更复杂的集合 180

    6.7 扩展集合――统计数据的列表 183

    6.8 使用特性计算惰性属性 186

    6.9 使用可设置的特性更新及早属性 190

    第 7 章 高级类设计 195

    7.1 引言 195

    7.2 在继承和扩展之间选择――is-a问题 195

    7.3 通过多重继承分离关注点 201

    7.4 利用Python的鸭子类型 205

    7.5 管理全局单例对象 208

    7.6 使用更复杂的结构――列表映射 212

    7.7 创建具有可排序对象的类 214

    7.8 定义有序集合 218

    7.9 从映射列表中删除元素 223

    第 8 章 函数式编程和反应式编程 228

    8.1 引言 228

    8.2 使用yield语句编写生成器函数 229

    8.3 使用生成器表达式栈 234

    8.4 将转换应用于集合 241

    8.5 选择子集――三种过滤方式 244

    8.6 汇总集合――如何归约 248

    8.7 组合映射和归约转换 252

    8.8 实现there exists处理 257

    8.9 创建偏函数 260

    8.10 使用不可变数据结构简化复杂算法 265

    8.11 使用yield from语句编写递归生成器函数 269

    第 9 章 输入/输出、物理格式和逻辑布局 274

    9.1 引言 274

    9.2 使用pathlib模块处理文件名 275

    9.3 使用上下文管理器读取和写入文件 281

    9.4 替换文件,同时保留以前的版本 284

    9.5 使用CSV模块读取带分隔符的文件 287

    9.6 使用正则表达式读取复杂格式 291

    9.7 读取JSON文档 295

    9.8 读取XML文档 301

    9.9 读取HTML文档 305

    9.10 将CSV模块的DictReader更新为namedtuple读取器 310

    9.11 将CSV模块的DictReader更新为namespace读取器 314

    9.12 使用多个上下文读取和写入文件 317

    第 10 章 统计编程和线性回归 322

    10.1 引言 322

    10.2 使用内置统计库 322

    10.3 计算Counter对象中值的平均值 329

    10.4 计算相关系数 332

    10.5 计算回归参数 336

    10.6 计算自相关 339

    10.7 确认数据是随机的――零假设 344

    10.8 查找异常值 348

    10.9 通过一次遍历分析多个变量 353

    第 11 章 测试 359

    11.1 引言 359

    11.2 使用文档字符串进行测试 360

    11.3 测试抛出异常的函数 365

    11.4 处理常见的doctest问题 368

    11.5 创建单独的测试模块和包 372

    11.6 组合unittest测试和doctest测试 378

    11.7 涉及日期或时间的测试 381

    11.8 涉及随机性的测试 385

    11.9 模拟外部资源 388

    第 12 章 Web服务 398

    12.1 引言 398

    12.2 使用WSGI实现Web服务 400

    12.3 使用Flask框架实现RESTful API 408

    12.4 解析请求中的查询字符串 414

    12.5 使用urllib发送REST请求 418

    12.6 解析URL路径 424

    12.7 解析JSON请求 433

    12.8 实施Web服务认证 441

    第 13 章 应用程序集成 455

    13.1 引言 455

    13.2 查找配置文件 456

    13.3 使用YAML编写配置文件 462

    13.4 使用Python赋值语句编写配置文件 468

    13.5 使用Python类定义编写配置文件 470

    13.6 设计可组合的脚本 475

    13.7 使用logging模块监控和审计输出 481

    13.8 将两个应用程序组合为一个复合应用程序 488

    13.9 使用命令设计模式组合多个应用程序 494

    13.10 管理复合应用程序中的参数和配置 497

    13.11 包装和组合CLI应用程序 501

    13.12 包装程序并检查输出 506

    13.13 控制复杂的步骤序列 509

    展开全文
  • 安装模块; pip install PyMySQL Connection对象: 用于建立和数据库连接 创建对象:调用connect()方法 ...参数charset : 通信采用编码,默认是gb2312,要求数据库创建时指定编码一致,否
  • 姓名列表,字符长度大于8的列表元素姓名,转化为大写;否则转化为小写。 程序实例: name_list = [] name = ["Tuliyou","JackMa","BillGates"] for i in name: if len(i) > 8: name_list.append(i.upper()) ...
  • 本文实例讲述了Python基础之函数定义使用。分享给大家供大家参考,具体如下:Python 定义函数使用 def 关键字,一般格式如下:def 函数名(参数列表):函数体让我们使用函数来输出"Hello World!":>...
  • 本书是Python经典实例解析,采用基于实例的方法...Python是杰出脚本语言,可以为应用程序注入动力,提供出色速度、安全性和可扩展性。本书从解决具体问题角度出发,通过一系列实例来剖析Python,带领读者在特...
  • 本书是Python经典实例解析,采用基于实例的方法...Python是杰出脚本语言,可以为应用程序注入动力,提供出色速度、安全性和可扩展性。本书从解决具体问题角度出发,通过一系列实例来剖析Python,带领读者在特...
  • Flask Web开发:基于Python的Web应用开发实战作者拥有25年软件开发经验,而《Flask Web开发:基于Python的Web应用开发实战》则采用讲解与实例相结合方式,不仅介绍了Flask安装、使用等基础知识,而且还带领读者...
  • 本文实例讲述了Python queue队列原理与应用。分享给大家供大家参考,具体如下: 作用:  解耦:使程序直接实现松耦合,修改一个函数,不会有串联关系。  提高处理效率:FIFO = 现进先出,LIFO = 后...
  • 使用 raise语句主动抛出异常意思是开发者可以自己制造程序异常,这里程序异常不是指发生了内存溢出、列表越界访问等系统异常,而是指程序在执行过程中,发生了用户输入数据要求数据不符、用户操作错误等问题,...
  • #以下实例展示了嵌套列表解析写法。 #嵌套列表解析表达是书写规则是层层嵌套。 #嵌套层一般形式为:for outter in inner。根据需要解析嵌套层次深度,此一般形式可以从左到右接续写若干个。 #嵌套层是从最...
  • Flask Web开发:基于Python的Web应用开发实战作者拥有25年软件开发经验,而《Flask Web开发:基于Python的Web应用开发实战》则采用讲解与实例相结合方式,不仅介绍了Flask安装、使用等基础知识,而且还带领读者...
  • Flask Web开发:基于Python的Web应用开发实战作者拥有25年软件开发经验,而《Flask Web开发:基于Python的Web应用开发实战》则采用讲解与实例相结合方式,不仅介绍了Flask安装、使用等基础知识,而且还带领读者...
  • 实例应用: for 循环语句(求列表中最大值) ''' 此代码 for循环使用案例 获取列表中多种元素中最大值 ''' list1=[123,456,11111,55102,451,'你好','hello'] #list列表 max01=list1[0] print(max01) ...
  • 这篇文章主要介绍了python中的列表生成式、生成器表达式、模块导入 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值...5.17 列表生成式生成器表达式的应用 names=['egon','alex_sb','wupeiqi','yuan
  • ADT Graph3.1 定义3.2 ADT Graph的实现方法3.2.1 邻接矩阵Adjacency Matrix3.2.2 邻接列表Adjacency List四、ADT Graph的实现:实例4.1 Vertex类4.2 Graph 类五、图的应用5.1 词梯问题5.1.1 构建单词关系图5.1.2 ...
  • 继上一篇,介绍multiprocessing在python高级应用-共享数据同步,此篇主要内容主要介绍托管对象。 和线程不同,进程不支持共享对象。尽管可以像前面所述那样创建共享值和数组,但这对更高级的python对象...
  • sort是应用在list上方法,sorted应用于所有可迭代对象。 sort是将原有的列表直接排序,无返回值;sorted是将列表排序后返回一个新的列表,原列表不变。 实例: C:\Users\Administrator>python Python 3.6.6 (v...
  • 本文实例讲述了Python基础之函数定义使用。分享给大家供大家参考,具体如下: Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表):  函数体 让我们使用函数来输出”Hello World!”: ...
  • 之前我们对爬取内容的解析...findall(),这是re库中的函数,用来匹配所有符合规律的内容,并以列表的形式返回结果 ‘(.?)’ 就是待匹配的内容,这里使用了正则表达式的方法,返回的是括号内的所有字符,而p则代表着段...
  • numpy数组和python列表之间区别。 正则索引,奇特索引,掩码,例如t = s [s> 0](创建副本) A [[1,3]] 创建视图,复制 列表。 c = b [:]是副本,c = b是视图(字典工作原理相同) np.array。 d = a [:]和d = ...
  • 首先,这是抄,发现原文有错,我改了,此文生成器很棒,回头来看学到了 ...4. 列表生成式map()、filter()等高阶函数功能对比 三、生成器(Generator) 1. 生成器作用 2. 生成器构造...
  • 界面编程入门;1. 创建主窗口;第一个Tkinter程序;第一个Tkinter程序;...综合应用实例人员信息管理系统;数据库准备;数据库准备;1. 界面设计;1. 界面设计;2. 程序实现;1. 录入人员信息;2. 查询人员信息;3.
  • 好程序员Python培训分享函数定义使用示例,结合实例形式分析了Python函数定义、参数、变量作用域、返回值等相关概念使用技巧。 Python定义函数使用def关键字,一般格式如下: def 函数名(参数列表): 函数...
  • 一、匿名函数 匿名函数指一类无须定义...匿名函数的应用示例 匿名函数实例 问题描述: 有一个整数列表(10个元素), 要求调整元素顺序,把所有的奇数放在前面,偶数放在后面。 实现如下: import random li = [] fo...
  • 冒泡排序是一个排序算法。这个算法名字由来是因为越大元素会经由交换慢慢“浮”到数列...应用场景: 小规模数据排序,队列从小到大排序 实例: 将下列列表从小到大进行排序 List = [1, 5, 7, 4, 9] for i...
  • 该压缩包是最新的python教程,里面包含基本的python用法以及简单项目实例,高清PDF以及配套书籍代码,欢迎大家下载学习! 第一章,数字,字符串,和元组,将会看到不同类型数字,工作 使用字符串,使用元组,并...
  • 1、取整数 random.randint(x,y) 表示取是[x,y]所有整数。 2、取小数(没有精度) random.uniform(1,4) 表示取[1,4]之间所有小数 3、取小数(精确到小数点后两位) ...应用实例python与selenium结合,...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 151
精华内容 60
关键字:

python列表的应用与实例

python 订阅