自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CC

记录python学习的点点滴滴

  • 博客(22)
  • 收藏
  • 关注

原创 Django初始化创建项目及应用

1、进入项目所在的虚拟环境bj18workon bj182、创建项目test3django-admin startproject test3、进入项目所在目录cd test4、创建应用booktestpython manage.py startapp booktest5、Pycharm导入目录test36、找到项目文件,test3/settings.py,注册项目应用INSTALLED_APPS中末尾添加'booktest',7、在项目根目录中创建一个模板文件.

2020-06-13 13:14:43 178 1

原创 Django之查询相关的函数

get:返回一条且只能有一条数据,返回值是一个对象,参数可以写查询条件。all:返回模型类对应表的所有数据,返回值是一个查询集(QuerySet)。filter:返回满足条件的数据,参数中可以写查询条件。返回值也是QuerySet实例对象exclude:返回不满足条件的数据,和filter相反order_by:对查询的结果进行排序,返回值是QuerySet,参数中写排序的字段 可以写多个字段,默认升序,如果降序,在字段前面加“-”F对象:用于类属性之间的比较。Q对象:用于条件之间的逻

2020-06-12 12:26:08 248

原创 最大公约数的几种高效方法(欧几里得,辗转相除法,更相减损法,最优解法)

辗转相除法又名欧几里得算法(Euclidean algorithm)该算法的目的是求出两个 正整数的最大公约数。它是已知最古老的算法, 其产生时间可追溯至公元前300年前。这条算法基于一个定理:两个正整数a和b(a>b),它们的最大公约数等于a除以b 的余数c和b之间的最大公约数。例如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约 数更相减损术更相减损术,出自中国古代的《九章算术》,也是一种求最大公约数的算法。古希腊 人很聪明,可是我们炎黄子

2020-06-09 17:11:24 1945 4

原创 Django初始化创建项目

1、进入虚拟环境workon bj18_py2、创建文件夹mkdir bj183、进入文件夹cd bj184、创建Django项目django-admin startproject test15、在项目里开发某一个功能需要创建应用python manage.py startapp booktest6、对应用进行注册setting.py中INSTALLED.APPS修改添加一行:‘booktest’7、运行web项目python manage.py runserver...

2020-06-09 11:28:04 131

原创 Django之MVT

M:model,模型,和MVC中M功能相同,和数据库进行交互V:view,视图,和MVC中C功能相同,接受请求,进行处理,和M和T进行交互,返回应答T:Template模板,和MVC中V功能相同,产生HTML页面工作原理...

2020-06-08 08:31:30 136

原创 Django之MVC框架

M:Model ,模型,和数据库进行交互V:View,视图,产生HTML页面C: Controller ,控制器,接受请求,进行处理,与M和V进行交互,返回应答。工作机制详见下图:

2020-06-06 08:57:48 276

原创 队列(Python)

class Queue(object): """队列""" def __init__(self): self.__list = [] def enqueue(self,item): """往队列中添加元素""" self.__list.append(item) def dequeue(self): """队列头部删除一个元素""" return self.__list.pop(0)

2020-05-27 19:39:51 164

原创 栈(Python)

#coding:utf-8class Stack(object): """栈""" def __init__(self): self.__list = [] def push(self,item): """添加元素item到栈顶""" self.__list.append(item) def pop(self): "弹出栈顶元素" return self.__list.pop() d

2020-05-27 19:20:02 112

原创 二叉树添加元素与遍历(Python版)

class Node(object): def __init__(self,item): self.item = item self.lchild = None self.rchild = Noneclass Tree(object): def __init__(self): self.root = None def add(self,item): node = Node(item)

2020-05-27 18:27:54 816 1

原创 二分查找(递归与非递归两种方法)(Python版)

二分查找,序列必须为有序表,本代码默认为序列为递增二分查找又叫折半查找,其基本思想是:将列表中间位置的元素与目标元素比较,如果两者相等,则查找成功;否则将列表从中间位置分开,分成前、后两个子列表,如果中间位置的元素大于目标元素,则进一步查找前一子列表,否则进一步查找后一子列表。重复以上过程,直到找到满足条件的元素,使查找成功;或子表为空,此时制定元素不在列表内部。代码如下:def binary_search_1(alist,item): """二分查找,递归,递增""" n..

