摘要:
可以尝试从以下几个方面来谈: (1).Python是一种解释型语言,python代码在运行之前不要编译。Python解释器会将源代码转换成中间语言,之后再翻译成机器码再执行。 (2).Python是动态类型语言,在声明变量时,不需要说明变量的类型。 (3).Python适合面向对象的编程,因为它支持
阅读全文
posted @ 2018-10-14 10:01
阿波罗Apollo
阅读(475)
推荐(0)
摘要:
PEP-8是一种编程规范。 作为一名python程序员一定要知道这个规范,因为缩进是python的一大特点,对于每一个段落(level)的缩进,pep-8给出的规范是4 spaces。有的编辑器默认是8 spaces的,建议修改一下。 其主要内容包括代码编排、文档编排、空格的使用、注释、文档描述、命
阅读全文
posted @ 2018-10-14 09:59
阿波罗Apollo
阅读(1555)
推荐(0)
摘要:
在文件中,字符串可以很方便的读取写入,数字可能稍微麻烦一些,因为read()方法只返回字符串,我们还需要将其传给int()这样的函数,使其将如"1994"的字符串转为数字1945.但是,如果要半寸更复杂的数据类型,如列表,字典,或者类的实例,那么就会更复杂了。 为了让用户在平常的编程和测试时保存复杂
阅读全文
posted @ 2018-10-14 09:58
阿波罗Apollo
阅读(1259)
推荐(0)
摘要:
Python的内存管理是由私有head空间管理的。所有的python对象和数据结构都在一个私有heap中。程序员没有该、访问该heap的权限,只有解释器才能对它进行操作。 为python的heap空间分配内存是由python内存管理模块进行的,其核心API会提供一些访问该模块的方法拱程序员使用。 P
阅读全文
posted @ 2018-10-14 09:57
阿波罗Apollo
阅读(193)
推荐(0)
摘要:
Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。 (
阅读全文
posted @ 2018-10-14 09:56
阿波罗Apollo
阅读(186)
推荐(0)
摘要:
PyChecker是一个静态分析工具,它不仅能报告源代码中的错误,并且会报告错误类型和复杂度。 Pylint是检验模块是否达到代码标准的另一个工具。
阅读全文
posted @ 2018-10-14 09:55
阿波罗Apollo
阅读(1155)
推荐(0)
摘要:
Python装饰器是python中特有变动,可以使修改函数变得更容易。 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,比较经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。 概括的讲,装饰
阅读全文
posted @ 2018-10-14 09:53
阿波罗Apollo
阅读(566)
推荐(0)
摘要:
区别: 数组内容是可以被修改的,而元组内容是只读的。另外,元组可以被哈希,比如作为字典的关键字。 数组在python中叫做列表。列表可以修改,如果元组中仅有一个元素,则要在元素后加上逗号。元组和列表的查询方式一样。元组只可读不可修改,如果程序中的数据不允许修改可用元组。
阅读全文
posted @ 2018-10-14 09:50
阿波罗Apollo
阅读(3517)
推荐(0)
摘要:
在Python中,所有的名字都存在一个空间中,它们在该空间中存在和被操作——这就是命名空间。它就像一个盒子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面找到相应的对象。 【定义】 名称到对象的映射。命名空间是一个字典的实现,键为变量名,值是变量对应的值。各个命名空间是独立没有关
阅读全文
posted @ 2018-10-14 09:48
阿波罗Apollo
阅读(1575)
推荐(0)
摘要:
它们是可以轻松创建字典和列表的语法结构。 由输出项,列表项,过滤项组成,过滤项为bool值可省略 [expr for itm in collection if condition] 列表常规推导 lst = [11,22,33,44] result = [i for i in range(10) i
阅读全文
posted @ 2018-10-14 09:46
阿波罗Apollo
阅读(1197)
推荐(0)
摘要:
ython自带的数据结构可分为可变和不可变的。 可变的有:数组、集合、字典; 不可变的有:字符串、元组、数。
阅读全文
posted @ 2018-10-14 09:30
阿波罗Apollo
阅读(1084)
推荐(0)
摘要:
在python3中如果使用reduce需要先导入 from functools import reduce reduce函数,reduce函数会对参数序列中元素进行累积。 reduce函数的定义:reduce(function, sequence [, initial] ) -> valuefunc
阅读全文
posted @ 2018-10-14 09:28
阿波罗Apollo
阅读(26773)
推荐(2)
摘要:
这是一个被用于代码中的单个表达式的匿名函数。
阅读全文
posted @ 2018-10-14 09:04
阿波罗Apollo
阅读(753)
推荐(0)
摘要:
Python中的一切都是类,所有的变量都是一个对象的引用。引用的值是由函数确定的,因此无法改变。但是如果一个对象是可以被修改的,你可以改动对象。 传值: 简单来说,你在内存中有一个地址,我也有一个地址,我把我的地址里面的内容复制给你,以后你做什么就跟我没关系,不会改变原来的参数的内容。 传引用: 所
阅读全文
posted @ 2018-10-14 09:02
阿波罗Apollo
阅读(429)
推荐(0)
摘要:
匿名函数lambda没有语句的原因是它被用于在代码执行的时候构建新的函数对象并且返回。
阅读全文
posted @ 2018-10-14 09:02
阿波罗Apollo
阅读(251)
推荐(0)
摘要:
如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传递参数时要用 * args;如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用 ** kwargs。 注意: * args和 ** kwargs可以同时在函数的定义中,但是 * a
阅读全文
posted @ 2018-10-14 09:01
阿波罗Apollo
阅读(269)
推荐(0)
摘要:
pass是一个在Python中不会被执行的语句。在复杂语句中,如果一个地方需要暂时被留白,它常常被用于占位符。
阅读全文
posted @ 2018-10-14 08:49
阿波罗Apollo
阅读(4126)
推荐(0)
摘要:
构造器是实现迭代的一种机制。它功能的实现依赖于yield表达式,除此之外它跟普通的函数没有什么两样。
阅读全文
posted @ 2018-10-14 08:47
阿波罗Apollo
阅读(162)
推荐(0)
摘要:
在Python中,unittest是Python的单元测试框架。它拥有支持共享搭建、自动测试、在测试中暂停代码、将不同测试迭代成一组,等功能。
阅读全文
posted @ 2018-10-14 08:47
阿波罗Apollo
阅读(512)
推荐(0)
摘要:
Slicing是一种在有序的对象类型中(数组,元组,字符串)节选某一段的语法。 下面的代码都是在cmd命令行演示的:
阅读全文
posted @ 2018-10-14 08:22
阿波罗Apollo
阅读(600)
推荐(0)
摘要:
如果在python中拷贝对象,大多数时候你可以用copy.copy()或者copy.deepcopy()。但是并不是所有的对象都可以被拷贝。
阅读全文
posted @ 2018-10-14 08:12
阿波罗Apollo
阅读(234)
推荐(0)
摘要:
Python中文档字符串被称为docstring,它在Python中的作用是为函数、模块和类注释生成文档。
阅读全文
posted @ 2018-10-14 08:12
阿波罗Apollo
阅读(360)
推荐(0)
摘要:
Python中的序列索引可以是正也可以是负。 如果是正索引,0是序列中的第一个索引,1是第二个索引。 如果是负索引,-1是最后一个索引,-2是倒数第二个索引。 >>> lst=[11,22,33,44,55] 全取列表>>> lst[:][11, 22, 33, 44, 55] 这样取不到最后一个>
阅读全文
posted @ 2018-10-14 08:11
阿波罗Apollo
阅读(1507)
推荐(0)
摘要:
可以使用自带函数str()将一个数字转换成字符串。如果想要八进制或十六进制数或二进制,可以使用oct()或hex()或bin()。 >>> num=88>>> str(num)'88'>>> oct(num)'0o130'>>> hex(num)'0x58'>>> bin(num)'0b101100
阅读全文
posted @ 2018-10-14 08:06
阿波罗Apollo
阅读(5706)
推荐(0)
摘要:
xrange用于返回xrange对象,而range用于返回一个数组。不管那个范围多大,xrange都使用同样的内存。 注意:python3中没有xrange。 python3中演示: >>> range(10)range(0, 10) >>> type(range(10))<class 'range
阅读全文
posted @ 2018-10-14 08:04
阿波罗Apollo
阅读(380)
推荐(0)
摘要:
在Python中,模块是搭建程序的一种方式。每一个Python代码文件都是一个模块,并可引用其他的模块,比如对象和属性。 一个包包含许多Python代码的文件夹是一个包。一个包可以包含模块和子文件夹。
阅读全文
posted @ 2018-10-14 08:02
阿波罗Apollo
阅读(772)
推荐(0)
摘要:
CSRF是伪造客户端请求的一种攻击,CSRF的英文全称是Cross Site Request Forgery,字面意思是跨站点伪造请求。
阅读全文
posted @ 2018-10-14 08:01
阿波罗Apollo
阅读(968)
推荐(0)
摘要:
使用函数os.remove("file") 还有shutil模块
阅读全文
posted @ 2018-10-14 08:00
阿波罗Apollo
阅读(640)
推荐(0)
摘要:
在Python中用于生成随机数的模块是random,在使用前需要import。 举例: random.random():生成一个0-1之间的随机浮点数 random.randint(a,b):生成[a,b]之间的整数,包含a,b random.uniform(a,b):生成[a,b]之间的浮点数 r
阅读全文
posted @ 2018-10-14 07:59
阿波罗Apollo
阅读(4222)
推荐(1)
摘要:
如果要给全局变量在一个函数里赋值,必须使用global语句。global VarName的表达式会告诉Python,VarName是一个全局变量,这样Python就不会在局部命名空间里寻找这个变量了。 下面这个代码只有调用了函数,在打印才有效,否则没结果
阅读全文
posted @ 2018-10-14 07:53
阿波罗Apollo
阅读(4845)
推荐(0)
摘要:
单例模式主要有四种方法:new、共享属性、装饰器、import。 其他23中设计模式基本分为创建型、结构型和行为型模式。 创建模式,提供实例化的方法,为适合的状况提供相应的对象创建方法。 结构化模式,通常用来处理实体之间的关系,使得这些实体能够更好地协同工作。 行为模式,用于在不同的实体间建立通信,
阅读全文
posted @ 2018-10-14 07:45
阿波罗Apollo
阅读(149)
推荐(0)
摘要:
ython中,一个变量的作用域总是由代码中被赋值的地方决定的。 当Python遇到一个变量的话他会按照这样的顺序搜索: 本地作用域(Local)→当前作用域被嵌入的本地作用域(Enclosing locals)→全局/模块作用域(Global)→内置作用域(Built-in) ython中,一个变量
阅读全文
posted @ 2018-10-14 07:29
阿波罗Apollo
阅读(156)
推荐(0)
摘要:
线程全局锁(Global Interperter Lock),即Python为了保证线程安全而采用的独立线程运行的限制,说白了就是一个核只能在同一时刻运行一个线程。解决办法就是多进程和协程(协程也只是单CPU,但是能减小切换代价提升性能)。
阅读全文
posted @ 2018-10-14 07:28
阿波罗Apollo
阅读(289)
推荐(0)
摘要:
简单点说协程是进程和线程的升级版,进程和线程都面临着内核态和用户态的切换问题而耗费许多切换时间,而协程就是用户自己控制切换的时机,不需要再陷入系统的内核态。
阅读全文
posted @ 2018-10-14 07:26
阿波罗Apollo
阅读(213)
推荐(0)
摘要:
进程:能够完成多个任务,一般而言,一个进程就是一个独立的软件,如我们在电脑上运行了多个QQ。 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
阅读全文
posted @ 2018-10-14 07:25
阿波罗Apollo
阅读(741)
推荐(0)
摘要:
线程:能够完成多个任务,一半而言,一个进程至少存在一个线程或多个线程,如打开网页,启动多个页面选项卡。 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个
阅读全文
posted @ 2018-10-14 07:24
阿波罗Apollo
阅读(358)
推荐(0)
摘要:
1. 一个程序中至少有一个进程,一个进程中至少有一个线程;2. 线程的划分尺度小于进程(占有资源),使得多线程程序的并发性高;3. 进程运行过程中拥有独立的内存空间,而线程之间共享内存,从而极大的提高了程序的运行效率4.线程不能独立运行,必须存在于进程中优缺点:线程开销小,但是不利于资源的管理和保护
阅读全文
posted @ 2018-10-14 07:22
阿波罗Apollo
阅读(1150)
推荐(0)
摘要:
Python2中支持多线程编程的模块有两个thread / threading, 但是官方已经不建议使用thread模块.Python3中取消了thread模块, 只有threading模块, 所以我们使用threading模块来学习多线程编程.
阅读全文
posted @ 2018-10-14 07:19
阿波罗Apollo
阅读(120)
推荐(0)