有人曾说,未来只有2种人,会Python的人和....不懂Python的小学生,虽有夸张,这也意味着Python越来越重要了,究竟这门语言厉害在哪里?以下为你总结了Python3宗“罪”!Python凭啥这么优秀?作为一个计算机初级爱好者,据笔者这些年敲过的代码所反馈(是的,我的代码是有灵魂的),他们还是比较喜欢Python,因为Python干净利索,简单直接。Python代码简洁易懂,同样的内容按照代码量计算,C++:Java:Python=1000:1
系统 2019-09-27 17:48:26 1810
一数据结构和GIL1queue标准库queue模块,提供FIFO的queue、LIFO的队列,优先队列Queue类是线程安全的,适用于多线程间安全的交换数据,内部使用了Lock和Condition为什么说容器的大小不准确,其原因是如果不加锁,是不可能获取到准确的大小的,因为你刚读取了一个大小,还没取走,有可能被就被其他线程修改了,queue类的size虽然加了锁,但是依然不能保证立即get,put就能成功,因为读取大小和get,put方法是分来的。2GIL
系统 2019-09-27 17:48:10 1810
在python中的数据类型和控制流这篇文章中我们提到过列表,它是基本的数据类型之一。通俗来说,它就是用来存储一系列数据的。比如存储一个班级的学生。列表中的每个元素可以通过下标(索引)访问,索引从0开始。既然列表存储的是一系列值,这必然存在「增删改查」的情况,就像一个班级的学生,有进入学的,也有退学的。接下来我们来说说,首先我们先从列表的创建开始。创建列表list=[ele1,ele2,elem3,...,elen]比如,创建一个数字列表或英文字符列表num
系统 2019-09-27 17:48:06 1810
Python虽然语法简单,通俗易懂,但是再简单它也是一门语言,就像一棵大树,总有一些树枝是弯弯绕绕的,让新手看完之后一脸懵逼,今天我们就来说说这几个点,反正我学的时候是很困惑的!01.函数里面的*args1).可变参数这个是什么鬼,尤其是有其他c,c++语言基础的人,看到这个点,一定懵逼了,难道是指针,两个**又是什么鬼?其实这个Python里面的函数入参的几种形式,假如你来设计一个语言,一个函数fun(),里面要传参数进来,要考虑扩展性:变量会有很多种形
系统 2019-09-27 17:47:45 1810
sqrt()方法返回x的平方根(x>0)。语法以下是sqrt()方法的语法:importmathmath.sqrt(x)注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数。参数x--这是一个数值表达式。返回值此方法返回x的平方根,对于x>0。例子下面的例子显示了sqrt()方法的使用。#!/usr/bin/pythonimportmath#Thiswillimportmathmoduleprint"mat
系统 2019-09-27 17:47:36 1810
1.手动制作python的exe可执行程序Python没有内建一个编译为exe的功能。给python程序的部署带来不少的麻烦。所以就会出现一些py2exe之类的很不错的工具,用于自动把.py文件编译为.exe文件。最近抽空研究了一下手动实现类似py2exe的功能,希望加强对python的了解。结果还相当不错。把结果记录下来,与大家共享。1.1.原理文中所描述的方法,基于python的以下几个功能1)python程序运行时,会在sys.path指定的路径中查
系统 2019-09-27 17:47:34 1810
匿名管道管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端.os.pipe()返回2个文件描述符(r,w),表示可读的和可写的.示例代码如下:复制代码代码如下:#!/usr/bin/pythonimporttimeimportosdefchild(wpipe):print('hellofromchild',os.getpid())whileTrue:msg='howa
系统 2019-09-27 17:47:08 1810
在这里主要讨论的是while循环,for循环通过迭代对象退出。由于while循环通常不知道循环的次数,所以对于while循环,它的几种应用场景导致退出条件设置的不同。一、让用户选择何时退出:定义退出变量可使用while循环让程序在用户在愿意的时不断运行,在其中定义一个退出值,只要用户输入的不是这个,程序就接着运行。我们小时候玩游戏的经常会遇到,当人物死亡的时候,界面会跳出重新开始游戏or结束游戏,结束游戏就相当于我们设置的退出值。形式如下:active=T
系统 2019-09-27 17:46:45 1810
测试代码如下:复制代码代码如下:classModelMetaClass(type):def__new__(cls,name,base,attrs):logging.info("clsis:"+str(cls))logging.info("nameis:"+str(name))logging.info("baseis:"+str(base))logging.info("attrsis:"+str(attrs))returntype.__new__(cls,n
系统 2019-09-27 17:45:40 1810
不管顺序的去重转为set即可1.将序列中重复元素去除,并保持顺序#如果序列items中的值是可哈希的defdedupe(items):seen=set()foriteminitems:ifitemnotinseen:yielditemseen.add(item)>>>a=[1,5,2,1,9,1,5,10]>>>list(dedupe(a))[1,5,2,9,10]写成函数形式是使程序更通用,如读文件去除重复行:withopen(somefile,'r')
系统 2019-09-27 17:45:26 1810