2016Python学习笔记之一
来源:互联网 发布:win7 tcp监听端口阻塞 编辑:程序博客网 时间:2024/04/30 02:38
第1节 Python编程语言历史及特性 2016-07-03
编程语言
用户:
问题空间
计算机: 解决问题
解空间
抽象
机器代码 -> 微码编程 -> 高级语言
Python的用处:
shell编程 但不是很常
控制状态:脱水语言
框架: web Django
字节码: bytecode与java有点类似
第2节 Python编程语言初接触 2016-07-03
Python程序的执行 source code(.py) --->Complier(编译器) ---->bytecode(字节码文件) --->Interpreter(虚拟机) -> processor Python的实现 CPython 原始、标准的实现方式 Jython 用于与java语言集成的实现 IronPython 用于与.Net框架集成的实现 Python性能优化工具 Psyco Python语言的一个扩展模块,可以即时对程序代码进行专业的算法优化, 可以在一定程序上提高程序的执行速度,在程序中有大量循环操作时 目前开发工作已经停止,由PyPy所接替。 PyPy PyPy是用Python实现的Python解释器 Python语言的动态编译器,是Psyco的所继项目 可以运行在Linux的32位和64位、MoaOSX和windows的32位平台中 Shed Skin Python编译器、能够将python代码转负成优化的C++代码 编写、执行Python代码 交互式解释器 直接启动python,其显示信息取决于程序版本及操作系统等 Python程序文件 交互式模式下的程序执行完成后难以再次运行 将编写的程序保存到文件(.py)中方便多次运行 python的此类包含了一系列预编写好的语句的程序文件称作"模块" 能够直接运行的模块文件通常称作脚本(即程序的顶层文件)
第3节 Python程序文件结构 2016-07-03
Python程序文件
python程序源码文件通常以.py为扩展名
例如,新建一个名为firstpycode.py的文件,内容如下所示
#!/usr/bin/python
import platform
print platform.uname()
第一行为shedang,即执行脚本时通知内容要启动的解释器 第二行通过import导入一个python模块platform 第三行打印platform模块的uname方法的执行结果 给予此脚本以执行权限,并执行即可 Python程序可以分解成模块、语句、表达式和对象 程序由模块构成 模块包含语句 语句包含表达式 表达式建立并处理对象 表达式是"某事",而语句是"做某事(即指令)" 例如,"3+4"是某事,而"print 3+4"则是做某事 语句的特性:它们改变了事物,例如,赋值的语句改变了变量,print语句改变了屏幕输出等: Python IDE IDLE 标准python环境提供 Eclipse和PyDev PythonWin Komodo Wingware PyCharm 面向过程: 以指令为中心,由指令处理数据 如何组织代码解决问题 面向对象: 以数据为中心,所有的处理代码都围绕数据展开 如何设计数据结构组织数据,并且对此类数据所允许操作
第4节 Python编程环境 2016-07-03
切换更高Python的新版本。 简单方法: 1、编详安装新版本至某特定路径;2、pyenv来管理Python的各版本。 数据结构 通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其它的数据结构。Python的最基本据结构之序列序列中的每个元素被分配一个序号--即元素的位置,也称为索引,索引从0开始编号Python包含6种内建的数据序列,列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。 Python的关健要素 基本数据类型对象引用组合数据类型逻辑操作符控制流语句算述操作行输入\输出函数的创建和调用 1、基本数据类型 任何程序语言都必须能够表达基本数据项Python中的基本数据类型有 Integral类型 整型:不可变类型 布布型: True, False 浮点类型 浮点数 3.141592 复数 3+6j 十进制数字 字符串 'GNU is not', "hello world" 字符串在ptyhon里面已经是一个序列结构。
第4节 Python编程语言基础技术框架 2016-07-03
2、对象引用(变量) Python将所有数据存为内存对象 python中,变量事实上是指向内存对象的引用 动态类型: 在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型) 内建函数type()用于返回张给定数据项的数据类型 “=”用于将变量名与内存中的某对象绑定:如果对象事先存在,就直接进行绑定:否则,则由"="创建引用的对象 变量命令规则 只能包含字母、数字和下划线,且不能以数字开头 区分字母大小写 禁止使用保留字 python2与python3的保留字有所不同 命令惯例 以单一下划线开头变量名(_x)不会被from model import *语句导入 前后有下划线的变量名(__X__)是系统定义的变量名,对python解释器有特殊意义 以两个下划线开头但结尾没有下划线的变量名(__X)是类的本地变量 交互式模式下,变量名"_"用于保存最后表达式的结果 注意: 变量名没有类型,对象才有 数据结构: 通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合。 Python常用的组合数据类型 序列类型 列表:使用[]创建,如["Call", "em", "xlc"] 元组: 使用()创建,如("one","two") 字符串也属于序列类型 集合类型 集合 映射类型 字典 例表是可变序列,元组是不中变序列 Python中,组合数据类型也是对象,因此其可以嵌套 ["hello", "world", [1,2,3]] 实质上,列表和元组并不真正存储数据,而是存放对象引用 Python对象可以具有其可以被调用的特定"方法(函数)" 元组、列表以及字符串等数据类型是“有大小的”,也即,其长度可使用内置函数len()测量
第6节 Python编程语言基础技术框架 2016-07-03
要素#4:逻辑操作符
逻辑运算是任何程序设计语言的基本功能
Python提供4组逻辑运算
身份操作符
is:判断左端对象引用是否相同于右端对象引用,也可以与None进行
比较操作符
<,>,<=,>=,!=,==
成员操作符
in或not in,测试成员关系
逻辑运算符
and, or, not
要素#5:控制流语句 控制流语句是过程式编程语言的基本控制机制Python的常见控制流语句 if while for...in try 要素#6:算术操作符 Python提供了完整的算术操作集很多的Python数据类型也可以使用增强的赋值操作符,如+=,-=等;同样的功能,使用增强型赋值操作符的性能较好;Python的int类型是不可变的,因此,增强型赋值的实际过程是创建了一个新的对象来存储结果后将变量名执行了重新绑定要素#7:输入/输出 现实中,具有实际功能的程序必须能够读取输入(如从键盘或文件中),以及产生的输出,并写入终端或文件中Python的输入/输出 输出: Python3: print()函数 Python2: print语句 输入: input() row input() Python解释器提供了3种标准文件对象,分别为标准输入、标准输出和标准错误,它们在sys模块中分别以sys.stdin,sys.stdout和sys.stderr形式提供Python的print语句实现打印 一个对程序员友好的标准输出流接口从技术角度上来讲,print是把一个或多个对象转换为其文本表达形式,然后发送给标准输出或另一个类似文件的流 在Python中,打印与文件和流的概念联系紧密 文件写入方法是把字符串写入到做任意文件 print默认把对象打印到stdout流,并添加了一些自动的格式化 实质上,print右只是Python的人性化特性的具体体现,它提供了sys.stdout.write()的简单接口,再加上一些默认的格式设置print接收一个逗号分隔的对象列表,并为行尾自动添加一个换行符,如果不需要,则在最后个元素添加逗号
第7节 Python编程语言基础技术框架 2016-07-03
dir(builtins)可以看到python所有数据类型
help(str) 可以查看该类型的帮助说明
2016-07-04
要素#7:输入/输出
print “String %format1 %fromat2 …” %(variable1, variable2, …)
字符 输出格式
d, i 十进制整数或长整数
u 无符号整数或长整数
o 八进制整数或长整数
x 十六进制整数或长整数
X 十六进制整数(大写字母)
f 浮点数,如[-] m.ddddd
e 浮点数,如[-] m.dddddde+xx
E 浮点数,如[-] m.dddddde+xx
g,G 指数小于-4或更高精度时使用%e或%E,否则使用%f
s 字符串或任意对象。格式化代码使用str()生成字符串
r 同repr()生成的字符串
c 单个字符
% 字面量%
数据转换
隐示转换
显示转换
获取收存有多少种类型: dir(builtins)
如果想知道某一类型的使用方法: help(str), str表示数据类型或者其它的类
%后面可以使用的修饰符,(如果有,则只能按如下顺序)
%[(name)][flags][width][.precision]typecode
位于括号中的一个属于后面的字典的键名,用于选出一个具体项
下面标志中的一个或多个
-: 表示左对齐,默认为右对齐
+: 表示包含数字符号,正数也会带”+”
0: 表示一个零填充
一个指定最小宽度的数字
一个小数点,用于按照精度分割字段的宽度
一个数字,指定要打印字符串中的最大字符个数,浮点数中小数点之后的位数,或者整数的最小位数
例如: d={‘x’:32, ‘y’:27.490, ‘z’:65}
print “%(x)-10d %(y)0.3g” %d
第八节: Python编程语言基础技术框架
要素#8:函数的创建与调用
函数是实现模块化编程的基本组件
Python使用def语句定义函数
函数可以参数化,通过传递不同的参数来调用
每个Python函数都有一个返回值,默认为None,也可以使用”return value”明确定定义返回值
def语句会创建一个函数对象,并同时创建一个指向函数的对象引用
函数也是对象,可以存储在组合数据类型中,也可以作为参数传递给其它函数
callable()可以用于测试函数是不可调用
Python有众多内置函数Python标准库拥有众多内置模块,这些模块拥有大量函数 Python模块实际上就是包含Python代码的.py文件,其拥有自定义的函数与类及变量等 导入模块使用import语句进行,后跟模块名称(不能指定模块文件名的后缀.py) 导入一个模块后,可以访问其内部包含的任意函数,类及变量 dir() id(),type(),str(),help(), len(), callable()
2016-07-06
第九节: Python编程风格
语句和语法
标识符
基本编程风格
注释 #: 可以从一行的任何地方开始续行 : ''': 闭合操作符,单一语句跨多行 """:代码组: 缩进相同的一组语句构成的一个代码块 首行以关键字开始,如if、while等,以冒号结束 Python使用缩进来分隔代码组,同一代码组的代码行必须严格左对齐,否则会造成语法错误同一行放置多个语句 ;:以分号做分隔符模块 每一个Python脚本文件都可以被当成一个模块 模块里的代码可以是一段直接执行的脚本,也可以是一些类拟库函数的代码从而可以别的模块执行导入(import)标识符是计算机语言中允许作为名字的有效字符串集合 其中有一部分是关键字,它们是语言的标识符,因此是保留字,不能用于其它用途 Python还有称为"内建"的标识符集合,虽不是保留字,仍不推荐使用这些特别的名字Python标识符 第一个字符只能使用字母或下划线 余下的字符可以使用字母、数字或下划线 区分了符大小写注释 既不能缺少注释,要避免过渡注释文档 Python允许通过__doc__动态获得文档字串缩进 统一缩进4个字串标识符名称 见名知义Python风格指南 http://www.elias.cn/Python/PythonStyleGuide以单一下划线开头的变量名(_X)不会被from module import*语句导入前后有下划线的变量名(__X__)是系统变量名,对解释器有特殊意义以两个下划线开头、但结尾没有下划线的变量名(__X)是类的本地变量交互式模式下,只有单个下划线的变量名(_)用于保存最后表达式的结果
第十节: Python编程风格2
Python文件结构----------------------#/usr/bin/env python (1)起始行----------------------"this is a test module" (2)模块文档(文档字符串)----------------------improt sys (3)模块导入import os ----------------------debug = Ture (4)全局变量定义----------------------class FooClass (object): (5)类定义 "foo class" pass----------------------def test(): (6)函数定义 "test function" foo = FooClass() if debug: print "ran test()" ----------------------if __name__ == '__main__': (7)主程序 test()
2016-07-09
主程序
无论当前模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码
注意: 所有的模块都有能力执行代码
每个模块都有一个名为name的内部变量,此变量会根据调用该模块不同的方式发生变化
如果此文件作为文件导入,则name的值为当前模块的名称,
如果此文件是直接执行不是被导入的,则name的值为name的这个字符串
最高级别的Python语句(没有缩进的)在模被导入时就会执行,无论是否真的需要执行 妥当的做法:除了那些真正需要执行的代码以外,所有的功能代码都通过函数建立,因此 仅在主程序模块中编写大量的顶级可执行代码 用于被导入的模块只应该存在较少的顶级执行代码 __name__指示模块应该如何被加载 如果模块是被导入的,__name__的值是模块名字 如果模块是直接执行,__name__的值是"__main__"
2016-07-10
第十一节: Python对象特性、比较及核心数据类型
Python程序中保存的所有数据都是围绕对象这个概念展开的
程序中存储所有数据都是对象
每个对象都有一个身份、一个类型和一个值
例如:school = “MoGe Linux”;
创建一个字符串对象,期身份是指向它在内存中所处位置的指钍(其在内存中的地址),而school就是引用这个具体位置的名称
对象的类型也称对象的类别,用于描述对象的内部表示及它支持的方法和操作。
创建特定类型的对象时,有时也将该对象称为该类型的实例
实例被创建后,其身份和类型就不可改变
如对象值是可修改的,则称为可变对象
如果对象的值不可修改,则称为不可变对象
如果某个对象包含对其它对象的引用,则将其称为容器
大多数对象都拥有大量特有的数据属性和方法
属性:与对象相关的值
方法:被调用时将在对象上执行某些操作的函数
使用点(.)运算符可以访问属性和方法
Python内置函数id()可以返回一个对象的身份,即该对象在内存中的位置 is运算符用于比较两个对象的身份 type用于返回一个对象的类型 对象类型本身也是一个对象,称为对象的类 该对象的定义是唯一的,且对某类型的所有实例都是相同的 所有类型对象都有一个指定的名称,可用于执行类型检查,如list、dict if a is b: statements if a == b statements if type(a) == type(b) statements
第十二节: Python核心数据类型及类型显示转换
核心数据类型
数字: int, long, float, complat, bool
字符: str, unicode
列表: list
字典: sict
完组: tuple
文件: file
其它类型: 集合(set),frozenset,类类型,None
其它文件典工具:pipes, fifos, sockets
类型转换: str(), repr()或format(): 以上三个函数可以将非字符型数据转换为字符串int(): 转换为整数float(): 转换为浮点数list(s): 转换字符串转换为列表 tuple(s): 将字符串转换为元组 set(s): 将字符串转换为集合 dict(d): 创建字典,其中d必须是(key,value)元素序列frozenset(s): 将字符串转换为不可变集合chr(x): 将整数转换为单个字符ord(x): 将"字符"转换为整数值hex(x): 将整数转换为16进制字符串bin(x): 将整数转换为2进制字符串 oct(x): 将整数转换为8进制字符串
第十三节: Python数据类型显式转换及数值类型
数字类操作:
Python使用5种数据类型: 布尔型、整型、长整型、浮点型和复数、所有数字类型均为不可变
数字操作
+、-、*、/、
x // y : 截断除法
x ** y : 乖方操作(x2)
x % y : 取模操作
-x: 一元减法
+x: 一元加法
比较运算: x << y 左移x >> y 右移x & y 按位与x | y 按位或x ^ y 按位异或~x 按位求返数字类型: Python的数字字面量:布尔型、整数类型、浮点数类型、复数 Ture:1 / False:0序列表示索引为非负整数的有序对象集合,包括字符串、列表和元组 字符串是字符的 列表和元组是做任意Python对象的序列字符和元组属于不可变序列,而列表则支持插入、删除和替换元素所有序列都支持迭代
第十四节: 序列类型详解之字符串
适用于所有序列的操作和方法: s[i]: 索引运算符 s[i:j]: 为切片运算符, s[i:j:stride]为扩展切片运算符 min(s)和max(s)只适用于能够对元素排序的序列 sum(s)只适用于数字序列 s[i] 返回一个序列的元素i s[i:j] 返回一个切片 s[i:j:stride] 返回一个扩展切片 lens(s) s中的元素数 min(s) s中的最小值 max(s) s中的最大值 sum(s [, initial]) s中各项的和 all(s) 检查s中的所有项是否为True any(s) 检查s中的任意项是否为True序列类型: 字符类型 字符串字面量: 把文本放入单引号和双引号或三引号中, 单引号和双引号不能换行,但三引号可以支持换行,可以用三个单引号或者三个双引号,但前后要保持一致 如果想支持unicode 例如: str1 = u"hello world"; 文档字串: 模块、类型函数的第一条语句为一个字符的话,该字符串将成为文档字符串,可以使用__doc__属性引用。 字符串的运算 索引运算: s[i] 切片运算:s[i:j] 扩展切片: s[i:j:stride]
第十五节: 序列类型详解之字符串
Python2 提供了两种字符串对象类型
字节字符串:字节(8bit数据)序列
Unicode字符串: Unicode字符(16bit数据)序列
Python可以使用32 bit整数保存Unicode字符,但此为可选特性
s.capitalize() 首字符变大写 s.index(sub[, start[,end]]) 找到指定字符串sub首次出现的位置,否则报错 s.join(t) 使用s作为分隔符连接序列t中的字符串 s.lower() 转换为小写形式 s.replace(old, new[, maxreplace]) 替换一个字符串 s.split([sep[, maxaplit]]) 使用sep作为分隔符对一个字符串进行划分,maxsplit是划分的最大次数 s.strip([chas]) 删掉chas开头和结尾的空白或字符 s.upper() 将一个字符串转换为大写形式
- 2016Python学习笔记之一
- python学习笔记之一
- python学习笔记之一
- python 学习笔记之一
- Python基础学习笔记之一
- python语言学习笔记之一
- python学习笔记之一:列表
- Python基础学习笔记之一
- Python学习笔记之一:Python的字符串
- python 3.0学习笔记之一------初识python
- Python学习笔记之一: 函数参数
- python 学习笔记之一开发环境搭建
- Python学习笔记之运算符之一
- 【Python学习笔记之一】基础篇
- Python 学习笔记之一——Python简介
- python笔记之一
- 自学python笔记之一
- Python学习笔记之一 文本文件的创建与显示
- 安装storm1.0.1后worker启动不起来 nimbus.log中显示executor循环not alive
- Android杂谈(7)搞一搞Fragment+官方API底部导航制作
- JSON拼接字符串
- schedule调度相关
- 基于电商的推荐系统看用户行为分析
- 2016Python学习笔记之一
- jstat使用方法
- ffmpeg处理RTMP流媒体的命令大全
- linux下安装nginx详细教程
- Camera的onPreviewFrame回调方法中图片帧数据data最后显示出现错位拼接的bug
- iframe高度自适应内容
- jquery 表单验证
- javascript学习之流程控制
- Android-DayNight-Mode 夜间模式的坑