
Python基础
dta0502
个人博客:https://tding.top/
展开
-
Python3 迭代器与生成器
迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器:>>> list=[1,2,3,4]>>> it = iter(li...转载 2018-06-21 20:03:07 · 105 阅读 · 0 评论 -
Python 的 md5 和 sha1 加密---hashlib
Python 的 md5 和 sha1 加密—hashlibmd5 与 sha1MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法。具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。md5的应用场景:加密网站注册用户的密码。(但去年的各大网站密码泄漏事件确实让人蛋疼……)网站用户上传图片 ...转载 2018-10-16 15:05:44 · 370 阅读 · 0 评论 -
Python---threading
Python—threading.Timer一、Timer类基本介绍这个类表示一个动作应该在一个特定的时间之后运行 — 也就是一个计时器。Timer是Thread的子类, 因此也可以使用函数创建自定义线程。class threading.Timer(interval, function, args=[], kwargs={}) 创建一个timer,在interval秒过去之后,它将以参数...转载 2018-10-16 19:09:56 · 142 阅读 · 0 评论 -
Python采用pip安装MySQLdb时出错
Python采用pip安装MySQLdb时出错问题1首先我采用pip安装:pip install MySQLdb结果出现以下错误:Could not find a version that satisfies the requirement MySQLdb (from versions:)No matching distribution found for MySQLdb解决方法...原创 2018-10-16 22:08:37 · 12079 阅读 · 0 评论 -
Python asyncio/aiohttp: ValueError: too many file descriptors in select() on Windows
错误描述下面是我的部分代码:tasks = [asyncio.ensure_future(run(url)) for url in url_list]loop.run_until_complete(asyncio.wait(tasks))下面是错误:ValueError: too many file descriptors in select()。分析By default Win...转载 2018-10-30 19:49:15 · 1639 阅读 · 0 评论 -
Python获取指定目录下的所有指定后缀的文件名
使用到的函数有:os.path.splitext():分离文件名与扩展名os.listdir():查找本目录下所有文件import osf_list = os.listdir(path)# print f_listfor i in f_list: # os.path.splitext():分离文件名与扩展名 if os.path.splitext(i)[1] == '.log...转载 2018-11-06 21:56:44 · 6608 阅读 · 2 评论 -
UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 问题解决办法之一
问题描述Windows下使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到下面问题:UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position … 解决办法网络数据流写入文件时,我们会遇到几个编码:#encoding=’XXX’(Python文件第一行的内容)...转载 2018-11-13 11:09:42 · 1241 阅读 · 0 评论 -
Python 十进制转换为二进制 高位补零
这里需要使用内置函数''.format()高位补零>>> a = 2>>> b = '{:08b}'.format(a)输出结果为八位二进制,且高位补零。高位不补零>>> b = '{:8b}'.format(a)输出结果为八位二进制,但是高位不补零。需要注意的是,输出的结果类型都为str类型。...转载 2018-11-13 20:18:20 · 5361 阅读 · 1 评论 -
Python 生成一段随机字符串的三种写法
方法1s1=''.join(random.choice(string.ascii_letters + string.digits) for _ in range(10**7))方法2for _ in range(10**7): s2 += random.choice(string.ascii_letters + string.digits)方法3s3=''.join(rand...转载 2018-11-12 17:51:25 · 1518 阅读 · 0 评论 -
Python清除字符串中间空格的方法
1、使用字符串函数replace>>> a = 'hello world'>>> a.replace(' ', '')'helloworld'2、使用字符串函数split>>> a = ''.join(a.split())>>> print(a)helloworld...转载 2018-12-01 22:44:03 · 3908 阅读 · 0 评论 -
Python import 导入模块的时候为什么引用不了子模块?
问题描述比如导入结巴分词,代码如下:import jieba # 引入母模块然后直接使用结巴的子模块 posseg 来标注词性,代码如下:jieba.posseg.cut('中文词性标注')这句报异常AttributeError: 'module' object has no attribute 'posseg'必须这样导入子模块,才能使用:from jieba import...转载 2018-12-05 15:14:10 · 3938 阅读 · 2 评论 -
Python中list转换array的一个问题
详细版本见个人博客:Python中list转换array的一个问题我在数据分析过程中需要将list转换为array,但是转换的过程出了一点问题,下面是记录。一、list转换为array的方法下面的a是一个list类型,如果要进行numpy的一些数值运算,我们就需要将它转换为array类型。import numpy as npa = [[1,2,3],[4,5,6]]转换如下:i...原创 2019-05-14 21:03:40 · 8388 阅读 · 0 评论 -
Python虚拟环境实践
开发每个Python项目时,都推荐创建对应的virtualenv来隔离开发。 这样可以不受系统Python软件包的影响,安装任意包的任意版本,并且最终能通过pip freeze > requirements.txt获取依赖列表。当然,这个列表通常需要裁剪。一、安装virtualenv使用apt、yum等包管理器安装的版本老旧,推荐使用pip安装。python3.6 -m pip ins...转载 2019-06-17 16:18:40 · 217 阅读 · 0 评论 -
Python中threading的join和setDaemon的区别及用法
Python中threading的join和setDaemon的区别及用法Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别。join()方法主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方...转载 2018-10-16 14:05:49 · 132 阅读 · 0 评论 -
Python第三方库pyecharts安装过程
首先打开cmd,在cmd中使用pip命令安装pyecharts库,如下所示:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pyecharts其中-i https://pypi.tuna.tsinghua.edu.cn/simple/是使用清华作为下载源,可以极大加快下载速度。如果安装失败,请在cmd中运行命令:pip i...转载 2018-10-08 15:54:02 · 12074 阅读 · 1 评论 -
Python更改pip源至国内镜像,显著提升下载速度
在使用Python的时候经常需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼。网上有很多可用的源,例如豆瓣:http://pypi.douban.com/simple/清华:https://pypi.tuna.tsinghua.edu.cn/simple最近使...转载 2018-10-08 15:42:45 · 2571 阅读 · 0 评论 -
Python 类的下划线命名
类的下划线命名1、 _xx 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。若内部变量标示,如: 当使用“from a_module import”时,不会将以一个下划线开头的对象引入 。不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象。2、 __xx...原创 2018-06-22 10:15:20 · 681 阅读 · 0 评论 -
Python 面向对象
面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这...转载 2018-06-22 11:00:02 · 151 阅读 · 0 评论 -
Python __add__和__radd__
+ 号运算符号,通常被我们用来重载一些实例之间的添加操作,这里讲述一下__add__和__radd__的运算解析流程>>> class A:>>> c = B()>>> b + cTraceback (most recent call last): File "<stdin>", line 1, in <modul转载 2018-06-22 16:14:05 · 7041 阅读 · 2 评论 -
Python程序调试——pdb
pdb的常用命令说明: 1)查看运行到哪行代码 l 2)单步运行,跳过函数 n 3)单步运行,可进入函数 s 4)查看变量值 p 变量 5)断点设置到第几行 b 行号6)显示所有断点列表 b7)删除某个断点 cl 断点号 8)删除所有断点 cl 9)跳到下一个断点 c10)return当前函数 r 11)退出 exit 调试记...转载 2018-06-23 16:32:26 · 298 阅读 · 0 评论 -
Python正则表达式
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成。正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的。. 匹配任意字符(不包括换行符)^ 匹配开始位置,多行模式下匹配每一行的开始$ ...转载 2018-06-23 20:05:32 · 251 阅读 · 0 评论 -
Python 字符串(str)和列表(list)的互相转换
str >>>list str1 = "12345"list1 = list(str1)print list1 str2 = "123 sjhid dhi"list2 = str2.split() #or list2 = str2.split(" ")print list2 str3 = "www.google.com"list3 = str3.split("转载 2018-07-08 19:53:25 · 9438 阅读 · 0 评论 -
Python函数的闭包问题
内部函数>>> def func1():... print ('func1 running...')... def func2():... print ('func2 running...')... func2()... >>> func1()func1 running...func2 runnin...转载 2018-06-20 13:39:08 · 295 阅读 · 0 评论 -
Python 深入理解赋值、引用、拷贝
在 python 中赋值语句总是建立对象的引用值,而不是复制对象。因此,python 变量更像是指针,而不是数据存储区域这点和大多数 OO 语言类似吧,比如 C++、java 等。首先来看个问题在Python中,令values=[0,1,2];values[1]=values,为何结果是[0,[...],2]?>>> values = [0,1,2]>>> v...转载 2018-06-27 15:00:50 · 3939 阅读 · 0 评论 -
Python 跳出循环
break负责跳出整个循环>>> for i in range(10):... if i % 2 != 0:... break... else:... print(i)...0注意:但是break只能跳出一层循环,如果程序中有两个循环,第二个循环嵌套在第一个循环中,如果第二个循环被break,那么第一个循...原创 2018-07-13 22:54:34 · 8262 阅读 · 0 评论 -
Python基础——try与except处理异常语句
try/except介绍默认情况下,在程序段的执行过程中,如果没有提供try/except的处理,脚本文件执行过程中所产生的异常消息会自动发送给程序调用端,如python shell,而python shell对异常消息的默认处理则是终止程序的执行并打印具体的出错信息。这也是在python shell中执行程序错误后所出现的出错打印信息的由来。try/except完整格式pytho...转载 2018-08-29 20:13:45 · 734 阅读 · 0 评论 -
Python操作dict时避免出现KeyError的几种方法
在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如:t = { 'a': '1', 'b': '2', 'c': '3',}print(t['d'])就会出现:KeyError: 'd'第一种解决方法首先测试key是否存在,然后才进行下一步操作,如:t = { 'a': '1', ...转载 2018-09-15 16:51:33 · 2793 阅读 · 0 评论 -
Python中None与Null的区别
Null表示对象或某种数据类型(数据类型也为空,python中万物皆为对象)为空,而None表示一种一种特殊的数据类型,与Null不是同一概念,看例子:>>> s = '' #为s赋值一个空字符串>>> print(s) #该行打印了一个空字符串>>> s == None #可见,None不等于空False...转载 2018-10-07 11:36:38 · 447 阅读 · 0 评论 -
Python项目生成requirements
详细版本见个人博客:Python项目生成requirements一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个Python第三方包的list,一般都叫做requirements.txt。本文介绍了两种生成requirements.txt的方法。一、使用pip freezepip freeze > requirements.txt这种方式配合virtualenv才...原创 2019-06-17 16:19:48 · 4057 阅读 · 0 评论