python 简明教程笔记
1,python特点
python 注重的是如何解决问题,而不是语法和结构简单高效、扩展性
2,安装 python
python -V 检测是否安装pythonctrl+d 退出python提示符python是大小写敏感的
任何#号后面的都是注释
特殊形式的注释 #!,被称为组织行,这行的目的是告诉系统在执行程序时,应该运行哪个解释器
第一行的注释不能是中文
解释器中运行python
退出:linux ctrl + d window ctrl + z 然后 enter回车
帮助: help(str),在linux中,通过 env 设置pythondocs 环境变量,就可以使用 help 命令了
3,基本概念
字符串、常量、变量
4种类型的数:整数、长整数、浮点数和复数
单引号显示字符串,所有的空格、制表符都会显示
三引号显示多行的字符串,在三引号中可以自由使用单引号和双引号
单引号、双引号、三引号
在字符串中,行末单独的反斜杠 \ 表示字符串在下一行继续
自然字符串 r"" 或 R"",指示某些不需要如转义符那样的特别处理的字符串
python 允许处理unicode文本,只需要在字符串前面加上 u"中文"
字符串是不可变的
按字面意思自动连接,例如 'this is a' 'book is good?' 会连接为一句
python没有char数据类型,单引号和双引号意思一样,
可以用自然字符串处理正则表达式,要不会需要很多的反斜杠
4,基本概念
变量可以存储任何东西,变量是你计算机中存储信息的一部分内存
python变量标识符由字母数字下划线组成,首字母必须是下划线或者字母
变量可以处理不同类型的值,称为数据类型
python 标识符区分大小写
python是完全面向对象的,对于数字、字符串、函数都可以是对象,python把在程序中用到的任何东西都称为对象
使用变量时,只需要赋值,不需要声明变量或数据类型
逻辑行与物理行=====物理行是你在编写程序时所看见的,逻辑行是python看见的单个语句
默认的python希望每行都只有一条语句
强烈建议,每个物理行,只有一个逻辑行
如果你想在一个物理行显示多个逻辑行,可以使用分号; ,分号表示一个逻辑行的结束
如果逻辑行太长,可以使用明确的行连接, 使用反斜杠 \
python程序扩展名为.py
在解释器中运行: python program.py
python中行首的空白最重要,用来决定逻辑层的缩进层次,从而决定语句的分组
同一层次的语句必须有相同的缩进,每一组这样的语句称为一个块
何时你能够使用新块,在控制流中详细介绍
选择一种缩进风格使用,然后一贯的使用它
5,运算符和操作数
运算符 +、-、,一个表达式可以分解为运算符和操作数
http://www.kuqin.com/abyteofpython_cn/ch05s02.html
赋值运算符的运算是从右向左的
控制流
python中三种控制流语句 if、for、while,python中没有switch语句
raw_input 内建函数,提交一个字符串,等待用户输入,并给出提示
if elif else
while
while 语句有一个可选的else 从句
python 严格注重缩进和大小写,就连True和False 首字母必须大小,否则都是错误的
range 生成第一个数到第二个数之前的序列,第三个参数是步长
for i in range(1,5) 等于 for i in [1,2,3,4]
for i in [序列]
for in 循环语句,逐一使用队列中的每一项目
len 函数,获取字符串的长度 len(str)
break 终止循环
如果在循环中终止,else块将不执行
continue 跳出当前循环,继续下一次循环,使用于循环中
int 把字符串转换为整数,事实上int是一个类
6,函数
def sayHello(): 定义函数
def 关键字定义函数,
函数内部定义的变量是局部的,
有默认参数值必须在无默认参数值的后面声明,否则是无效的,也就是先声明无默认值形参,再声明有默认值的形参
global 用来声明全局变量,可以同时声明多个全局变量
如果一个函数有许多参数,可以通过命名为函数添加实参,也就是指定的值传递参数
没有返回值的return,等价于return None
pass 在python中表示一个空的语句块
docStrings 文档字符串
【文档字符串的惯例】是一个多行字符串,它的首行以大写字母开始,第二行是空行,从第三行开始时详细的描述 句号结尾。
print func.__doc__ 打印文档字符串
第二行是空行,从第三行开始是描述
建议自己所写的函数都要写文档字符串
7,模块
模块是一个包含了你定义的函数和变量的文件,为了在其他程序中重用模块,模块的文件名必须以.py为扩展名
学习使用标准库模块
字节编译的 .pyc 文件,使输入模块更快一些
import 模块名,告诉python,我们将要使用这个模块
sys.argv 包含了命令行参数的列表,列表的第一个参数总是脚本的名称
from .. import
直接使用argv变量到你的程序中,from sys import argv
避免使用 from..import,而使用import语句,因为这样可以使你的程序更加易读
模块的 __name__
假设我们只想在程序本身运行的时候,执行,而在被别的模块输入的时候不运行
每个python模块都有一个__name__,如果它是 '__main__' ,说明这个模块是被单独运行的
制造你自己的模块----每个python程序也是一个模块
内建的dir 函数
使用内建的dir函数列出模块定义的标识符,标识符有函数、类和变量
dir() 提供一个模块名,返回模块定义的名称列表 不提供参数时,提供模块名时,返回当前模块中定义的名称列表
del 删除一个变量
8,数据结构
数据结构是指程序可以处理的数据 和 结构
python有三种内建的数据结构:列表、元组、字典
列表 --处理一组有序项目的数据结构
list = ['apple','banner']
append方法 向列表末尾添加一个项目、sort方法,del 删除列表中的一个元素,指定列表,第几个元素
元组也是一个序列,元组和字符串一样是不可变的
元组通过圆括号中用逗号分割的项目定义
含有0个项目的元组 empty = ()
含有1个项目的元组 myone = (2,) 项目后必须跟一个逗号
元组最常用的用法是用在打印语句中---- %s 表
例如 zoo = ('apple','people')
字典,由键和值组成的序列,中间用冒号,一般称为json
d = {key1:value1,key2:value2}
字典是dict类的实例/对象
字典的items()方法,for in 循环
for name,address in ab.items(): 打印键和值
a in ab: 检测一个键值是否存在
序列
列表、元组、和字符串都是序列,序列的特点就是 索引操作符 和 切片操作符,
索引就是从序列中抓取特定项目
切片操作符让我们能够获取序列的一个切片,即一部分序列
变量名指定计算机中存储那个对象的内存,这被称作名称到对象的绑定
【序列的神奇:可以用相同的方法访问元组、列表和字符串】
根据索引取得序列中的值,可以是负数,-1 是最后一个元素
切片操作符 是 序列名后跟一个方括号,方括号中有一对可选的数字,数是可选的,冒号是必须的
冒号之前的数表示切片开始的位置,冒号之后的数表示到哪里结束,开始位置被包含在序列切片中,结束位置被包含在序列切片外
[:] 返回整个序列的拷贝
列表的赋值语句不创建拷贝,必须使用切片操作符list[:]来创建序列的拷贝
[:] 这种写法是拷贝当前对象,赋值的化是引用
字符串也是对象,在程序中使用的字符串是str类的对象
startswith() 测试字符串是否以给定字符串开始 name.startwith("war")
in 用来检验给定字符串是否为另一个字符串的一部分 a in name
find 找出给定字符串在另一个字符串中的位置,返回-1 表示找不到子字符串
join() 将序列用分隔符拼接的字符串 分隔符.join(序列)
python 备份程序
使用 os模块、time模块
time.strftime() 定制时间%Y%m%d%H%M%S
zip -q 表是zip命令安静的工作 -r 表示zip命令对目录递归的工作
os.path.exists 检验是否有以当前日期作为名称的目录
os.mkdir 创建目录
os.sep变量用法 根据操作系统给出目录分隔符,window \\ linux / ,具有可移植性
os.system() 运行命令 命令运行成功,返回0
最理想的创建备份的方法是使用 zipfile 和 tarfile
软件开发过程
1,什么(分析)
2,如何(设计)
3,编写(实施)
4,测试(测试与调试)
5,使用(实施或开发)
6,维护(优化)
9,面向对象
属于一个对象或类的变量被称为域,
域和方法合称为类的属性
类使用class创建,类的域和方法被列在一个缩进块中
对象本身 self
类的方法必须有一个额外的第一个参数名称 self
假如一个类为 MyClass 和这个类的实例 MyObject
python 调用对象方法 MyObject.method(arg1,arg2)
会由python自动转为 MyClass.method(MyObject, arg1, arg2) ,
__init__ 方法,对象初始化操作,类的对象被建立时,马上运行
__del__ 方法,对象消逝的时候被运行
def __init__(self)
def __del__(self)
类与对象的方法
两种类型的域:类的变量和对象的变量
类的变量由一个类的所有对象共享使用
对象的变量由类的每个实例拥有
__privatevar 私有变量
只想在类或对象中使用 应该以单下划线前缀
继承---通过继承,提高代码的重用性
class Children(Parent): 继承父类
python 不会自动继承基类的 constructor ,这里指__init__
__base__
输入/输出
使用file类的对象打开一个文件,file("open.txt","w")
'r' 读模式,'w' 写模式,'a' 追加模式
write() 方法写入文件
close 关闭文件,readline() 方法来读文件的每一行
储存器====储存和取储存
python提高的一个标准模块,称为pickle,可以持久的储存对象,完美无缺的取出来
还有另一个模块称为 cpickle,和pickle功能一样,比pickle快1000倍
import cpickle as p 使用更短的模块名
p.dump(filelist,f)
用储存器模块的dump函数,把对象储存到打开的文件中,这个过程称为储存
p.load(f)
使用 pickle模块的load函数的返回来取回对象,这个过程称为取储存
异常
错误是由错误处理器所做的工作
处理异常
try .. except
把可能引发错误的语句放入try中
把错误处理语句放入 except中
except 可以处理单一的错误与异常
如果没有给出错误或异常的名称,它会处理所有的错误和异常
引发异常:
使用raise语句引发异常,Error 或 Exception类
try..finally
在一个try块下,可以同时使用except从句和finally块
python 标准库
python标准库是随python附带安装的,包含大量及其有用的模块
sys模块包含系统对应的功能
os模块包含普遍的操作系统功能
os.name 显示你正在使用的平台
os.system 函数用来运行shell命令
os.path.split 函数返回一个路径的目录和文件名,返回元组
os.path.isfile() 检验给出的路径是否是一个文件
os.path.isdir() 检验给出的路径是否是一个目录
os.path.exists() 检验给出的路径真的存在
*********************************************************************************************************
软件开发过程
1,什么(分析)
2,如何(设计)
3,编写(实施)
4,测试(测试与调试)
5,使用(实施或开发)
6,维护(优化)
我想要一个可以为我的所有重要文件创建备份的程序
我们如何确定该备份哪些文件?备份保存在哪里?我们怎么样存储备份?
1,需要备份的文件和目录由一个列表指定。
2,备份应该保存在主备份目录中。
3,文件备份成一个zip文件。
4,zip存档的名称是当前的日期和时间。
5,我们使用标准的zip命令,它通常默认地随Linux/Unix发行版提供。
Windows用户可以使用Info-Zip程序。注意你可以使用任何地存档命令,只要它有命令行界面就可以了,那样的话我们可以从我们的脚本中传递参数给它。
python 简明教程笔记的更多相关文章
- 【笔记】Python简明教程
Python简明教程,此资源位于http://woodpecker.org.cn/abyteofpython_cn/chinese/ s=u'中文字符' #u表示unicode,使用u之后能正常显示中 ...
- 《Python简明教程》总结
Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 ...
- python中global的用法——再读python简明教程
今天看了知乎@萧井陌的编程入门指南,想重温一下 <python简明教程>,对global的用法一直不太熟练,在此熟练一下,并实践一下python中list.tuple.set作为参数的区别 ...
- python简明教程
Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介 pylogo. ...
- Python 简明教程 --- 3,Python 基础概念
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 控制复杂性是计算机编程的本质. -- Brian Kernighan 了解了如何编写第一个Pytho ...
- Python 简明教程 --- 2,第一个Python 程序
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那你肯定是用错方法了. -- Carig Zerouni 当你在自己的电脑上 ...
- Python 简明教程 --- 1,搭建Python 环境
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 人生苦短,我用Python. -- 龟叔T恤 Python 是一门解释型语言,所以要想运行Pytho ...
- Python 简明教程 --- 18,Python 面向对象
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 代码能借用就借用. -- Tom Duff 目录 编程可分为面向过程编程和面向对象编程,它们是两种不 ...
- Python 简明教程 --- 13,Python 集合
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果代码和注释不一致,那很可能两者都错了. -- Norm Schryer 目录 前几节我们已经介绍 ...
随机推荐
- JAVA 抛出与声明异常
在编程过程中,我们往往会遇到这种情况,在当前环境中无法解决,比如用户传入的参数错误,IO设备问题等.此时,就要从当前环境中抛出异常提交给上级来处理. 在JAVA语言中,使用throw关键字来抛出异常. ...
- 利用CMake生成动态或静态链接库工程
install解释: TARGETS版本的install命令 install(TARGETS targets... [EXPORT <export-name>] [[ARCHIVE|LIB ...
- 一起啃PRML - 1.2.4 The Gaussian distribution 高斯分布 正态分布
一起啃PRML - 1.2.4 The Gaussian distribution 高斯分布 正态分布 @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ ...
- SQL Server 2008设置 开启远程连接
SQL Server 2008默认是不允许远程连接的,sa帐户默认禁用的, 如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置: 1,SQL Server ...
- tomcat web容器中,调用jersey client端报错的处理
在web工程中,写main方法,运行ok. 发布到tomcat中后,报错. javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/r ...
- java基础(十四)集合(一)
这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...
- QT5.1在Windows下 出现QApplication: No such file or directory 问题的解决办法
QT5.0.1在Windows下 出现QApplication: No such file or directory 问题的解决办法 分类: 编程语言学习 软件使用 QT编程学习2013-03-07 ...
- 转载: pyExcelerator(Python操作Excel内库)API 文档
1.pyExcelerator 主要通过俩个Object操作Excel: Workbook 和Worksheet2.pyExcelerator 读取Excel文件 parase_xls(filenam ...
- 极客技术专题【007期】:jQuery初学者入门 - jQuery Event
日期:2013-8-19 来源:GBin1.com 技术专题介绍 专题:jQuery初学者入门[第三讲:jQuery Event] 分享人:极客标签技术编辑 -Lana (请站内关注分享人) 授课时 ...
- array_column php 函数
今天想从二维数组中取某个列成一维数组 结果发现 array_column需要php5.5支持才行 然后自己写了一个仿造版本的array_column 两种思路 1.直接遍历 取值给追加数组 返回 2. ...