
python
minxihou
红帽网络测试工程师
展开
-
默认参数与不定长参数传参时常见问题
本文主要讲述在进行默认参数传参与不定长参数传参时遇到的一个问题。python版本:python3.7python运行环境:win10+pycharm请看如下情况1:def paramdefined(p0, p1='a', *var, **keyvalue): print(f'p0的值为{p0},p1的值为{p1},var的值为{var},keyvalue的值为{keyvalue}')a = (1, 2, 3, 4, 5)b = {'name': 'houminxi', 'tel':原创 2020-08-16 18:40:56 · 985 阅读 · 0 评论 -
Python3实现快速排序
Python3实现快速排序这里是对几年前用python2快排的一些改进。这里仍然交代一下算法的基本思想和实现步骤。最后谈下可优化的一些方法。#基本思想通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程递归进行,以此来达到整个数据列变成有序数列。步骤如下:1.设置两个变量i和j,令序列第一个元素为基准元素(pivot)。2.i指向序列最左,j指向序列最右,j从右往左试探,i从左往右试探,直到原创 2020-08-06 17:36:32 · 499 阅读 · 0 评论 -
验证函数接收不定长参数时的拷贝类型
环境配置本人使用windows的环境来验证的该问题,环境配置如下:不定长参数拷贝方式在学习python3的函数的时候遇到了一个待考证的问题,在对函数进行不定长参数定义后,调用该函数传入参数时,函数会对参数的值进行拷贝。这里有个疑问就是形参拷贝实参时是什么类型的拷贝?如果是浅拷贝的话,那么实参变量中可变对线的值发生改变的话是否也会引起传入函数的值发生改变。假如定义一个函数以字典的方式接收不...原创 2020-04-12 20:09:44 · 429 阅读 · 0 评论 -
利用Python实现选择排序
选择排序算是很简单一种排序算法了,因为算法思想简单所以排序也不稳定。这里介绍排序算法思想,Python代码段和算法时间复杂度。选择排序算法思想对于一个无序的序列我们可以通过n-1趟排序得到排序结果。 我们定义一个无序序列list[R0…….RN] 1.初始状态:无序区为list 2.第一趟排序 在无序区间内选择一个关键字作为暂时的最小值min,然后将min与无序区间内的数挨个作比较,遇到比m原创 2016-07-21 17:27:33 · 2431 阅读 · 0 评论 -
浅析Python heapq模块 堆数据结构
堆的定义堆是一种特殊的树形数据结构,每个节点都有一个值,通常我们所说的堆的数据结构指的是二叉树。堆的特点是根节点的值最大(或者最小),而且根节点的两个孩子也能与孩子节点组成子树,亦然称之为堆。 堆分为两种,大根堆和小根堆是一颗每一个节点的键值都不小于(大于)其孩子节点的键值的树。无论是大根堆还是小根堆(前提是二叉堆)都可以看成是一颗完全二叉树。下面以图的形式直观感受一下: heapq模块在Pyt原创 2016-07-08 01:42:05 · 51298 阅读 · 2 评论 -
利用Python实现堆排序
在这里要事先说明一下我也是新手,很多东西我了解不是很深入,写算法完全是锻炼自己逻辑能力同时顺带帮助读研的朋友么解决一些实际问题。所以很多时候考虑的东西不是很全面能请各位看到博文的大牛们指正。对于排序算法说实在的我觉得已经写烂了,但是为什么还是要过一遍呢?还是为了能够打牢基础。说一下自己的看法,对于已经的玩烂的算法因该怎么学。首先最重要的还是了解算法的基本模型和算法思想,我觉得这是非常重要的。原创 2016-07-07 11:41:54 · 26296 阅读 · 6 评论 -
利用Python实现归并排序
在讲归并排序之前我们先来了解一下什么是分治算法。为什么归并排序属于分治算法的体现。分治算法分治算法基本思想就是将一个比较大规模的问题分解成为若干个规模较小的问题来解决。这些小问题相当于是原问题的子集并且相互独立。每个子集的性质和原问题性质必须要保持一致。分治算法特征1. 该问题可以分解成为程序能够执行的子问题。2. 该问题能够分解。意思就是问题具有最优子结构。这里我们可以理解成问题通过分解原创 2016-07-04 15:09:15 · 9114 阅读 · 3 评论 -
在win8环境下如何安装numpy和scipy包
使用机器环境win8 64位python编译器python2.6 首先我们考虑到的当然是去py的官网上下载有关的包这里给出下载路径http://www.scipy.org/scipylib/download.html在这里我们可以找到对应numpy/scipy各种版本适配于配忠server的安装包和源码包。在找到对应python2.6 windows版本原创 2016-06-15 18:01:44 · 1913 阅读 · 0 评论 -
利用Python实现冒泡排序
今天说一个比较简单易懂的算法,相信大家在大学里面肯定都有接触过。在这里介绍排序算法的一种冒泡排序,对于初学Python的新人来说因该很容易理解。原创 2016-06-22 23:49:56 · 13535 阅读 · 0 评论 -
利用Python实现中缀表达式转后缀表达式
这里我们写一个Python的程序来实现将一个算术表达式(中缀表达式)如何转换成一个后缀表达式。由于初学Python,所以这里实现的算术符可能就只有基本的算式运算符,但是思想还是共同的,值得借鉴参考。 闲话不多说,对于没有学过《数据结构及算法》的朋友来说我们来科普一下什么是算术表达式,什么是后缀表达式(逆波兰表达式)。 中缀表达式指的是操作符是以中缀形式出现在操作数之间,这也就是我们平常使原创 2016-06-19 23:27:14 · 7269 阅读 · 1 评论 -
利用Python实现Fibonacci Squence
最近读研的朋友向我求助斐波那契数列到底该怎么搞,我也是一步一步查通过网上各种文献的参考来慢慢给出一个比较好的可行解,部分代码源自互联网,有些有经过调试和修改。原创 2016-06-16 21:36:47 · 2450 阅读 · 3 评论 -
利用Python实现快速算法排序
今天我们来讲下七种常用的快速排序算法中的快速排序算法。开篇依旧先来讲讲什么是快速排序以及基本算法思路,然后给出代码段和时间复杂度。顺带也是回顾一下Python的基础语法。什么是快速排序快速排序是由C.A.R.Hoare于1962年提出的一种排序算法。其基本思想就是:通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进原创 2016-06-30 00:41:24 · 1033 阅读 · 0 评论