
Python
是杰夫呀
记录学习的点点滴滴。
展开
-
Python 二进制、八进制、十进制、十六进制的相互转换
转为十进制(int)使用 int() 函数的结果是十进制。第一个参数是字符串,第二个参数是说明字符串本身是几进制的数。int('100',2) #4int('13',8) #11int("oxf",16) #15转为二进制(bin)bin(10) #0b1010bin(int('ff',16)) #十六进制->十进制->二进制。结果是0b11111111bin(int('17',8)) #八进制->十进制->二进制。结果是0b1111转原创 2021-04-07 18:42:25 · 3065 阅读 · 1 评论 -
Python 二维列表(list)的初始化
Python初始化一个m * n的二维list:list = [[0] * m for _ in range(n)]不能直接用:b = [[0] * 5] * 5因为这样相当于把[0]*5这个一维列表复制了5次,因此更改[0]*5中的任意一个元素,都会同时修改其他四个复制的列表。...原创 2021-04-05 12:44:42 · 4256 阅读 · 0 评论 -
Linux安装python3并设置成系统默认python环境
1、环境说明 系统版本:Linux安装的python版本:3.6.52、编译环境准备(如果出现文件解压错误,wget命令无法下载等各种小意外,先把下面的环境安装一遍) yum install zlib-devel bzip2-devel openssl-devel ncurses-devel gcc-c++ gcc xz -y3、下载python安装包 可以根据自己的喜好去官网自行下载wget https://www.python.org/ftp/python/3.8.0原创 2020-09-24 17:12:57 · 4706 阅读 · 0 评论 -
Linux 离线编译安装Python 3.6.5
1、下载 Python-3.6.5 安装包 在 Python 官网(https://www.python.org/downloads/)下载对应的安装包,我们这里选择 3.6.5 的 linux 版本,如下图:2、将安装包上传至 Linux 服务器 在 Linux 服务器根目录下创建目录 package,并将安装包上传至该目录下3、解压 Python-3.6.5.tgz [root@xiaoxiaojiang/]# cd /package/ [root@xia..原创 2020-09-24 17:09:01 · 3386 阅读 · 3 评论 -
Python isinstance()定义,以及isinstance() 与 type() 区别
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。...原创 2020-08-11 15:27:55 · 1445 阅读 · 0 评论 -
Python Flask入门
1. 首先写以下代码,命名为test.py:# -*- coding: utf-8 -*-# @Time : 2020/7/29 19:42# @Author : QUENTINNE# @File : test.py# @Software: PyCharmfrom flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello, World!'2.原创 2020-08-04 11:35:58 · 1291 阅读 · 0 评论 -
Python 有序字典 OrderedDict 的使用
很多人认为python中的字典是无序的,因为它是按照hash来存储的。但是python中有个模块collections(英文,收集、集合),里面自带了一个子类OrderedDict,实现了对字典对象中元素的排序。请看下面的示例:import collectionsprint "Regular dictionary"d={}d['a']='A'd['b']='B'd['c']='C'for k,v in d.items(): print k,vprint "\nOrde原创 2020-07-30 17:28:26 · 2401 阅读 · 1 评论 -
Python 报错 Could not find a version that satisfies the requirement (from versions: ) No matching dist
在安装某些依赖包时,Python 出现如下的报错:Could not find a version that satisfies the requirement XXX (from versions: )No matching distribution found for XXX当时没截图,找一张网络上的图:解决方法一:更新pip版本到最新版。(但问题没解决,仍报同样的错)python -m pip install --upgrade pip解决方法二:由于网络的问题,需要使用.原创 2020-07-29 16:42:46 · 45242 阅读 · 11 评论 -
Python报错 UnicodeDecodeError: ‘gbk‘ codec can‘t decode bytein position 2: illegal multibyte sequence
Python在读取文本信息时候出现以下的错误提示:UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence错误的意思是:Unicode的解码(Decode)出现错误了,以gbk编码的方式去解码(该字符串变成Unicode),但是此处通过gbk的方式,却无法解码(can't decode).''illegal multibyte sequence"的意思是...原创 2020-07-28 10:18:27 · 200157 阅读 · 26 评论 -
Python 字典value值比较大小
input:a = {'name': 'alex', 'age': 23}b = {'name': 'john', 'age': 28}目标是根据age大小,获得最大年龄的字典dict。output:b = {'name': 'john', 'age': 28}实现1:用max函数,取出最大值对应的dict。max(a,b,key=lambda x:x['age'])实现2:用sorted函数,对所有dict排序。再取第一个就是最大的。sorted(a,b, key原创 2020-07-22 16:02:12 · 9592 阅读 · 0 评论 -
Python dict 和 set 的原理及使用
本文来自廖雪峰的官方网站小白的 Python 新手教程,记录一下。https://www.liaoxuefeng.com/wiki/1016959663602400/1017104324028448dictPython 内置了字典:dict 的支持,dict 全称 dictionary,在其他语言中也称为 map,使用键 - 值(key-value)存储,具有极快的查找速度。举个例子,假设要根据同学的名字查找对应的成绩,如果用 list 实现,需要两个 list:names ...原创 2020-07-22 15:56:09 · 325 阅读 · 0 评论 -
Python 变得更快的一份加速工具清单
这篇文章会提供一些优化代码的工具。会让代码变得更简洁,或者更迅速。当然这些并不能代替算法设计,但是还是能让 Python 加速很多倍。其实前面讲算法的文章,也有提到过。比如适用于双向队列的 deque,以及在合适的条件下运用 bisect 和 heapq 来提升算法的性能。而且前面也提到过,Python 提供了当今最高级也是最有效的排序算法 (list.sort)。另外还有一个功能多样又迅速的散列表 (dict)。而且如果写迭代器封装、功能性代码或者是某种额外扩展的时候,或许CyToolz.原创 2020-07-20 14:21:28 · 514 阅读 · 0 评论 -
Python 实现自动导入缺失的库
在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误:ImportError: No module named 'xxx'或者ModuleNotFoundError: No module named 'xxx'。导入失败问题,通常分为两种:一种是导入自己写的模块(即以 .py 为后缀的文件),另一种是导入三方库。本文主要讨论第二种情况,今后有机会,我们再详细讨论其它的相关话题。解决导入 Python 库失败的问题,其实关键是在运行环境中装上缺失的库(注意是否是虚拟环境),或者使...原创 2020-07-17 11:21:05 · 335 阅读 · 0 评论 -
Python jieba 分词时报错:AttributeError: float object has no attribute decode
在利用结巴(jieba)进行分词时出现如下错误:AttributeError: 'float' object has no attribute 'decode'。当读取编码为 UTF-8 的文件时不会报错,当读取为 gbk 时却会报这类错误。在生产上报这个错太难受了~紧急解决。由于生产上没有截图,因此用网络上的图。原始内容:def cutword(x): seg = jieba.cut(x) #结巴分词函数 return ' '.join(seg)原创 2020-07-15 20:02:49 · 5587 阅读 · 1 评论 -
Python 读取.txt文件报错“‘utf-8‘ codec can‘t decode byte 0x92”
Python3 使用open('filename', 'r').read()读取.txt文件时抛出异常:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 66: invalid start byte相同语句在Python2下运行时却正常。原因分析:0x92 即 10010010,UTF8 中编码一个字符的第一个字节(start byte)只可能是 0xxxxxxx、110xxxxx、1110xxx、1..转载 2020-07-15 19:52:48 · 3080 阅读 · 0 评论 -
Python 时间增加或减少一个月
因为需求要统计每个月底的数量,而每个月的月底又不太相同,因此在月末的时候使用以下语句,避免出现2月30日等情况。需要用到的Python依赖包是 relativedelta 。import datetimefrom dateutil.relativedelta import relativedeltaif __name__ == "__main__": print(datetime.date.today() - relativedelta(months=+1))...原创 2020-07-15 19:46:36 · 4057 阅读 · 0 评论 -
python 判断文件是否存在,是否为空
1. 判断文件是否为空os.path.getsize()返回文件的字节数,如果为 0,则代表空。import os file = "/home/abc/a.txt"if not os.path.getsize(file): os.remove(file)2. 判断文件 / 文件夹是否存在os.path.exists()方法用于检验文件 / 文件夹是否存在。import ospath = "/home/abc/test_dir"file = "/home/abc/..原创 2020-07-15 19:34:25 · 15225 阅读 · 0 评论 -
python 中使用 xlrd、xlwt 操作 excel 表格详解
这篇文章主要介绍了 python 中使用 xlrd、xlwt 操作 excel 表格详解, python 操作 excel 主要用到 xlrd 和 xlwt 这两个库,即 xlrd 是读 excel,xlwt 是写 excel 的库, 需要的朋友可以参考下python 操作 excel 主要用到 xlrd 和 xlwt 这两个库,即 xlrd 是读 excel,xlwt 是写 excel 的库。可从这里下载https://pypi.python.org/pypi。下面分别记录 pyth...原创 2020-07-13 15:09:11 · 631 阅读 · 0 评论 -
Python enumerate() 函数 遍历
描述enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。语法以下是 enumerate() 方法的语法:enumerate(sequence, [start=0])参数sequence -- 一个序列、迭代器或其他支持迭代对象。 start -- 下标起始位置。返回值返回 enumerate(枚举) 对象原创 2020-07-13 14:01:30 · 913 阅读 · 0 评论 -
Python 两个 list 获取交集,并集,差集
a=[2,3,4,5] b=[2,5,8] 1. 交集#方法一tmp = [val for val in a if val in b] print tmp #方法二 print list(set(a).intersection(set(b))) 2. 并集print list(set(a).union(set(b)))3. 差集print list(set(b).difference(set(a))) # b中有而a中没有的...原创 2020-07-13 11:07:49 · 796 阅读 · 0 评论 -
Pandas DataFrame行或列的删除方法drop函数
平时在用DataFrame时候,删除操作用的不太多。原数据包含的信息过多,或者生成了新的无用信息行/列,需要从DataFrame中筛选数据,组成一个新的DataFrame再继续操作。官方文档写的很清楚:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html输入:# dfid name math english1 Alice 90 892原创 2020-05-21 16:49:27 · 3209 阅读 · 0 评论 -
Python 提取指定中间字符串 取出字符串中间文本,利用正则表达式
由于业务需要,要提取指定字符串的关键信息。具体要求是从一个字符串中提取<>里面的内容。于是想到利用Python 中的正则实现。输入:我要听<梁博>的<男孩>输出:梁博 男孩Python 实现:#coding:utf8import reimport sysreload(sys)sys.setdefaultencoding('utf8')template = "我要听<歌手名>的<歌曲名>" d..原创 2020-05-21 15:02:35 · 20107 阅读 · 0 评论 -
Python 初始化 一维list 和二维list 的方法
当list is not defined时候,需要对list进行初始化。1. 一维list初始化1)初始化递增数字的listL = range(10) # print(L)# [0,1,2,3,4,5,6,7,8,9]或者以下代码L = [i for i in range(10)]2)初始化元素全为0的List(不推荐)L = [0] * 5# print(L)# [0,0,0,0,0]2. 二维list初始化L = [[0] * 5 for i in原创 2020-05-20 00:17:53 · 1196 阅读 · 0 评论 -
Python中 List 与 String 相互转换
1.list转string命令:''.join(list)。其中引号里填的是字符之间的分割符,如“,”,“;”,“\t”等。2.string转list1)命令:list(str)2)命令:str.split()。这个内置函数实现的是将str转化为list。其中str=""是分隔符。# String转为List,识别的分隔符号为.str = '3.14.159.26'list = str.split('.')print(list)# List转为String,分隔符号为..原创 2020-05-19 23:52:44 · 8118 阅读 · 0 评论 -
Python 格式化输出%s和%d给print传参
Python给print传参。1. 打印字符串print ("His name is %s"%("Jeff"))2.打印整数print ("Jeff is %d years old"%(25))3.打印浮点数print ("His height is %f m"%(1.83))4.打印浮点数(指定保留小数点位数)print ("His height is %.2f m"%(1.83))5.指定占位符宽度print ("Name:%10s Age:%8d H.原创 2020-05-19 23:43:25 · 6404 阅读 · 0 评论 -
Python 统计程序运行时间
想要统计Python 运行的时间,发现实现起来非常简单,不需要下载额外包,系统自带。import datetimestartTime = datetime.datetime.now()# 中间这里是运行的代码endTime = datetime.datetime.now()print("运行的时间是:%ss" % (endTime - startTime).seconds)...原创 2020-05-19 23:32:54 · 1190 阅读 · 0 评论 -
Python 报错 Failed to establish a new connection: [Errno 11001] getaddrinfo failed,)
把Python 里的下载镜像换成了清华的,结果在下载时显示报错:Failed to establish a new connection: [Errno 11001] getaddrinfo failed',)':解决方法:想起我之前的博文:https://blog.csdn.net/sinat_26811377/article/details/99698807,其实是类似情况。在终端输入以下命令:pip --default-timeout=100 install 库名称 -i .原创 2020-05-15 16:14:25 · 24949 阅读 · 6 评论 -
Python 报错jpype._jvmfinder.JVMNotSupportedException: JVM mismatch, python is 32 bit and JVM is 64 bit
在使用HanLP时,Python报错jpype._jvmfinder.JVMNotSupportedException: JVM mismatch, python is 32 bit and JVM is 64 bit报错的原因就是JVM是64位,而使用的Python是32位。解决方法:切换到64位的 Python,重新安装 pyhanlp。最终成功!...原创 2020-05-13 17:12:52 · 2731 阅读 · 0 评论 -
Python pickle 模块的使用
用于序列化的两个模块json。用于字符串和Python数据类型间进行转换 pickle。用于python特有的类型和python的数据类型间进行转换json提供四个功能:dumps,dump,loads,load。 pickle提供四个功能:dumps,dump,loads,load。pickle可以存储什么类型的数据呢? 所有python支持的原生类型:布尔值,整数,浮点数,复数,字符串,字节,None。 由任何原生类型组成的列表,元组,字典和集合。 函数,类,类的实例pick原创 2020-05-13 15:09:08 · 473 阅读 · 0 评论 -
Python 报错TypeError: write() argument must be str, not bytes
Python 3 写以下代码的时候报错:write() argument must be str, not byteswith open('data1.pk', 'r') as f: all_dick, idf_dict = pickle.load(f)产生原因:Python3给open函数添加了名为encoding的新参数,而这个新参数的默认值却是‘utf-8’。这样在文件句柄上进行read和write操作时,系统就要求开发者必须传入包含Unicode字符的实例,而不接受包含二进制.原创 2020-05-13 14:59:09 · 4928 阅读 · 0 评论 -
Python Pickle 在一个文件中序列化多个对象
经常遇到在Python程序运行中得到了一些字符串、列表、字典等数据,想要长久的保存下来,方便以后使用,而不是简单的放入内存中关机断电就丢失数据。这个时候Pickle模块就派上用场了,它可以将对象转换为一种可以传输或存储的格式。一、dump()方法pickle.dump(obj, file, [,protocol])注释:序列化对象,将对象obj保存到文件file中去。参数protocol是序列化模式,默认是0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和原创 2020-05-13 12:09:21 · 2239 阅读 · 0 评论 -
Python 常见的17个错误分析
对于刚入门的Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题。下面整理了常见的17个错误,希望能够帮助到大家1、忘记在if,for,def,elif,else,class等声明末尾加:会导致“SyntaxError :invalid syntax”如下:ifs...原创 2020-03-05 21:15:21 · 312 阅读 · 0 评论 -
Python报错 AttributeError:'numpy.ndarray' object has no attribute 'index'
很久之前的笔记了。numpy中的ndarray没有索引,因此需要转为list格式。解决方法如下:import numpy as nparray = array.tolist()原创 2019-11-18 17:05:50 · 60308 阅读 · 0 评论 -
Python 提取 DataFrame 某字段最大值所对应的行
在处理DataFrame时,某一列/某个字段在不同类别中有不同的值。提取某个类别中该字段最大值所对应的行,需要用group by 方法。输入: year num name0 2016 2 a1 2016 5 b2 2017 4 c3 2017 7 d4 2017 8 e5 2018 90 ...原创 2019-10-31 17:32:40 · 19374 阅读 · 1 评论 -
Python 字典的key值唯一特性
字典的特点是key值唯一。如果在dict字典中,输入不唯一的key值,会怎样?输入:dict3 = {'你': (2, 'sh'), '你': (3, 'gz')}dict4 = {'你': (3, 'sh'), '你': (2, 'gz')}输出:dict3 = {'你': (3, 'gz')} dict4 = {'你': (2, 'gz')}结论:在dict中输入已...原创 2019-10-31 14:05:14 · 5510 阅读 · 1 评论 -
Python 面试题汇总(附答案)
记录网上看到的知识点和面试题。不定时更新~1. list tuple dict set 是可迭代对象,那么字符串是否为可迭代对象?头脑一热的,马上回答不是,但其实…答案:是>>> from collections import Iterable>>> isinstance('abc', Iterable)>>> True...原创 2019-10-25 16:51:59 · 650 阅读 · 0 评论 -
Python 计算两个dict的和
由于要统计词语出现的频数,而 dict 格式存储频数是非常合适的。在循环过程中,产生了 dict 需要进行累加,因此需要了解如何进行两个 dict 的累加。输入:x = { 'apple': 1, 'banana': 2 }y = { 'banana': 10, 'pear': 11 }期望输出:z = {'apple': 1, 'banana': 12, 'pear'...原创 2019-10-22 17:10:02 · 707 阅读 · 0 评论 -
Pandas DataFrame显示行和列的数据不全
在print时候,df总是因为数据量过多而显示不完整。解决方法如下:#显示所有列pd.set_option('display.max_columns', None)#显示所有行pd.set_option('display.max_rows', None)#设置value的显示长度为100,默认为50pd.set_option('max_colwidth',100)可以参看官...原创 2019-10-22 12:34:21 · 1292 阅读 · 0 评论 -
Pandas DataFrame中的tuple元素遍历
在用Word2vec计算出词语的相似度之后,得到的DataFrame格式如下:1. 索引(index)为输入的关键词,从第0列开始为相似度最高的词语和它的余弦相似度。2. 这个DataFrame 中每一个元素,比如(通话, 0.21321064233779907)的格式为tuple。输入数据: 0 ...原创 2019-10-22 11:38:30 · 1112 阅读 · 0 评论 -
Pandas Series转为DataFrame
输入(Series格式):# df['col1']0 A1 A2 B3 NaN4 D5 C输出(DataFrame格式):import numpy as npimport pandas as pd# 产生数据df = pd.DataFrame({'col1': ['A', 'A', 'B', np.nan...原创 2019-10-16 09:24:54 · 3891 阅读 · 0 评论