Python
一人在山旁
这个作者很懒,什么都没留下…
展开
-
Python输入输出
输出1. 普通的输出 # 打印提示 print('hello world') print('给我的卡---印度语,你好的意思')2. 格式化输出2.1 格式化操作的目的比如有以下代码: pirnt("我今年10岁") pirnt("我今年11岁") pirnt("我今年12岁") ...2.2 什么是格式化...原创 2018-12-27 15:34:08 · 129 阅读 · 0 评论 -
Python迭代器
迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。1. 可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的...原创 2019-02-18 11:08:29 · 66 阅读 · 0 评论 -
Python生成器
1. 什么是生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Pyt...原创 2019-02-18 10:55:33 · 69 阅读 · 0 评论 -
Python的基本编码规范
编码风格错误认知这很浪费时间 我是个艺术家 所有人都能穿的鞋不会合任何人的脚 我善长制定编码规范正确认知促进团队合作 减少bug处理 提高可读性,降低维护成本 有助于代码审查 养成习惯,有助于程序员自身的成长pep8 编码规范Python Enhancement Proposals :python改进方案https://www.python.org/dev/p...转载 2019-02-22 15:32:43 · 92 阅读 · 0 评论 -
pdb调试
pdbpdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。命令 简写命令 作用 break b 设置断点 continue c 继续执行程序 list l 查看当前行的代码段 step s 进入函数 return r 执行代码直到从当前函数返回 quit q 中止...原创 2019-02-22 15:29:57 · 224 阅读 · 0 评论 -
Python常用模块
Python有一套很有用的标准库(standard library)。标准库会随着Python解释器,一起安装在你的电脑中的。 它是Python的一个组成部分。这些标准库是Python为你准备好的利器,可以让编程事半功倍。常用标准库标准库 说明 builtins 内建函数默认加载 os 操作系统接口 sys Python自身的运行环境 functoo...原创 2019-02-22 15:24:56 · 88 阅读 · 0 评论 -
Python的内建属性和内建函数
python3.5中类的内建属性和方法 经典类(旧式类),早期如果没有要继承的父类,继承里空着不写的类#py2中无继承父类,称之经典类,py3中已默认继承objectclass Person: pass子类没有实现__init__方法时,默认自动调用父类的。 如定义__init__方法时,需自己手动调用父类的__init__方法常用专有属性 说明 ...原创 2019-02-22 15:18:58 · 314 阅读 · 0 评论 -
Python的gc模块
一.垃圾回收机制Python中的垃圾回收是以引用计数为主,分代收集为辅。1、导致引用计数+1的情况对象被创建,例如a=23 对象被引用,例如b=a 对象被作为参数,传入到一个函数中,例如func(a) 对象作为一个元素,存储在容器中,例如list1=[a,a]2、导致引用计数-1的情况对象的别名被显式销毁,例如del a 对象的别名被赋予新的对象,例如a=24 一个对象...原创 2019-02-22 15:14:50 · 14558 阅读 · 0 评论 -
Python的垃圾回收机制
1. Garbage collection(GC垃圾回收)现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。 对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,自然不会让用户去处理如何分配回收内存的问题。 python里也同ja...原创 2019-02-22 15:12:13 · 4142 阅读 · 0 评论 -
Python的闭包
1. 函数引用def test1(): print("--- in test1 func----")#调用函数test1()#引用函数ret = test1print(id(ret))print(id(test1))#通过引用调用函数ret()运行结果:--- in test1 func----1402125711490401402125711...原创 2019-02-18 11:18:10 · 76 阅读 · 0 评论 -
Python装饰器
装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python面试中必问的问题,但对于好多初次接触这个知识的人来讲,这个功能有点绕,自学时直接绕过去了,然后面试问到了就挂了,因为装饰器是程序开发的基础知识,这个都不会,别跟人家说你会Python, 看了下面的文章,保证你学会装饰器。个人理解:装饰器的存在很大程度是为了满足程序开发过程中的封闭开放原则。封闭:...原创 2019-02-18 11:26:43 · 82 阅读 · 0 评论 -
python与MySQL的交互
要想和MySQL数据库交互,首先需要安装数据库驱动模块,python2和python3的数据库驱动是不同的。python2中的数据库模块是MysqLdb,可以通过以下命令安装sudo apt-get install python-mysql在文件中引入模块import MySQLdbpython3中模块名为PyMySQL,我用pip3安装的sudo pip3 ins...原创 2019-03-19 20:22:07 · 129 阅读 · 0 评论 -
同步、互斥锁、死锁、异步
同步的概念1. 多线程开发可能遇到的问题假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改10次,num的最终的结果应该为20。但是由于是多线程访问,有可能出现下面情况:在num=0时,t1取得num=0。此时系统把t1调度为”sleeping”状态,把t2转换为”running”状态,t2也获得num=0。然后t2对得到的值进行加1并赋给num,使得n...原创 2019-02-25 17:21:00 · 640 阅读 · 0 评论 -
Python多任务——线程
多线程-threadingpython的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用1. 使用threading模块单线程执行#coding=utf-8import timedef saySorry(): print("亲爱的,我错了,我能吃饭了吗?") time.sleep(1)...原创 2019-02-25 12:03:09 · 184 阅读 · 0 评论 -
进程间通信——Queue
进程间通信-QueueProcess之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。1. Queue的使用可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:#coding=utf-8from multiprocessing import Queueq=...原创 2019-02-24 18:05:23 · 131 阅读 · 0 评论 -
Python多任务——进程池
进程池Pool当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进...原创 2019-02-24 15:39:32 · 11488 阅读 · 4 评论 -
Python多任务——进程
进程的创建-fork1. 进程 VS 程序编写完毕的代码,在没有运行的时候,称之为程序正在运行着的代码,就成为进程进程,除了包含代码以外,还有需要运行的环境等,所以和程序是有区别的2. fork( )Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程: import os # 注意,fork函数,只在...原创 2019-02-24 10:48:16 · 146 阅读 · 0 评论 -
Python的小整数对象池
1. 小整数对象池整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,所有位于这个范围内的整数使用的都是同一个对象.同理,单个字母也是这样的。但是当定义2个相同的字符串时,引用计数为0,触发垃圾回收...原创 2019-02-18 11:36:32 · 596 阅读 · 0 评论 -
Python ' ~ ' (取反) 操作符解释
首先你要明白的几个知识点: (1)在计算机里面,负数是以补码存储的 (2)原码求补码:取反,+1 (3)补码求原码:取反,+1 (4)取反操作是在原码上进行的!实际的计算结果: ~4 = -5, ~-5 = 4依据上述第四条,我们的解释思路是,确定原码===> 取反 (1) 求~4, 我们用八进制来表示4: 4的原码: 0000 0100 取反得到: 1111 1011...转载 2019-01-22 19:41:06 · 9651 阅读 · 2 评论 -
Pyhton——动态语言
python是动态语言1. 动态语言的定义动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类 在运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。例如JavaScript便是一个动态语言,除此之外如 PHP 、 Ruby 、 Python 等也都属于动态语言,而 C ...原创 2019-01-25 17:08:18 · 203 阅读 · 0 评论 -
Python类的self
所谓的self,可以理解为自己 可以把self当做C++中类里面的this指针一样理解,就是对象自身的意思 某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可...原创 2019-01-18 14:42:46 · 86 阅读 · 0 评论 -
Python类的魔法方法
"魔法"方法1. 打印id()如果把BMW使用print进行输出的话,会看到如下的信息即看到的是创建出来的BMW对象在内存中的地址2. 定义__str__()方法class Car: def __init__(self, newWheelNum, newColor): self.wheelNum = newWheelNum sel...转载 2019-01-18 14:40:42 · 366 阅读 · 0 评论 -
Python文件操作
<1>打开文件在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式)示例如下: f = open('test.txt', 'w')说明:访问模式 说明 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 w 打开一个文件只用于写入。如果该文件已存在则将其...转载 2019-01-18 13:52:36 · 130 阅读 · 0 评论 -
Python字典排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:1 下面的是按照value的值从大到小的顺序来排序。dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}dict= sorted(dic.items(), key=lambda d:...转载 2019-01-17 16:59:21 · 127 阅读 · 0 评论 -
字典基本操作
字典的常见操作1<1>修改元素字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改demo: info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'} newId = input('请输入新的学号') info['id'] = int(newId) p...原创 2019-01-17 15:56:58 · 130 阅读 · 0 评论 -
列表基本操作
列表的相关操作列表中存放的数据是可以进行修改的,比如"增"、"删"、"改""<1>添加元素("增"append, extend, insert)append通过append可以向列表添加元素demo: #定义变量A,默认有3个元素 A = ['xiaoWang','xiaoZhang','xiaoHua'] print("-----原创 2019-01-17 14:00:48 · 148 阅读 · 0 评论 -
字符串处理的基本方法
字符串基本方法如有字符串mystr = 'hello world itcast and itcastcpp',以下是常见的操作<1>find检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1mystr.find(str, start=0, end=len(mystr))<2>index跟find()方法一样,只不过如果s...原创 2019-01-17 13:47:52 · 548 阅读 · 0 评论 -
字符串切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。切片的语法:[起始:结束:步长]注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。我们以字符串为例讲解。如果取出一部分,则可以在中括号[]中,使用: name = 'abcdef' print(name[0:3]) # 取 下标0~...原创 2019-01-13 17:55:40 · 7730 阅读 · 0 评论 -
用Python实现反转字符串
1.切片方法def fun(s): return s[::-1]print(fun('abcdef'))2.reduce函数def fun(s): return reduce(lambda x,y:y+x,s)print(fun('abcdef'))在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 functools 模块里...原创 2019-01-13 18:28:35 · 494 阅读 · 0 评论 -
Python的元类
元类1. 类也是对象在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(object):… pass…>>> my_object = ObjectCreator()>>> print my_object<__ma...转载 2019-01-25 17:01:55 · 94 阅读 · 1 评论 -
Python私有化与poperty方法
1.私有化xx: 公有变量 _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字 xx_:单后置下划线,用于避...原创 2019-01-25 12:08:59 · 398 阅读 · 0 评论 -
深拷贝、浅拷贝
1.id()查看变量地址a = 'asdfasdf'id(a)2.'=='和‘is’ ‘==’是用来判断值相等(值比较) ‘is’用来判断变量地址是否相等(引用比较) ps:Python是一个彻底的面向对象的语言,Python的变量都是以Object形式存在的。Python似乎有一个类似于Java的对象池,为了追求效率,Java会维护对象池,对整数来说,Jav...原创 2019-01-25 12:05:38 · 88 阅读 · 0 评论 -
python作用域——LEGB规则
LEGB 规则Python 使用 LEGB 的顺序来查找一个符号对应的对象locals -> enclosing function -> globals -> builtinslocals,当前所在命名空间(如函数、模块),函数的参数也属于命名空间内的变量 enclosing,外部嵌套函数的命名空间(闭包中常见) def fun1(): a = 10 ...原创 2019-01-25 10:43:10 · 284 阅读 · 0 评论 -
import导入模块
1. import 搜索路径import syssys.path路径搜索从上面列出的目录里依次查找要导入的模块文件 ' ' 表示当前路径程序执行时导入模块路径sys.path.append('/home/itcast/xxx')sys.path.insert(0, '/home/itcast/xxx') #可以确保先搜索这个路径 2. 重新导入模块模块...原创 2019-01-25 10:34:12 · 253 阅读 · 0 评论 -
列表推导式
列表推导式所谓的列表推导式,就是指的轻量级循环创建列表1. 使用[ ]生成list基本格式:[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 2. 在循环的过程中使用if 3. 3个for循环 练习1.生成一个[[1,2,3],[4,5,6]....]的列表最大值在100以内a = [[x,x+1,x...原创 2019-01-18 18:04:00 · 119 阅读 · 1 评论 -
捕获异常
<1>捕获异常 try...except...看如下示例:try: print('-----test--1---') open('123.txt','r') print('-----test--2---')except IOError: pass说明:此程序看不到任何错误,因为用except 捕获到了IOError异常,并添加了处理...原创 2019-01-18 16:56:53 · 243 阅读 · 0 评论 -
Python类方法和静态方法
转载:https://www.cnblogs.com/pinking/p/7944376.html https://www.cnblogs.com/wcwnina/p/8644892.html转载 2019-01-18 15:59:52 · 77 阅读 · 0 评论 -
MongoDB与python交互
与python交互点击查看官方文档 安装python包进入虚拟环境sudo pip install pymongo或源码安装python setup.py引入包pymongoimport pymongo连接,创建客户端client=pymongo.MongoClient("localhost", 27017)获得数据库test1db=client.te...原创 2019-03-23 14:59:28 · 168 阅读 · 0 评论