2020-05-27 15:13:18 473

原创 合并两个排序的链表(剑指offer)Python版

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。# -*- coding:utf-8 -*-class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: # 返回合并后列表 def Merge(self, pHead1, pHead2): # write code h

2020-05-26 19:06:16 115

原创 归并排序(Python实现)

归并排序归并排序是采用分治法的一个非常典型的应用,归并排序的思想就是先递归分解数组,再合并数组将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先娶谁,取了之后相应相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。def merge_sort(alist): """归并排序""" n = len(alist) if n <= 1: return alist mid = n

2020-05-26 14:19:44 160

原创 快速排序(Python实现)

快速排序快速排序(Quicksort)又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤:1、从数列中挑出一个元素,称为“基准”。2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任意一边)。在这个分区结束之后,该基

2020-05-26 13:43:53 194

原创 希尔排序(Python实现)

希尔排序希尔排序(shell sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高级的改进版本。希尔排序是非稳定排序算法。该方法因DL.shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐步减少,每组包含的竿见次越来愈多,当增量减至1时,整个文件恰被分成一组,算法便终止。基本思想:将数组列在一个表中并对列分别进行插入排序,重复这过程,不过每次用更长的列来进行。最后整个表中只有一列了。代码如下:def shell_

2020-05-26 12:01:42 175

原创 插入排序(Python实现)

插入排序插入排序(insertion sort)是一种简单直观的排序算法。工作原理通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序在实现上,在从后向前扫描的过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。def insert_sort(alist): n = len(alist) for i in range(1,n): while i > 0: if alist[i] &l

2020-05-26 11:46:07 326

原创 选择排序(Python实现)

选择排序选择排序(selection sort)是一种简单直观的排序算法。工作原理如下首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,知道所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,他们当中至少有一个将被移动到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方

2020-05-26 10:44:19 380

原创 冒泡排序(Python实现)

冒泡排序冒泡排序(Bubble Sort)是一种简单的排序算法。它重复的遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复的进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的命名由来是因为越小(大)的元素会经由交换慢慢“浮”到数列的顶端。代码如下:def BubbleSort(alist): n = len(alist) for i in range(1,n): #从队列的第i个元素开始向前面的所有元素对比

2020-05-26 09:54:00 185

原创 Python写一个双向链表

class Node(object): def __init__(self,elem): self.elem = elem self.next = None self.prev = Noneclass DoubleLinkList(object): """双向链表""" def __init__(self, node = None): #node = None为默认参数 self.__head = n

2020-05-25 19:14:10 97

原创 Python写一个单向循环列表

class Node(object): def __init__(self,elem): self.elem = elem self.next = Noneclass SingleCycleList(object): def __init__(self, node = None): #node = None为默认参数 self.__head = node if node: node.n

2020-05-25 18:02:07 240

原创 Python写一个单链表

class Node(object): def __init__(self,elem): self.elem = elem self.next = Noneclass SingleLinkList(object): def __init__(self, node = None): #node = None为默认参数 self.__head = node def is_empty(self): ret

2020-05-25 18:00:48 190 2

原创 机试题--商城免单数

华为商城,每一秒第一个购买的人可以免单,同时刻的人都可以免单。输入N组数据(各种年月不同时刻的),问怎么算免单人数订单信息诸如:2020-05-11 16:47:22.0012020-05-11 16:47:52.0022020-05-11 16:48:07.003输出:3import sys#列表存储订单中不同的秒数list_seconds = []list = []result = {}count = 0#如果是系统输入,用注释的这段# for line in sys.

2020-05-11 17:50:33 443

原创 纪念一个机试题

一个机试题,当时没做出来,现在做出来了纪念下。题目大致如下:将输入的字母例如:a11c3b3bcd4解压后排序排序规则:字母后的数量升序排列,如果数量相同,字母按ASCII码升序排列example:输入:“a11c3b3bcd4”result:输出:bbbcccbcdbcdbcdbcdaaaaaaaaaaaimport ress = input()#需要将输入的字符串字母段和数字分开,分别存在列表中list_alpha = []list_digit = []result = []

2020-05-11 16:42:18 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除