
Python
FreeSpider公众号
全网同名
展开
-
json dump 中文乱码
不管是dump还是dumps,中文乱码加入ensure_ascii=False即可json.dump(content, f, ensure_ascii=False)原创 2019-07-26 17:02:28 · 2962 阅读 · 0 评论 -
死锁产生的原因及四个必要条件
一. 什么是死锁? 如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程二. 死锁产生的原因?1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引起对诸资源的竞争而发生死锁现象(1)可剥夺资源和不可剥夺资源:可剥夺资源是指某进...转载 2018-08-28 23:24:01 · 380 阅读 · 0 评论 -
python gc模块
gc模块提供一个接口给开发者设置垃圾回收的选项。采用引用计数的方法管理内存的一个缺陷是循环引用的问题,而gc模块的一个主要功能就是解决循环引用的问题常用函数:1.gc.set_debug(flags)设置gc的debug日志,一般设置为gc.DEBUG_LEAK2.gc.collect([generation])显式进行垃圾回收,可以输入参数,0代表只检查第一代的对象,1代表检查...转载 2018-08-30 22:39:37 · 847 阅读 · 0 评论 -
Mac中-bash: ipython: command not found
如果已经使用pip install ipython安装了ipython,而且还是出现了如下错误:-bash: ipython: command not found那么我们使用;python -m IPython --version来查看ipython版本,如果看到版本信息,那么就可以使用python -m IPython 命令来启动ipython如果要使用ipython命...原创 2018-08-26 14:54:04 · 4443 阅读 · 0 评论 -
python中yield的用法
直接看一个小例子,来强化一下yield的使用;my_list=[1,2,3]def get_list(): print(1111) for i in my_list: print(2222) yield i print(3333)for s in get_list(): print(4444) print...原创 2018-08-13 09:49:43 · 167 阅读 · 0 评论 -
python中zip()函数
描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list...转载 2018-08-07 12:44:01 · 358 阅读 · 0 评论 -
python中单例模式
设计模式设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性单例设计模式目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例每一次执行 类名() 返回的对象,内存地址是相同的单例设计模式的应用场景音乐播放 对象 回收站 对象 ...原创 2018-08-06 20:18:04 · 362 阅读 · 0 评论 -
python中filter()函数
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。语法 filter(function, iterable)def is_odd(n): ...转载 2018-08-06 17:00:13 · 189 阅读 · 0 评论 -
python中lambda匿名函数
lambda函数形式: lambda argument_list: expressionlambda函数有如下特性:lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。lambda函数一般功能简单:单行...原创 2018-08-06 16:47:16 · 234 阅读 · 0 评论 -
python的reduce()函数
reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。例如,编写一个f函数,接收x和y,返回x和y的和:def f(x, y): return x + y...转载 2018-08-06 16:31:28 · 165 阅读 · 0 评论 -
python中map()函数的用法讲解
map函数的原型是map(function, iterable, …),它的返回结果是一个列表。参数function传的是一个函数名,可以是python内置的,也可以是自定义的。 参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。这个函数的意思就是将function应用于iterable的每一个元素,结果以列表的形式返回。注意到没有,iterable后面还有省...转载 2018-08-06 16:25:56 · 8741 阅读 · 0 评论 -
import 方法
import方法导入顺序 1. Python 标准库模块 2. Python 第三方模块 3. 应用程序自定义模块import方法搜索路径In [5]: sys.pathOut[5]: ['', '/usr/bin', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_6...原创 2018-08-06 15:34:25 · 691 阅读 · 0 评论 -
os模块打印出目录下所有文件路径
利用os模块,打印出当前路径下的所有文件名,使用到了递归函数。import os def print_dir_constents(sPath): #列出当前路径下的所有文件夹和文件 并进行遍历 for schild in os.listdir(sPath): #拼接地址 sChildPath = os...原创 2018-08-06 14:55:05 · 2779 阅读 · 1 评论 -
完全理解 python 中的容器、迭代器、生成器
完全理解 python 中的容器、迭代器、生成器容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存,比如迭代器和生成器对象)在Python中,常见的容器对象有:list(列表),set(集合),di...原创 2018-08-06 11:19:30 · 2629 阅读 · 2 评论 -
python 中enumerate的用法
In [1]: names=['aa','bb','cc']In [2]: for temp in names: ...: print(temp) ...: aabbccIn [3]: for temp in enumerate(names): ...: print(temp) ...: (0, 'aa')(1, 'bb'...原创 2018-09-09 10:38:47 · 492 阅读 · 0 评论 -
Python中GIL
一、GIL的概念:python全局解释器锁。(global interrupter lock)二、GIL产生的原因:1、Guido van Rossum(吉多·范罗苏姆)创建python时就只考虑到单核cpu。2、解决多线程之间数据完整性和状态同步的最简单方法自然就是加锁。 于是有了GIL这把超级大锁。3、cpython解析只允许拥有GIL全局解析器锁才能运行程序。4、保证...原创 2018-09-09 16:31:12 · 873 阅读 · 0 评论 -
python3 删除字典元素
Python不关心键-值对的添加顺序,而只关心键和值之间的关联关系。pop()删除给定健对应的值,如:dict.pop(key) ,key不能为空clear()清空字典内容,dict.clear()popitem()随机删除字典内容, dict.popitem()使用del语句删除字典的键-值对代码:fruits = { 'a': 'apple', 'b': 'ba...原创 2019-06-10 22:09:52 · 4118 阅读 · 0 评论 -
json dump load dumps loads的使用与区别
import json# 1.字符串和 dic list转换# 字符串(json)----dict listdata = '[{"name":"张三","age":20},{"name":"李四","age":18}]'list_data = json.loads(data)# dict list ---字符串list2 = [{"name": "张三", "age": 20},...原创 2019-05-12 16:12:54 · 160 阅读 · 0 评论 -
Python中+ 和 += 的区别
+= 不会创建新对象,+会创建新对象不能用+连接元组和列表>>> a = [1,2]>>> id(a)47952136>>> a += [3,4]>>> id(a)47952136 # 结果前后一致>>> a[1, 2, 3, 4]>>> b = [1,2]>&g...原创 2019-04-21 19:38:41 · 878 阅读 · 1 评论 -
通过公共键对字典列表排序
rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fname': 'David', 'lname': 'Beazley', 'uid': 1002}, {'fname': 'John', 'lname': 'Cleese', 'uid': 1001}, {'fname': 'Big', 'lname': 'J...原创 2018-12-31 15:46:34 · 282 阅读 · 3 评论 -
找出序列中出现次数最多的元素
from collections import Counterwords = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the', 'eyes', "don't",...原创 2018-12-31 15:33:24 · 716 阅读 · 0 评论 -
Python解决UnicodeDecodeError: 'utf-8' codec can't decode byte..问题解决方案
在解码decode里面增加忽略即可!decode("utf-8","ignore")原创 2019-01-04 15:14:21 · 6743 阅读 · 1 评论 -
Python自定义一个类实现字典dict功能
import collectionsclass Mydict(collections.UserDict): def __missing__(self, key): if isinstance(key, str): raise KeyError(key) return self[str(key)] def __con...原创 2018-12-01 11:33:53 · 7800 阅读 · 0 评论 -
Python随机生成指定长度字符串
In [7]: import os ...原创 2018-11-13 16:31:57 · 2113 阅读 · 0 评论 -
global与nonlocal
global是在函数内部声明变量为全局变量nonlocal是声明该变量不是当前函数的本地变量看如下例子:x=300def test1(): x =200 def test2(): #global x nonlocal x print(x) x=100 print(x) return te...原创 2018-10-09 10:00:49 · 211 阅读 · 0 评论 -
python中元类的作用
#-*- coding:utf-8 -*-def upper_attr(class_name, class_parents, class_attr): #遍历属性字典,把不是__开头的属性名字变为大写 new_attr = {} for name,value in class_attr.items(): if not name.startswith("_...原创 2018-10-14 14:45:42 · 615 阅读 · 0 评论 -
生成器的启动与唤醒
定义好一个生成器之后,需要怎么启动?怎么唤醒?def gen(): i = 0 while i < 5: temp = yield i print(temp) i += 1f=gen()f.send(122)上述代码运行,发现报错如下:Traceback (most recent call last...原创 2018-09-13 16:23:29 · 359 阅读 · 0 评论 -
python os 模块常用方法
常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。 os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。 os.getenv()和os.putenv:分别用来读取和设置环境变量 os.listdir():返回指定目录下的所有文...转载 2018-09-10 15:16:56 · 136 阅读 · 0 评论 -
Python之禅
Python之禅(The Zen of Python) The Zen of Python是Python语言的指导原则,遵循这些基本原则,你就可以像个Pythonista一样编程。具体内容你可以在Python命令行输入import this看到:The Zen of Python, by Tim Peters Beautiful is better than ugly. 优美胜于丑陋...翻译 2018-09-06 15:19:58 · 169 阅读 · 0 评论 -
python中可变数据类型和不可变数据类型
不可变类型数据:string integer tupleIn [2]: var1=1In [3]: var2=var1In [4]: var1,var2Out[4]: (1, 1)In [5]: id(var1),id(var2)#变量名虽然不一样,但是内存地址一样Out[5]: (10919424, 10919424)In [6]: var1+=1In [7]: v...原创 2018-07-31 09:18:05 · 764 阅读 · 0 评论 -
python 中的 ==
我们不管在学习哪种语言的时候,都会遇见==,它是验证等号两端的数据是否相等的符号,如果相等返回True,不相等就返回False。但是,我们在学习跑Python的过程中,不要总是认为成立就返回True,不成立就返回False。下面我来举个例子,刷新一下大家对==的认识。>>> a=1>>> b=2>>> a==bFalse>...原创 2018-07-22 18:33:24 · 611 阅读 · 0 评论 -
Python OSError: [Errno 99] Cannot assign requested address错误的解决
Python OSError: [Errno 99] Cannot assign requested address错误的解决 tcpOrder_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #强制允许端口复用tcpOrder_socket.setsockopt(sock...原创 2018-04-21 19:39:46 · 58217 阅读 · 3 评论 -
关于Python tcp通讯中端口复用的解决 [Errno 98] Address already in use
错误代码如下:tcpClient_socket.bind(locall_addr)OSError: [Errno 98] Address already in use出现这种错误的原因是:这是因为在TCP/IP终止连接的四次握手中,当最后的ACK回复发出后,有个2MSL的时间等待,MSL指一个片段在网络中最大的存活时间,这个时间一般是30秒,所以基本上过60秒后就可以重新连接!...原创 2018-04-20 22:38:08 · 2547 阅读 · 0 评论 -
python中面对对象 封装 继承 多态的理解
python中面对对象 封装 继承 多态的理解封装:封装就是把对象的属性和行为结合成一个独立的整体,把内部的实现细节隐藏起来,不能被外界所看见,调用的人只能执行,而看不到实现的细节,保证了代码的安全性继承:从已有类中派生出新的实例对象,子类继承父类的属性和方法,并且自己可以拓展出自己独有的属性和方法。保证了代码的复用率多态:指的是不同的对象对相同的属性或...原创 2018-05-02 11:16:07 · 642 阅读 · 0 评论 -
python之UDP 通讯
网络使用网络能够把多方链接在一起,然后可以进行数据传递所谓的网络编程就是 让在不同的电脑上的软件能够进行数据传递,即进程间的通讯ipip地址用来标记一台电脑 每个ip包括 网络地址和主机地址查看或配置网卡信息 ifconfigifconfig 可以在终端下查看自己网卡信息使用sudo ifconfig 网卡名 目标ip地址 可以修改现有ip地址测试远程主机连通性 pingping +ip地址或...原创 2018-04-19 19:05:25 · 686 阅读 · 0 评论 -
全局变量在函数内部的修改
全局变量在函数内部的修改接下来,先看两个例子:例子一:g_num = 0def test1(): global g_num g_num += 10 print("test1后 g_num为:%d" % g_num)def test2(): g_num = 0 g_num += 20 prin...原创 2018-04-23 09:13:24 · 15552 阅读 · 0 评论 -
Python if语句 for语句 while循环的练习
第六天 Python if语句 for语句 while循环的练习练习一: 考试成绩的问题:提示用户输入成绩,判断是属于哪个水平,将结果打印到控制台。60以下不及格,60分以上为及格,70分至80分为合格,80分至90分为良好,90分以上为优秀。 例如:请输入考试成绩:85你的成绩是 85 ,成绩良好。score = int( input( "...原创 2018-03-28 21:05:20 · 1803 阅读 · 0 评论 -
Python中 if语句的使用及练习
第五天 if语句的使用及练习1.if基本使用if 今天发工资: 先还信用卡的钱 if 有剩余: 又可以happy了 else: 噢,noelse: 盼着发工资我们可以把整个 if 语句看成一个完整的代码块练习:需求定义一个整数变量记录年龄判断是否满 18 岁 (>=)...原创 2018-03-27 19:01:14 · 2599 阅读 · 0 评论 -
Python基础知识及概念
第四天 Python基础知识及概念1. 注释单行注释#这是一个单行注释 · 在程序开发时,同样可以使用 # 在代码的后面(旁边)增加说明性的文字· 但是,需要注意的是,为了保证代码的可读性,注释和代码之间 至少要有 两个空格· 示例代码如下:print("hello python") # 输出 ...原创 2018-03-26 21:09:59 · 13281 阅读 · 1 评论 -
Python学习随笔
1.python中 变量不支持自增自减2.id(变量) 此函数查看变量的ID地址3.查看一个变量有多少人在使用的方法import syssys.getrefcount(value)会返回一个数量4.Python中的除法,不管有无浮点数,结果都会返回一个浮点数5.除法结果只会像复杂结构靠近6.round(7/2) 结果四舍五入得4 round(10/3,2)四舍五入并且保留两位小数7. a=1 ...原创 2018-03-26 18:08:43 · 232 阅读 · 0 评论