Python大乱斗
一起学习编写高质量代码 改善Python程序的91个建议
远去的栀子花
为了美好的未来,加油!!!
展开
-
01 顺序表 python实现
MAX_NUM = 100class SeqList: def __init__(self): self.seqlistarr = list() self.length = 0 def CreateSeqList(self, arr): for i in range(len(arr)): self.seqlistarr.ap..原创 2021-07-06 14:47:33 · 181 阅读 · 0 评论 -
python实现常见算法
1、o-1背包代码实现class Goods: def __init__(self, weight, value): self.weight = weight self.value = value self.priceRitio = weight/valuedef GetMaxValue(): value = 0 weight = 30 weightOfCurrent = 0 goods = [G.原创 2021-09-10 22:47:44 · 315 阅读 · 0 评论 -
pip使用国内源安装组件
可以使用国内的PyPI镜像源(会定期的把国外的软件拷贝到这个库中)。 国内的一些pipy的镜像源: 1.清华源: https://pypi.tuna.tsinghua.edu.cn/simple 2.豆瓣源: https://pypi.douban.com/simple 3.pypi.hustunique.compip install requests -ihttps://pypi.tuna.tsinghua.edu.cn/simple...原创 2021-05-01 11:20:25 · 110 阅读 · 0 评论 -
PyQt5--添加事件
1、Qt中对控件事件触发都统一称为槽和信号,我这理解为触发源和目标源,事件的添加方法就是在QtDesigner中使用 编辑槽/信号 功能后,点击触发源,拖动信号线指向目标源,如下图,我使用了pushButton作为了触发源,calendar作为目标源,拖动结束后,会出现事件编辑栏,左边的为触发源的事件,右边为目标源的事件,分别选择即可,步骤如下图:2、运行效果,点击按钮清楚文本框中的内容...原创 2020-12-06 23:22:00 · 2117 阅读 · 0 评论 -
PyQt5安装与入门
1、安装pyqt5#指定源安装相关包pip install pyqt5 -i https://mirrors.aliyun.com/pypi/simple/pip install pyqt5-tools -i https://mirrors.aliyun.com/pypi/simple/2、测试安装是否成功import sys from PyQt5 import QtWidgets, QtCore app = QtWidgets.QApplication(sys.a原创 2020-12-06 22:45:52 · 243 阅读 · 2 评论 -
tkinter--控件
1、控件种类2、控件属性原创 2020-12-05 22:40:36 · 57 阅读 · 0 评论 -
tkinter--菜单
1、顶级菜单1)我们可以使⽤ Menu 类来新建⼀个菜单, Menu 和其他的组件⼀样,第⼀个是parent ,这⾥通常可以为窗⼝;2)然后我们可以⽤ add_commmand ⽅法来为它添加菜单项, 如果该菜单是顶层菜单,则添加的菜单项依次向右添加。 如果该菜单时顶层菜单的⼀个菜单项,则它添加的是下拉 菜单的菜单项;3)add_command 中的参数常⽤的有 label 属性,⽤来指定的 是菜单项的名称, command属性⽤来指定被点击的时候调⽤ 的⽅法, acceletor 属性指定的是..原创 2020-12-05 22:23:07 · 1672 阅读 · 0 评论 -
tkinter--画布
1、canvas Canvas(画布)组件为 Tkinter 的图形绘制提供了基础。Canvas 是一个高度灵活的组件,你可以用它绘制图形和图表,创建图形编辑器,并实现各种自定义的小部件。Canvas 是一个通用的组件,通常用于显示和编辑图形。你可以用它来绘制线段、圆形、多边形,甚至是绘制其它组件。2、常用方法Canvas 的坐标系统是绘图的基础,其中点 (0,0) 位于 Canvas 组件的左上角,X 轴水平向右延伸,Y 轴垂直向下延伸。create_arc:绘制弧。 cr...原创 2020-12-05 19:57:26 · 716 阅读 · 0 评论 -
tkinter--事件绑定
1、事件 事件可以有各种来源:包括用户触发的鼠标和键盘操作和窗口管理器触发的重绘事件(在多数情况下是由用户间接引起的)。Tkinter 提供一个强大的机制可以让你自由地处理事件,对于每个组件来说,你可以通过 bind() 方法将函数或方法绑定到具体的事件上。2、事件序列事件序列是以字符串的形式表示的,可以表示一个或多个相关联的事件。事件序列使用以下语法描述:<modifier-type-detail> 事件序列是包含在尖括号(<...>)中 ...原创 2020-12-05 19:28:24 · 574 阅读 · 0 评论 -
tkinter--布局之place
1、place最简单最灵活的一种布局,使用组件坐标来放置组件的位置。但是不太推荐使用,在不同分辨率下,界面往往有较大差异。2、代码from tkinter import *root = Tk()lb = Label(root, text='大西安')# 使用绝对坐标将Label放置到(50,50)位置上lb.place(x=50, y=50, anchor='center')bt = Button(root, text='确定')# 使用相对坐标将Label放置到父组件中间的原创 2020-12-05 18:34:58 · 264 阅读 · 0 评论 -
tkinter--布局之grid
1、grid grid布局又被称作网格布局,是最被推荐使用的布局。程序大多数都是矩形的界面,我们可以很容易把它划分为一个几行几列的网格,然后根据行号和列号,将组件放置于网格之中。使用grid 布局时,需要在里面指定两个参数,分别用row 表示行,column 表示列。需要注意的是 row 和 column 的序号都从0 开始。2、代码import tkinterfrom tkinter import ttkwin = tkinter.Tk()win.title("xi'a...原创 2020-12-05 18:18:53 · 3184 阅读 · 0 评论 -
tkinter--布局之pack
1、pack使用 pack布局,将向容器中添加组件,第一个添加的组件在最上方,然后是依次向下添加。2、代码from tkinter import *root = Tk()# 创建三个 Label 分别添加到root窗体中# Label是一种用来显示文字或者图片的组件Label(root, text='pack1', bg='red').pack()Label(root, text='pack2', bg='blue').pack()Label(root, text='pack3原创 2020-12-04 00:23:07 · 728 阅读 · 0 评论 -
Tkinter--按钮
1、代码from tkinter import *root = Tk()root.wm_title('the first lable')button = Button(root, text = 'first button', bg = 'red')button.pack()root.mainloop()2、代码运行3、按钮属性4、添加事件import tkinterimport tkinter.messageboxtop = tkinter.Tk..原创 2020-12-03 23:52:49 · 176 阅读 · 0 评论 -
Tkinter--标签
1、代码from tkinter import *root = Tk()root.wm_title('the first lable')label = Label(root, text = 'this is a label')label.pack()root.mainloop()2、运行结果3、标签属性4、属性实例from tkinter import *root = Tk()root.wm_title('the first lable')l..原创 2020-12-03 23:33:08 · 161 阅读 · 0 评论 -
第一个Tkinter程序
1、程序from tkinter import *root = Tk()root.mainloop()2、运行结果3、注释1)代码的第⼀⾏是引⼊了该模块,即 from tkinter import * 所做的⼯作;2)第⼆⾏是对 Tk 这个类进⾏实例化,即 root 是它的⼀个实例,是代码 root = Tk() 的作⽤,root即是整个窗⼝程序对象;3)第三⾏进⾏事件循环,即 root.mainloop() 的作⽤,会让窗⼝循环接收下⼀个事件。...原创 2020-12-02 00:30:30 · 141 阅读 · 0 评论 -
数据结构--python实现双链表
HEAD = -9999class Node: """define node""" def __init__(self, elem): self.elem = elem self.next = None self.prior = Noneclass DoubleLinkListClass: """define SingLinkListClass""" def __init__(self): self.原创 2020-12-05 20:25:57 · 120 阅读 · 1 评论 -
数据结构--python实现单链表
HEAD = -9999class Node: """define node""" def __init__(self, elem): self.elem = elem self.next = Noneclass SingleLinkListClass: """define SingLinkListClass""" def __init__(self): self.__head = Node(HEAD) .原创 2020-12-05 20:23:42 · 111 阅读 · 0 评论 -
数据结构--python实现顺序列表
class SequenceListClass: def __init__(self): self.SequenceList = [] return None #create SeqList def CreateSeqList(self, SeqList): self.SequenceList.clear() for elem in SeqList: self.SequenceList.appe.原创 2020-12-05 20:21:13 · 180 阅读 · 0 评论 -
数据结构--python实现顺序栈
class SeqenuStackClass: """define SeqenuStackClass""" def __init__(self, stackList): self.__list = stackList def Pop(self): del self.__list[len(self.__list) - 1] return None def Push(self, element): self..原创 2020-12-05 20:16:38 · 341 阅读 · 0 评论 -
Python调用系统命令的方法
1、os.system>>> import os>>> os.system("ls /tmp")'Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>' aliyun_assist_37d3b524ccb1e5a4d7b7e65c04d5711b.zip systemd-private-e409eeddae5a487c98ba5e177d72b3dc-chronyd.service-aphktJ原创 2021-03-10 00:16:51 · 314 阅读 · 0 评论 -
Python高质量代码--2
1、利用assert语句发现问题1)断言是有代价的,它会对 性能产生一定的影响。python并没有严格定义调试和发布模式之间的区别,通常禁用断言的方法是在运行脚本的时候加上- O标志,例如,python -O manage.py2)不要滥用断言,这是使用断言最基本的原则;3)如果python本身的异常能够处理就不要再使用断言;4)不要使用断言来检查用户的输入,最好使用条件判断来进行判断;5)在函数调用后,当需要确认返回值是否合理时可以使用断言;6)当条件是业务逻辑继续下去的先决条件时原创 2020-12-20 11:30:13 · 215 阅读 · 1 评论 -
Python高质量代码--1
一、规范一1)避免只用大小写来区分不同的对象,例如用a表示一个数值类型变量,用A表示String类型变量;2)避免使用容易引起混淆的名称,比如:重复使用已经存在于上下文中的变量名来表示不同的类型;误用了内建名称来表示其他含义的名称而使之在当前命名空间被屏蔽;使用o、l等作为变量名;3)不要害怕过长的变量名,变量名person_info比pi的可读性要强得多;4)使用风格检查程序PEP8进行编程规范的检查,比如flake8、Pylint。二、规范二1)统一缩进风格,不要混用Tab与空格原创 2020-12-06 13:33:51 · 207 阅读 · 0 评论