
自学Python
不见长安啊
这个作者很懒,什么都没留下…
展开
-
自学Python--小知识点总结及编码
python2有 xrange(),生成器 id()打印内存地址,is 比较内存地址对于数字和字符串,小数据时(-5~256) 为了节省内存,同一个数字会使用同一个内存地址a = 'a'b = aprint(id(a)) # 2061289328288print(id(b)) # 2061289328288print(a is b) # True 编码:asc...原创 2018-08-26 15:01:29 · 114 阅读 · 0 评论 -
自学Python--常用模块之sys模块
sys.argv 命令行参数List,第一个元素是程序本身路径sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)sys.version 获取Python解释程序的版本信息sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值sys.platform ...原创 2018-09-09 22:52:52 · 166 阅读 · 0 评论 -
自学Python--常用模块之os模块
os.makedirs('dirname1/dirname2') 可生成多层递归目录os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirnameos.rmdir('dirname') 删除单级空目录,若目录不为空...原创 2018-09-09 22:51:17 · 142 阅读 · 0 评论 -
自学Python--常用模块之random模块
random模块:随机数随机小数:(0,1)random.random()随机整数:import randomprint(random.randint(1, 9)) # 大于等于1且小于9的整数print(random.randrange(1, 9, 2)) # 大于等于1且小于9的奇数 随机返回一个或多个:import randomprint(random....原创 2018-09-09 22:49:20 · 591 阅读 · 0 评论 -
自学Python--常用模块之time模块
time模块:时间戳(电脑)、格式化字符串(人)、时间元组(计算)import timeprint(time.time()) # 1536500505.9982672 时间戳print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2018-09-09 21:50:16s = time.localtime() # 结构化时间# time.stru...原创 2018-09-09 22:28:21 · 168 阅读 · 0 评论 -
自学Python--常用模块之collections模块
堆栈:先进后出队列:先进先出 namedtuple:命名元组一个点的二维坐标可以表示为:p = (1, 2)from collections import namedtuplePoint = namedtuple('point', ['x', 'y', 'z'])p = Point(1, 2, 3)print(p) # point(x=1, y=2, z=3)pr...原创 2018-09-09 21:10:02 · 308 阅读 · 0 评论 -
自学Python--正则表达式
re模块:《正则指引》python语言正则原创 2018-09-09 20:42:37 · 172 阅读 · 0 评论 -
自学Python--二分法
二分法查找:必须有序列表递归返回None的问题:由于递归函数是一层一层执行到结束条件后再原路返回,下面结束条件时有return,但是返回的时候前面几次递归时并没有return,比如递归顺序为f1-》f2-》f3,在f3的时候返回结果,但是f1和f2没有返回,所以整个函数返回Nonedef finx_x(l, x): mid_index = len(l) // 2 if l...原创 2018-09-09 20:15:03 · 174 阅读 · 0 评论 -
自学Python--各种推导式
列表推导式:找出names中含有两个相同字符的字符串:# 找出names中含有两个相同字符的字符串names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva', ...原创 2018-09-03 22:02:26 · 632 阅读 · 0 评论 -
自学Python--面向对象之接口类和抽象类
接口类:python原生不支持,因为可以多继承接口类默认多继承,所有的方法都必须不能实现(直接pass)------源于java接口隔离原则:使用多个专门的接口而不使用单一的总接口,即客户端不应该依赖那些不需要的接口抽象类:python原生支持抽象类默认不支持多继承,可以实现部分方法 ------源于java一般情况下单继承能实现的功能都是一样的,所以能在父类中写一些简单的实现...原创 2018-09-12 23:02:56 · 340 阅读 · 0 评论 -
自学Python--面向对象之多态
在强类型语言中,多态用于解决接收不同数据类型,是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作现实中,比如我们按下 F1 键这个动作:如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对...原创 2018-09-12 23:19:45 · 202 阅读 · 0 评论 -
自学Python--类内置方法
两个系统内置方法:isinstance、issubclassclass A(object): passclass B(A): passa = A()print(isinstance(a, A)) # True a是否是A的实例化对象print(issubclass(B, A)) # True B是否是A的子类 双下划线方法:__str__和__rep...原创 2018-09-13 22:44:37 · 159 阅读 · 0 评论 -
自学Python--反射
反射:多用于网络编程反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动! hasattr和getattr:class Info: infos = {'teachers':'teachers infos', 'students':'students i...原创 2018-09-13 21:27:44 · 166 阅读 · 0 评论 -
自学Python--面向对象之静态方法和类方法
静态方法:staticmethod,不需要实例化的方法,class Login(object): @staticmethod def login(username, password): print(username, password)Login.login('test','123456') # test 123456 类方法:classme...原创 2018-09-13 21:04:15 · 165 阅读 · 0 评论 -
自学Python--网络编程之socket套接字
概念:Socket是应用层与TCP/IP协议族通信的中间软件抽象层。它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们...原创 2018-09-24 00:31:16 · 228 阅读 · 0 评论 -
自学Python--网络编程之TCP与UDP协议
全双工:双方都可以收发信息半双工:单方向可以收发消息 TCP协议:面向连接当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。优点:可靠,稳定...原创 2018-09-23 23:06:19 · 281 阅读 · 0 评论 -
自学Python--网络编程之基础
IP地址和端口:IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示...原创 2018-09-23 22:10:18 · 221 阅读 · 0 评论 -
自学Python--日志模块logging
默认:import logging# 默认输出warning、error、critical信息logging.debug('debug') # 调试信息logging.info('info') # 正常信息logging.warning('warning') # 警告信息 WARNING:root:warninglogging.error('error') # 错误信息 ER...原创 2018-09-23 21:36:44 · 178 阅读 · 0 评论 -
自学Python--面向对象之封装
广义的封装:代码的保护,面向对象的思想本身就是一种封装,只让自己的对象能调用自己类的方法狭义的封装:把属性和方法都藏起来,对外部不可见 私有属性:__name私有方法:__func()私有属性和私有方法不能在外部调用 私有属性和私有方法只有本类可以调用 内部装饰器函数:圆的面积需要经过计算,但面积应该是类的属性,使用@property将类方法伪装成属性cl...原创 2018-09-12 23:25:51 · 153 阅读 · 0 评论 -
自学Python--函数内置方法
函数内置方法:函数的名字和注释:def test(): ''' 这里是注释 ''' print('this is test')name = test.__name__doc = test.__doc__print(name) # testprint(type(name)) # strprint(doc) # 这里是注释 被装饰函数的内置...原创 2018-09-03 20:22:54 · 118 阅读 · 0 评论 -
自学Python--面向对象三大特性之继承
面向对象三大特性:封装、继承、多态 组合:一个类的对象是另一个类或对象的属性 继承:python可多继承python3中默认继承object类python3所有类都是新式类(默认继承object)单继承中可以用super().xxx调用父类方法或属性class A(object): name1 = 'A' def __init__(self): ...原创 2018-09-11 23:03:58 · 144 阅读 · 0 评论 -
自学Python--逻辑运算等
字符串换行:因此多行注释尽量使用"""以免和多行字符串'''混淆s = '''hellow,world!'''print(s) '''hello,world!'''格式化输出:用%占位,%s表示字符串,%d表示数字如果%不做占位符时则使用%%来进行转义%转义会把后面的全部转义,如%s用来表示占位字符串,但%%s则会输出%sname = input('...原创 2018-08-21 20:51:00 · 154 阅读 · 0 评论 -
自学Python--day02--面试题
# coding:utf-8'''1、阅读下面代码,写出A0、A1至An的最终值 A0 = dict(zip(('a', 'b', 'c', 'd', 'e'), (1, 2, 3, 4, 5))) A1 = range(10) A2 = [i for i in A1 if i in A0] A3 = [A0[s] for s in A0] A4 = [i for i in A1 ...原创 2018-08-21 20:42:17 · 249 阅读 · 0 评论 -
自学Python--数据类型
数据类型:int、bool、str、list、tuple、dict、set列表list:a = [1, 2, 3, 4, 5, 6] 元组tuple:'只读列表',不可修改a = (1, 2, 3, 4, 5, 6) 字典dict:键值对a = {'name':'xinian', 'age':18} 集合set:类似数学概念中的集合a = {1, 2...原创 2018-08-24 22:50:17 · 235 阅读 · 0 评论 -
自学Python--python2和python3编解码
Python2在编译安装时可以通过参数 --enable-unicode=ucs2 或 --enable-unicode=ucs4分别指定使用2个字节或者4个字节表示一个unicode字符,python3默认使用4个字节表示一个unicode字符,无法改变python2默认ucs2标准?查看当前python环境unicode字符串占用空间:import sysprint(sys.m...原创 2018-08-20 23:46:44 · 534 阅读 · 0 评论 -
自学Python--历史
1、python历史:宏观上python2与python3区别:python2:源码不标准、混乱、重复代码太多python3:统一标准、去掉重复代码2、python的环境:编译型:c、c++等,一次性将所有程序编译成二进制文件:开发效率低、不能跨平台、程序运行速度快解释型:python、php等,当程序执行时,一行一行解释:开发效率高、跨平台、程序运行速度慢python...原创 2018-08-20 21:32:18 · 160 阅读 · 0 评论 -
自学Python--函数
多个返回值:def fun1(): return 1, 2, 3 # python解释器自动转换成元组类型,相当于rerun (1, 2, 3)a = fun1() # a = (1, 2, 3) 元组b, c, d = fun1() # b = 1, c = 2, d = 3s1, s2 ,s3 = (1, 2, 3) # s1 = 1, s2 = 2, s3 = 3 自...原创 2018-08-30 23:37:26 · 215 阅读 · 0 评论 -
自学Python--文件操作
指定读写文件编码:with open('test.txt', 'r', encoding='utf-8') as f: f.read()with open('test.txt', 'w+', encoding='utf-8') as f: f.write('12')文件读写操作比较耗时,如果需要循环读写时。尽量只打开和关闭文件一次如:with open('tes...原创 2018-08-30 22:22:36 · 158 阅读 · 0 评论 -
自学Python--集合及深浅copy
集合:无序不重复可变数据类型,但是元素必须不可变set1 = set({1, 2, 3, 4, 5, 6})set2 = {1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6}print(set1) # {1, 2, 3, 4, 5, 6}print(set2) # {1, 2, 3, 4, 5, 6}通过集合对列表去重:l = [1, 2, 3, 4, 5...原创 2018-08-27 22:26:51 · 320 阅读 · 0 评论 -
自学Python--列表和元组
列表增删改查:增:在结尾增加:append() 无返回值在指定位置插入:insert(index, object) 无返回值在结尾处迭代添加:extend(可迭代对象) 无返回值l1 = [1, 2, 3]l1.extend('abc') # l1 = [1, 2, 3, 'a', 'b', 'c']l2 = [1, 2, 3]l2.extend([1, 2, 3])...原创 2018-08-25 14:55:45 · 597 阅读 · 0 评论 -
自学Python--函数命名空间和作用域
命名空间:内置命名空间:python解释器一启动就可以使用,在启动解释器的时候被加载进内存里,如各种内置函数全局命名空间:程序从上到下执行过程中依次加载进内存里,如各种自定义的变量和函数局部命名空间:函数内部定义,调用函数的时候依次加载进内存,函数调用结束即释放 函数内部修改全局变量:global 尽量不使用,使用返回值代替a = 1def f(): ...原创 2018-09-01 15:18:58 · 237 阅读 · 0 评论 -
自学Python--面向对象
面向过程:优点:极大的降低了写程序的复杂度,只需要按顺序执行、堆叠代码即可缺点:一套流程就是用来解决一个问题应用场景:一旦完成就很少改变 面向对象:优点:解决了程序的扩展性,对某一个对象单独修改会立刻反映到整个体系中缺点:可控性差应用场景:需求经常变化的软件,一般需求的变化都集中在用户场景、互联网应用、企业内部软件等 定义类:类方法需要传self,类属性可以...原创 2018-09-11 22:50:53 · 107 阅读 · 0 评论 -
自学Python--迭代、列表生成式、生成器、迭代器
可迭代对象:可通过for循环遍历的对象。通过collections模块的Iterable判断from collections import Iterableprint(isinstance('abc', Iterable)) # True如果对列表实现类似java的下标循环,可通过内置函数enumeratefor i, v in enumerate([1, 2, 3, 4, 5,...原创 2018-09-03 00:15:53 · 190 阅读 · 0 评论 -
自学Python--装饰器
背景:不想改变函数的调用方式但是想在原函数前后添加功能通过闭包实现(初级实现装饰器):下面f1()是被装饰的函数,f2()是装饰器函数def f1(): print('this is f1')def f2(f): print('this is f2') def inner(): print('this is inner') ...原创 2018-09-02 22:35:12 · 175 阅读 · 0 评论 -
自学Python--匿名函数
匿名函数lambda:为了解决那些功能很简单的需求而设计的一句话函数def test(a, b): return a + bres = lambda a, b:a + b # :前面是参数,后面是返回值print(test(1, 2)) # 3print(res(1, 2)) # 3找出字典里value最大的key:d = {'1':10, '2':20, '3'...原创 2018-09-04 23:19:16 · 139 阅读 · 0 评论 -
自学Python--内置函数
内置函数: 作用域相关:本地作用域中所有名字:locals()全局作用域中所有名字:globals() 迭代器相关:迭代器下一个值:next(迭代器)生成一个迭代器:iter(可迭代对象) 其他:查看一个对象拥有的方法:dir(对象)s = ''print('join' in dir(s)) # True 查看函数是否可调用:callab...原创 2018-09-04 19:54:21 · 138 阅读 · 0 评论 -
自学Python--字典
数据类型划分:可变数据类型:不可哈希,list、dict、set不可变数据类型:可哈希,元组、bool、数字、str 字典的key必须是不可变数据类型 字典特点:二分法查找,查询速度快,比列表快;储存大量关系型数据;无序(3.5及以前版本,有序和无序区别在于遍历输出元素顺序可能不一样) 字典增删改查:增:直接赋值增加或修改:k存在则覆盖,不存在则增加d...原创 2018-08-25 22:01:17 · 205 阅读 · 0 评论 -
自学Python--函数闭包
闭包:嵌套函数且内部函数调用外部函数的变量以下如果inner函数未调用外部函数的a,则a不是闭包def outer(): a = 1 def inner(): print(a) print(inner.__closure__)outer() # (<cell at 0x000001367FAA0C48: int object at 0x00...原创 2018-09-01 16:33:30 · 167 阅读 · 0 评论 -
自学Python--函数嵌套和作用域链
函数的嵌套定义:def outer(): print('outer') def inner(): print('inner')outer() # outerglobal只声明全局变量,不管函数嵌套多少层,如果想改变最近一层局部变量,使用nonlocal,如果找不到上层局部变量会报错a = 1def outer(): a = 2 ...原创 2018-09-01 16:04:14 · 293 阅读 · 0 评论 -
not enough arguments for format string
本地的python代码里面指定了生成的html格式,里面引用了外部css和js,因为网络问题有时候会打不开本地的html文件,因此引用的js和css直接放到head里面,但是python会报错not enough arguments for format string,因为在head里增加的js和css里面有%,被python认为是占位符,替换新增的js和css里面所有的%为%%即可...原创 2018-10-15 11:40:01 · 12506 阅读 · 0 评论