
Python
damys
态度决定一切,积累决定层次,思维决定行为,习惯决定命运
展开
-
Python---- 编译器,解释器
编译器计算机不能直接理解任何机器语言以外的语言所以必须要把程序员所编写的程序语言翻译成机器语言,计算机才能执行程序。 将其他语言翻译机器语言的工具,被称为编译器解释器编译器翻译的方式有两种:一是编译器,一是解释器。 其区别是翻译时间点的不同. 当编译器以解释方式运行的时候,称为解释器原创 2017-10-23 16:31:43 · 741 阅读 · 0 评论 -
Python----新式类与旧式(经典)类
object 是python 为所有对象提供的基类, 提供有一些内置的属性和方法,可以使用dir函数查看 python 2.x 中定义类时,如果没有指定, 则不会以object作为基类class 类名(object): passprint(dir(A()))['__doc__', '__module__']class B(object): passprint(dir(B()))原创 2018-01-02 09:38:56 · 273 阅读 · 0 评论 -
Python----多态
多态不同的子类对象调用相同的父类方法,产生不同的结果, 增加代码灵活度,不会影响到类的内部设计类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个 whoAmI() 方法:class Person(object): def __init__(self, name, gender): self.n原创 2018-01-02 09:41:37 · 297 阅读 · 0 评论 -
Python----单例
目的:让类创建对象,在系统中只有唯一的一个实例。每一次执行类名()返回的对象,内存地址是相同的需要重写new内置方法,一定要返回return supper().new(cls)new 为对象分配空间,返回对象的引用init对象初始化,定义实例属性class MusicPlayer(object): def __new__(cls, *args, **kwargs):原创 2018-01-12 09:24:35 · 994 阅读 · 0 评论 -
Python----静态方法
不需要访问实例属性,调用实例方法, 类属性, 类方法, 使用@staticmethod修饰class Tool(object): # 记录所有工具对象的数据 count = 0 def __init__(self, name): self.name = name Tool.count += 1 @classmethod原创 2018-01-15 09:33:33 · 350 阅读 · 0 评论 -
Python----类对象
访问类属性有两种方式:类名.类属性, 对象.类的属性(不推荐) 注意:如果使用对象.类属性 = 值赋值语句,只会给对象添加一个属性,而不会影响到类属性的值class Tool(object): # 记录所有工具对象的数据 count = 0 def __init__(self, name): self.name = name To原创 2018-01-08 09:49:35 · 452 阅读 · 0 评论 -
Python----单例__init__
让初始化__init__只执行一次class MusicPlayer(object): # 记录是否执行过程初始化动作 init_flag = False # 让始始化只执行一次 def __init__(self): if MusicPlayer.init_flag: return print('初原创 2018-02-02 09:27:56 · 806 阅读 · 1 评论 -
Python----单例
目的:让类创建对象,在系统中只有唯一的一个实例。每一次执行类名()返回的对象,内存地址是相同的需要重写new内置方法,一定要返回return supper().new(cls)new 为对象分配空间,返回对象的引用init对象初始化,定义实例属性class MusicPlayer(object): def __new__(cls, *args, **kwargs)原创 2018-02-02 09:24:31 · 186 阅读 · 0 评论 -
Python----File 指定编码格式创建,打开
指定编码格式创建,打开open(fname, mode, encoding,erros,buffering )操作import codecsf = codecs.open('a.txt', 'w', 'utf-8')f.encoding输出显示: utf-8# 写入f.write('中国')f.close()...原创 2018-02-23 11:40:57 · 4862 阅读 · 0 评论 -
Python----File 编码
乱码的原因字符A,ASCII编码:01000001, Unicode编码00000000 01000001 字符A,ASCII编码:01000001, UTF-8编码01000001一般读写一般读取:文件(uncode)到电脑需要转为(utf-8) 一般写入:电脑(uncode)到文件需要转为(uncode)Python3 字符串默认使用unicode编码, 所以他支持国际...原创 2018-02-23 11:44:35 · 385 阅读 · 0 评论 -
Python----文件/目录的常用管理操作
文件操作rename 重命名文件 os.rename(源文件名, 目录文件名)remove 删除文件 os.remove(文件名) 目录操作listdir 目录列表 os.listdir(目录名)mkdir 创建目录 os.mkdir(目录名)rmdir 删除目录 os.rmdir(目录...原创 2018-03-05 09:22:36 · 289 阅读 · 0 评论 -
Python----os 模块对文件进行操作
os.read(fb, buffersize)读取文件os.write(fb, string)写入文件os.lseek(fb, pos, how)文件指针操作os.close(fb)关闭文件。 此为文件缓存流将会写入到文件例子: ./file/readme 文件内容1111 2222 3333操作#!/usr/bin/python# -*- coding:...原创 2018-03-05 09:27:59 · 294 阅读 · 0 评论 -
Python----修改配置文件 Configparser
安装: configparser, 执行:pip install configparser查看:pip freeze. configparser==3.5.0文件管理: CRUD 文件import configparserclass ini_info(object): def __init__(self, recordfile): self.logfile...原创 2018-04-02 10:45:59 · 844 阅读 · 0 评论 -
Python----PDFMiner3k 将一个pdf 文件写入文本文件
下载: https://pypi.python.org/pypi/pdfminer3k下载&安装: pip3 install pdfminer3k 或者 py -3 -m pip install pdfminer3k将一个pdf 文件写入文本文件#! python3# -*- coding: utf-8 -*-import sysimport importli...原创 2018-04-03 10:15:45 · 1996 阅读 · 0 评论 -
Python----CSV 一般写入, 追加改模式w 为a
CSV 一般写入, 追加改模式w 为a# -*- coding: utf-8 -*-import csv# 头数据fileHeader = ["name", "score"]# 内容数据d1 = ["Wang", "100"]d2 = ["Li", "80"]# 写入数据csvFile = open("instance.csv", "原创 2018-05-02 09:06:59 · 17627 阅读 · 0 评论 -
Python----DictWriter 以字典形式写入
DictWriter 以字典形式写入# -*- coding: utf-8 -*-import csvcsvFile = open("instance.csv", "w")# 文件头以列表的形式传入函数,列表的每个元素表示每一列的标识fileheader = ["name", "score"]dict_writer = csv.DictWriter(csvFile, filehea...原创 2018-05-02 09:07:45 · 18398 阅读 · 0 评论 -
Python----DictReader 以字典形式读取
DictReader 以字典形式读取with open("instance.csv", "r") as csvFile:dict_reader = csv.DictReader(csvFile)for i in dict_reader: print(i)单个读出csvFile = open("instance.csv", "r")dict_reader = csv.D...原创 2018-06-04 09:08:07 · 19707 阅读 · 0 评论 -
Python----Python 有哪几种网页解析器, 下载网页方法
Python 有哪几种网页解析器正则表达式–模糊匹配 - html.parser–结构化解析( 就是一个DOM 树结构) - BeautifulSoup支持(html.parser, lxml)–结构化解析 - lxml–结构化解析 - 下载网页方法一般有三种方法, 第三种方法处理特殊情景:HTTPCookieProcessor, ProxyHandler, HT...原创 2018-07-02 09:29:01 · 1182 阅读 · 0 评论 -
Python----继承
子类拥有父类所有的方法和属性, 当父类的方法不能满足子类需求时,可以进行重写扩展的方式在子类中重父类的方法在需要的位置使用super().父类的方法 来调用父类方法supper 是一个特殊的类, 常用于调用父类中封装的方法子类对象 不能在自己的方法内部, 直接访问父类私有属性和私有方法子类对象 可能通过 父类的公有方法间接访问到私有属性 或私有方法class A: def a(self):原创 2017-12-12 16:17:25 · 229 阅读 · 0 评论 -
Python----多继承
class A: def a(self): print('a...')class B: def b(self): print("b...")class C(A, B): def c(self): print("c...")c = C()c.a()c.b()c.c()# 从左到右顺序方法搜索, 搜索不到会报错print(C.原创 2017-12-12 16:15:32 · 332 阅读 · 0 评论 -
Python----@property 可以用装饰器函数 get/set方法
第一个@propertyscore(self)是get方法第二个@score.setterscore(self, score)是set方法class Student(object): def __init__(self, name, score): self.name = name self.__score = score @property de原创 2017-12-01 09:22:03 · 613 阅读 · 0 评论 -
Python----list,dict,tuple
List 列表列表中可以存储不同类型的数据, 但在使用场景中,列表一般都存储相同类型的数据list1 = ['tom', 'jack', 'rose']list1.index('jack') # 返回数据的索引# 增加list1.insert(1, 'json') # 从指定的位子插入list1.append('json') # 从尾部添加list2 = ['admin']原创 2017-10-23 16:50:05 · 258 阅读 · 0 评论 -
Python----Basic
官网下载: https://www.python.org/downloads/Python 的设计目标一门简单直观的语言并与主要竞争者一样强大开源, 以便任何人都可以为它做贡献代码像纯英语那样容易理解适用于短期开发的日常任务Python 的设计哲学:优雅,明确,简单Python 开发者的哲学是:用一种方法,最好是只有一种方法来做一件事特色完全是面向对象的语言函数,模块,数字,字符串都是对原创 2017-10-23 16:29:58 · 316 阅读 · 0 评论 -
Python----ipython
功能:支持自动补全, 交互式的数据可视化工具自动缩进支持bash shell 命令, 是基本 BSD 开源的Jupyter 内核灵活、可嵌入的解释器内置了许多很有用的功能和函数python abc.pypython3 abc.pyexit() # 退出ipython exit # 退出一般使用:查看其支持的方法C:\Windows\System3原创 2017-10-23 16:45:18 · 385 阅读 · 0 评论 -
Python----变量的格式化
在Python 在可以使用 print 函数将信息输出到控制台格式化操作符: %。 专门用于处理字符串中的格式%s 字符串%d 有符号十进制整数。%06d 表求输出的整数显示位数,不足的用0被全%f 浮点数。 %0.2f 表求小数点后显示两位%% 输出%。 50% = 50%% print("格式化字符串" % 变量1)print("格式化字符串" % (变量1,原创 2017-11-01 10:43:59 · 1382 阅读 · 0 评论 -
Python----变量与全局变量
函数执行时,处理变量:在函数内部直接使用,没有则在函数外部找(全局变量),如没有找到,就会报错函数不能直接修改全局变量的引用。如要修改,需要使用global 进行修饰 命名建议:全局变量名前加:g_, gl_前缀 代码结构流程示意图:shebang--import 模块–全局变量–函数定义–执行代码num = 5def demo1(): # num = 7 # 修改全局变量需要使用原创 2017-11-01 10:45:54 · 454 阅读 · 2 评论 -
Python----运算符, 切片
in 在对字典操作时,判断是字典的键 in 和 not in被称为成员运算符# 1. + 合并, 支持:字符串,列表,元组print('aa' + 'bb') # aabbprint([1,2] + [3,4]) # [1, 2, 3, 4]print((1,2) + (3,4)) # (1, 2, 3, 4)# + 会生成一个新的变量, 使用str.append(2)原创 2017-11-01 10:49:54 · 1224 阅读 · 1 评论 -
Python----__str__ 输出对象变量,默认会输出引用的对象。
init_初始化class Cat: """这是一个猫类""" def __init__(self): print("初始化方法") def eat(self): print("Cats eat fish") def drink(self): print("Cats drink water")第一个对象调用前都会执行 init原创 2017-11-10 11:05:29 · 1343 阅读 · 0 评论 -
Python----一个对象的属性可以是另外一个类型创建的对象
del 生命周期结束, 可以删除一个对象class Cat: """这是一个猫类""" def __init__(self, name): print("初始化开始...") self.name = name def eat(self): print("%s eat fish" % self.name) def drink(s原创 2017-11-10 11:07:34 · 3970 阅读 · 0 评论 -
Python----__slots__ 一个类允许的属性列表
目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用slots也能节省内存class Student(object): __slots__ = ('name', 'gender') def __init__(self, name, gender): self.name = name self.gender = genders = Studen原创 2017-11-29 09:17:18 · 424 阅读 · 0 评论 -
Python----类的封装
重点: 一个对象的属性可以是另外一个类型创建的对象士兵的例子class Gun: def __init__(self, model): # 1. 枪的型号 self.model = model # 2. 子弹的数量 self.bullet_count = 0 def add_bullet(self, count):原创 2017-11-29 09:19:05 · 10020 阅读 · 0 评论 -
Python----__repr__用于显示给开发人员
repr()用于显示给开发人员, 而str()用于显示给用户class Person(object): def __init__(self, name, gender): self.name = name self.gender = genderclass Student(Person): def __init__(self, name, gender,原创 2017-11-15 11:48:15 · 853 阅读 · 0 评论 -
Python----__len__可以用len()函数返回对象实例的“长度”
len可以用len()函数返回对象实例的“长度”注:要让 len() 函数工作正常,类必须提供一个特殊方法len(),它返回元素的个数class Students(object): def __init__(self, *args): self.names = args def __len__(self): return len(self.names)s原创 2017-11-15 11:54:56 · 11532 阅读 · 0 评论 -
Python----Pyc, 模块
模块就好比是一个工具包, 每一个扩展名 .py结尾的 python 源代码文件都是一个模块Pyc是经过C 编译过的意思当引入(调用)模块时, 会在程序目录中自动生成一个pycache目录目录下会生成一个 类似sum.cpython-36.pyc文件, cpython-36 解释器版本这个pyc 文件是由 Python 解析器将模块的源码转为字符码例:计算和sum.py 文件:def sum_原创 2017-11-06 17:15:57 · 2019 阅读 · 0 评论 -
Python----__init__初始化
init初始化class Cat: """这是一个猫类""" def __init__(self): print("初始化方法") def eat(self): print("Cats eat fish") def drink(self): print("Cats drink water")# 第一个对象调用前都会执行 __i原创 2017-11-06 17:17:56 · 825 阅读 · 0 评论 -
Python----__del__, 生命周期结束
del生命周期结束class Cat: """这是一个猫类""" def __init__(self, name): print("初始化开始...") self.name = name def eat(self): print("%s eat fish" % self.name) def drink(self):原创 2017-11-06 17:20:25 · 1052 阅读 · 0 评论 -
Python----伪私有属性和私有方法
在Python 中,并没有真正的私有在级属性,方法命名时,实际是对名称做了一些特殊处理,使得外界无法访问到 处理方式:在名称前面加上: 定义类名, 调用:_类名名称class Women: def __init__(self, name): self.name = name self.__age = 18 # 私有 def __secret(self原创 2017-12-01 09:16:50 · 1573 阅读 · 0 评论 -
Python----__getattribute__, __getattr__
getattribute: 在访问一个存在的属性时,新增提示功能 getattr: 找不到attribute的时候,会调用getattr,返回一个值或AttributeError异常class Person(object): def __init__(self, name, age): self.name = name self.age = age #原创 2017-12-01 09:20:01 · 305 阅读 · 0 评论 -
Python----常用爬虫
import urllib.requestimport http.cookiejarurl = "http://www.baidu.com"print('第一种方法:最简洁方法')response1 = urllib.request.urlopen(url)print(response1.getcode())print(len(response1.read()))print(...原创 2018-07-02 09:30:33 · 223 阅读 · 0 评论