python
秋风铁马
行百里者半九十
展开
-
Python3中验证登录密码时异常:TypeError: Unicode-objects must be encoded before hashing原因
案例代码部分片段如下:pwd = 123s1 = sha1()s1.update(pwd)pwd2 = s1.hexdigest()出现如下异常:Traceback (most recent call last): File ".......", line 11, in <module> s1.update(pwd)TypeError: Unicode-objects must be encoded before hashingProcess finished with原创 2020-09-08 03:34:04 · 556 阅读 · 0 评论 -
PyCharm2020.2单行或多行注释及取消注释快捷键
—默认快捷键—:Ctrl+/(如果是多行批量注释/取消注释,需先选中多行,再使用该快捷键)。除了上述默认快捷键之外,如果选择的Keymap不同,可能还有变动。如Keymap选择Emacs后,注释快捷键变为:Alt+;(Alt+分号)。注意:经过测试,无论Keymap选哪种,块注释的选项Comment with Block Comment及其快捷键Ctrl+Shift+/均无法使用,原因暂不明确。Keymap的选择情况可以在设置(Settings)–>Keymap中查看和修改,其中打开Setti原创 2020-09-07 17:34:40 · 3956 阅读 · 0 评论 -
使用pip3 install pymysql直接在线安装PyMySQL驱动
使用pip3 install pymysql时,提示:Successfully installed pymysql-0.10.0。同时,出现pip版本更新警告,根据警告更新了pip3后,再次安装pymysql,提示“已满足要求”。安装过程如下:[root@localhost~]# pip3 install pymysqlCollecting pymysql Downloading PyMySQL-0.10.0-py2.py3-none-any.whl (47 kB) |█████████原创 2020-09-06 16:00:29 · 3556 阅读 · 0 评论 -
搜索算法——二分法查找的两种Python3实现方法
在搜索算法中,二分法查找是一种基础的、简单而高效的算法,又称为折半查找。顾名思义,就是将待查表一分为二,从而减少了查找次数,提高了效率。但缺点就是待查表必须为顺序表,并且,待查表在查找时不宜做增删操作。其最优时间复杂度为O(1),最坏时间复杂度为O(logn)。# coding:utf-8方法一:递归法def binarySearch_01(listx, item): """Be of recursion""" length = len(listx) if length &g原创 2020-08-20 04:18:41 · 396 阅读 · 0 评论 -
“分治法”的经典应用—归并排序算法的python实现
归并排序算法采用分治法,先递归分解数组,再合并数组。代码内部流程比较繁琐,需要保持清晰的思路,才能理解其中的原理。如果第一遍尝试有困难,不妨再多推演两遍。其排序流程演示图如下:Python3实现代码如下:# coding:utf-8def mergeSort(listx): length = len(listx) if length <= 1: return listx #数组分割线: split = length // 2 #递归原创 2020-08-19 20:35:32 · 247 阅读 · 1 评论 -
快速排序算法的两种python实现
快速排序算法在本例中涉及到函数的递归调用,细节处有些绕,需要理解调用的流程。可能遇到的异常:1、死循环;2、list index out of range;解决思路:参数较多,可仔细检查参数使用是否出现混乱。# coding:utf-8"""起止下标::param begin, end:前后游标:small, large"""def quickSort(listx, begin, end): if begin >= end: return small原创 2020-08-18 20:40:21 · 207 阅读 · 0 评论 -
插入排序和希尔排序算法各自两种Python实现方法
一、插入排序算法:# coding:utf-8def insert_sort(alist): n = len(alist) for j in range(1, n): #Means01:(方法一) # for i in range(j,0,-1): # if alist[i] < alist[i-1]: # alist[i],alist[i-1] = alist[i-1],alist[i]原创 2020-08-18 01:49:42 · 131 阅读 · 0 评论 -
单链表的遍历以及增、删、改、查等操作的Python实现
代码正文见下方的Python代码块。如果测试时出现异常:AttributeError: ‘NoneType’ object has no attribute ‘elem’,请检查链表头部的处理情况,是否有遗漏的情况等。另外,需要确认游标定义是否足够清晰、准确。"""Data structure"""# coding:utf-8class Node(object):"""Define the node class""" def __init__(self, elem):原创 2020-08-15 15:16:27 · 212 阅读 · 0 评论 -
Python2和Python3中range对象属性之区别
Python2和Python3中range对象属性之区别在Python2中,若令x = range(200),则x对象的属性有如下几种:x.append x.extend x.insert x.remove x.sort x.count x.index x.pop x.reverse相比而言,在Python3中,x对象的属性有:count(), step, index(), stop, start其中,python2(x.pop(0)) == python3(原创 2020-08-11 18:45:21 · 277 阅读 · 0 评论 -
CentOS7.x中无法直接通过pip3命令安装程序、ipython3无法正常使用。
一、问题现象1、通过pip -V查看版本 显示如下: pip 20.2b1 from /usr/lib/python2.7/site-packages/pip-20.2b1-py2.7.egg/pip (python 2.7) 通过pip3 -V查看时,显示如下: bash: /usr/bin/pip3: /usr/bin/python3: 坏的解释器: 没有那个文件或目录 在python3的安装目录/usr/local/python3/bin下用./pip3 -V命令查看版本,显示如下: p原创 2020-07-21 01:28:05 · 582 阅读 · 0 评论