• Madman
  • ·

Python3数据结构05 - 栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素

  • Madman
  • ·

Python3数据结构03 - 双向链表

前两篇介绍了顺序表和链表中的单链表,本文将介绍链表的另一种实现:双向链表,它的每个节点和两个指针域,分别指向前驱节点和后继节点。从双向链表中的任意一个节点开始,都可以很方便地访问它的前驱节点和后继节点

  • Madman
  • ·

Python3数据结构02 - 单向链表

链表也是线性表的一种,链表可以合理利用不连续的内存区,可以相对灵活地使用存储空间。但是,它的每个节点增加了指针域,所以空间开销也比较大。另外,它失去了顺序表的快速读取任意元素 O(1) 的优点

  • Madman
  • ·

Python3数据结构01 - 顺序表

线性表包括顺序表和链表,本文先介绍顺序表的元素内置和元素外置两种基本形式,再介绍一体式和分离式两种顺序表的结构,最后说明了Python中列表和元组高级数据结构的本质其实就是元素外置的、分离式的动态顺序表

  • Madman
  • ·

算法概述

算法是设计良好的可计算的过程,它把某个值或某些值作为输入并产生某个值或某些值作为输出。通常设计一个解决问题的算法是很容易的,但如果这个算法很慢,就要重新设计了。因为算法运行的速度取决于它运行的环境以及实现的细节,计算机科学家们倾向于把运行时间以输入的大小来表示,比如O(n)

  • Madman
  • ·

Python3 csv模块处理报表数据 - PyQt5制作图形界面

使用Python3 csv模块处理快收后台导出的商场优惠活动交易数据,统计各类优惠券的核销数量,以及实收款等汇总数据。测试数据 "1. 财务明细数据.csv" 已经删除了敏感信息,由于客户不想使用脚本,所以使用 PyQt5 编写了图形界面,再使用 pyinstaller 打包为可执行程序

  • Madman
  • ·

Python 日志模块logging

Python程序中可以使用内置的logging模块,方便的记录运行日志,将日志信息进行分类存储,当程序出现BUG时,可以通过分析日志来定位问题所在

  • Madman
  • ·

Python 正则表达式 re 模块

如果你想匹配的是字面字符串,那么你通常只需要调用基本字符串方法就行, 比如 str.find() , str.endswith() , str.startswith() 或者类似的方法。对于复杂的匹配需要使用正则表达式和 re 模块,如果你想使用同一个模式去做多次匹配,你应该先将模式字符串预编译为模式对象。match() 总是从字符串开始去匹配,如果你想查找字符串任意部分的模式出现位置,...