字符问题 把码位转化成字节序列的过程是编码,把字节序列转化成码位的过程是解码 把unicode字符串当成人类可读的文本,码位当成机器可读的, 将字节序列编程人类可读是解码,把字符串编码成字节序列是编码 字节概要 python内置了两种基本的二进制序列类型,python3引入的不可变的bytes类型和python2.6添加的可变bytearray类型 基本的编解码器 别依赖默认值 python2的默认编码是ascii而python3是utf-8 这章内容主要讨论unicode编码,其实觉得没什么很…
本文主要内容 字符 字节 结构体和内存视图 字符和字节之间的转换——编解码器 BOM鬼符  标准化Unicode字符串 Unicode文本排序 python高级——目录 文中代码均放在github上:https://github.com/ampeeg/cnblogs/tree/master/python高级 字符 ''' 字符编码问题是经常困扰python编程人员的问题,我在编写爬虫的过程中也经常遇到这个头疼的事. 从python3开始,明确区分了人类语言(文本字符串)和机器语言(二进制字节),…
第二部分 数据结构 第2章 序列构成的数组 内置序列类型 序列类型 序列 特点 容器序列 list.tuple.collections.deque - 能存放不同类型的数据:- 存放的是任意类型的对象的引用 扁平序列 str.bytes.bytearray.memoryview.array.array - 只能容纳一种类型:- 存放的是数据值:- 是一段连续的内存空间:- 只能存放字符.字节.数值等基础类型 可变序列与不可变序列 可变序列:list.bytearray.array.array.c…
第四章 文本输出 1,客户区:整个应用程序窗口中没有被标题栏.边框.菜单栏.工具栏.状态栏和滚动条占用的区域.简而言之,客户区就是窗口中程序可以在上面绘制并向用户传达可视化信息的区域.   2,大多数Windows程序在WinMain函数初始化过程中会在进入消息循环之前调用UpdateWindow函数,Windows利用这个机会向窗口过程发送最初的WM_PAINT消息,这个消息通知窗口过程绘制客户区. 以下任何一个事件发生时,窗口过程都会收到一条WM_PAINT消息 用户移动窗口,导致原来被覆盖…
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群  群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发规范 一.列表生成式(列表推导式) 列表生成式List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 首先来上个需求,我有一个列表 [1,2,3,4,5,6,7,8,9,10],现在有这么个需求,要里面的元素自乘,想想看要怎么实现 版本一,通过fo…
文本和字节序列 人使用文本,计算机使用字节序列 1. 大纲: 字符.码位和字节表述 bytes.bytearray和memoryview等二进制序列的独特特性 全部Unicode和陈旧字符集的编解码器 避免和处理编码错误 处理文本文件的最佳实践 默认编码的陷阱和标准I/O的问题 规范化Unicode文本,进行安全的比较 规范化.大小写折叠和暴力移除音调符号的实用函数 使用locale模块和PyUCA库正确地排序Unicode文本 Unicode数据库中的字符元数据 能处理字符串和字节序列的双模式…
第四章 字典-当索引不好用时 4.0     字典可以理解成是C++里的map,可以映射任何类型.字典这种结构类型称为映射(mapping).   字典是Python中唯一内建的映射类型,字典中的值并没有特殊顺序,但是都是存在一个特定的键里.键可以是数字.字符串甚至是元组. 4.1-4.2 了解创建和使用字典 {    >>> phonebook = {'Alice':'2345' ,'Beth':'9102' ,'Cecil':'3258'}    >>> phone…
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<Django By Example>第四章的翻译,这章非常的实用,就这样) 第四章 创建一个社交网站 在上一章中,你学习了如何创建站点地图(sitemaps)和feeds,你还为你的blog应用创建了一个搜索引擎.在本章中,你将开发一个社交应用.你会为用户创建一些功能,例如:登录,登出,编辑,以及重置他们…
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica } Python 3 明确区分了人类可读的文本字符串和原始的字节序列.隐式地把字节序列转换成 Unicode 文本已成过去. 深入理解 Unicode 对你可能十分重要,也可能无关紧要,这取决于Python 编程的场景.说到底,本章涵盖的问题对只处理 ASCII 文本的程序员没有影响.但是即便如此,也不能避而不谈字符串和字节序列的区别.此外,你会发现专门的二进制序列类型所…
一.字符串的表示和存储 字符串是字符的序列,每个字符都有有一个数字作为标识,同时会有一个将标识转换为存储字节的编码方案: s = 'hello world python' for c in s: print(c, end=' ') h e l l o w o r l d p y t h o n ACSII为协议内的每个字符分别对应一个数字,然后以这个数字的二进制形式存储到计算机; s = 'hello world python' for c in s: num = ord(c) print(nu…
本章讨论的话题 python如何计算装饰器句法 python如何判断变量是不是局部的(通过函数内部是否给变量赋值过来判断是否是局部变量) 闭包存在的原因和工作原理(闭包是一种函数,它会保留定义函数时存在的自由变量的绑定,这样调用函数时,虽然定义作用域不可用了,但是仍能使用那些绑定.函数中的函数) nonlocal能解决什么问题(nonlocal是新出现的保留关键字,python3.0中引入)(将局部变量声明为自由变量) 探讨 实现行为良好的装饰器 标准库中有用的装饰器 实现一个参数化的装饰器 装…
一.程序的分支结构 二.身体质量指数BMI #CalBIv1.py height,weight = eval((input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))) bmi = weight / pow(height,2) print("BMI数值为:{:.2f}".format(bmi)) who,nat = "","" if bmi<18.5: who,nat = "偏瘦", &q…
Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于…
从 Python 3.4 起,标准库中有两个名为 Future 的类:concurrent.futures.Future 和asyncio.Future.这两个类的作用相同:两个 Future 类的实例都表示可能已经完成或者尚未完成的延迟计算 我们要记住一件事:通常情况下自己不应该创建期物,而只能由并发框架(concurrent.futures 或 asyncio)实例化.原因很简单:期物表示终将发生的事情,而确定某件事会发生的唯一方式是执行的时间已经排定.因此,只有排定把某件事交给 concu…
鸭子协议(忽略对象真正类型,转而关注对象有没有实现所需的方法,签名和语义) 标准库中的抽象基类 collections.abc模块中的抽象基类 抽象方法是抽象基类中用来强制子类必须实现的方法,如果子类不实现该方法,则会报错 上述例子中的load,pick属于抽象方法,Tombola的子类必须实现这两个方法,否则报错 实际上,抽象基类的定义需要对python有深入的了解,一般来说只需要能够理解看懂源码即可. 抽象基类的句法详解…
在python中,函数是一等对象,一等对象是满足以下条件的程序实体 1在运行时创建 2能复制给变量或数据结构的元素 3能作为参数传给函数 4能作为函数的返回结果 高阶函数(接受函数作为参数或者把函数作为结果返回的函数),如map和sorted函数 最为人熟知的高阶函数有map,filter,reduce和apply,apply在python3中移除了 map,filter和reduce的替代品 map和filter现在可以使用列表推导来替代 reduce在python2是内置函数,python3…
流程控制 在以前的代码中,所有的代码都是交由 Python 忠实地从头执行到结束.但是这些远远不够.很多时候需要根据不同的情况执行不同的代码. 如果你想改变这一工作流程,应该怎么做? 就像这样的情况:你需要程序作出 一些决定,并依据不同的情况去完成不同的事情,例如依据每天时间的不同打印出 '早上好' 'Good Morning' 或 '晚上好' 'Good Evening'? 需要用到流程控制! python 共提供了 3 种流程控制: if.while.for...in 一.分支语句 所谓分支…
运算符重载基础 不能重载内置类型的运算符 不能新建运算符,只能重载现有的 某些运算符不能重载-------is,and,or和not(不过位运算符&,|和~可以) 一元运算符…
什么是可散列的数据类型 如果一个对象是可散列的,那么在这个对象的生命周期中,他的散列值是不变的,而且这个对象需要实现__hash__()方法.另外可散列对象还要有__qe__()方法.这样才能跟其他键做比较.如果两个可散列对象是相等的.那么他们的散列值一定是一样的. 原子不可变数据类型(str, bytes和数值类型)都是可散列类型,frozenset也是可散列的,因为根据其定义.frozenset里只能容纳可散列类型.元组的话.只有当一个元组包含的所有元素都是可散列类型的情况下,他才是可散列的…
4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') obj.write() # 写入 obj.read() # 读取 obj.close() #关闭 4.2 打开模式 r / w / a [只读只写字符串] r+ / w+ / a+ [可读可写字符串] rb / wb / ab [只读只写二进制] r+b / w+b / a+b [可读可写二进制] 4.3 操作 read() , 全部读到内存 read(1) 1表示一个字符 obj = ope…
ASCII码 早期人们用8位二进制来编码英文字母(最前面的一位是0) 也就是说,将英文字母和一些常用的字符和这128种二进制0.1串一一对应起来, 比如:大写字母“A”所对应的二进制位“01000001”,转换为十六进制为41. 在美国,这128是够了,但是其他国家不够,他们的字符和英文是有出入的, 比如:在法语中在字母上有注音符号,如 é . 所以各个国家就决定把字节中最前面未使用的那一个位拿来使用,原来的128种状态就变成了256种状态, 比如:é就被编码成130(二进制的10000010)…
一.Python发展史 二.Python2 or 3 博主选择了Python3. 从官网下载Python  www.python.org Windows安装python3.5.python2.7.安装好后可能需要调整一下path [右键计算机]-->[属性]-->[高级系统设置]-->[高级]-->[环境变量]-->[在第二个内容框中找到 变量名为Path 的一行,双击] --> [Python安装目录追加到变值值中,用 : 分割] 如:原来的值;C:\python27…
接口工具:      Msql Workbench   http://www.mysql.com/products/workbench      SQLyog  http://www.webyog.com      phpMyAdmin http://sourceforge.net/projects/phpmyadmin [不建议使用]      Adminer phpmyadmin的更好的替代品, http://www.adminer.org[不建议公开访问]   命令行工具集:      P…
python 操作excel表的常用模块主要有2个: 1:xlrd:读取excel表 2:xlwt:创建并写入excel表 安装方法: 可以直接下载安装:https://pypi.python.org/pypi    也可以使用pip3安装 以下以实例记录xlwt模块的使用方法 # 创建一个基本的excel表格 book = xlwt.Workbook(encoding='utf-8')  # 生成excel文件并设置编码为utf8 sheet = book.add_sheet('sheet_n…
流畅的python 第1章 python数据模型 ---1.1 一摞Python风格的纸牌 特殊方法,即__method__,又被称为魔术方法(magic method)或者双下方法(dunder-method). 特殊方法的存在是为了被python解释器调用的 collections.namedtuple用于构建一个只有少数属性但是没有方法的对象 通过实现__getitem__,可以使对象有[]操作,支持切片操作,可迭代 for i in x:实际上是用了iter(x),而这个函数背后则是x.…
作者:熊猫烧香 链接:www.pythonheidong.com/blog/article/26/ 来源:python黑洞网 目标读者 本书的目标读者是那些正在使用 Python,又想熟悉 Python 3 的程序员.如果你懂 Python 2,但是想迁移到 Python 3.4 或者更新的版本,也没问题.在写这本书的时候,大多数专业 Python 程序员用的还是 Python 2,因此如果书中出现来自 Python 3 的特性,读者可能会感到陌生,我也会特别地做出解释.然而,本书的主要目的是为…
第1章 python数据模型 python的写法是由背后的魔法方法实现的,比如obj[key],解释器实际调用的是obj.__getitem__(key) 作者把魔法方法叫做双下方法,因为有两个下划线 collections.namedtuple可以用来创建只有少数属性但没有方法的对象,比如 beer_card = Card('7', 'diamonds') random.choice和random.sample不一样的地方在于,sample是返回序列,choice是返回元素,当使用sample…
摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本查找.文本替换. 3.1  查找文本 如需从输入的数据文件中取出特定的文本行,主要的工具为grep程序.POSIX采用三种不同grep变体:grep.egrep.fgrep整合为单个版本,通过不同的选项,分别提供这三种行为模式.who | grep -F root上面使用-F选项,以查找固定字符串r…
鸭子类型协议不完全总结序列:len,getitem切片:getitemv[0]分量的取值和写值:getitem和setitemv.x属性的取值和写值:getattr和setattr迭代:1)iter,2)getitem上下文管理器:enter,exit+=:1)iadd,2)add可散列:hash,eqin测试:1)contains,2)iter,3)getitem 第一章,python数据模型__repr__得到对象的字符串表现形式if obj,实际执行的是bool(obj),python解释…
20145221<Java程序设计>第四章-认识对象 总结 教材学习内容总结 类与对象 定义:对象是Java语言中重要的组成部分,之前学过的C语言是面向过程的,而Java主要是面向对象的.Java中变量有2种类型,一个是基本类型,另一个则是类类型.使用Java撰写程序几乎都是在使用对象,要产生对象必须先定义类,类是对象的设计图,对象是类的实例. 特点: 有别于C语言的程序编写,在用Java编写中,如果需要什么功能,我们就可去找一个对象,而这个对象就包含这个功能,然后通过new建立对象,通过&q…