Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

Python Tutorial笔记

$
0
0
python Tutorial笔记

Python入门指南 中文版及官方英文链接:

Python入门指南 (3.5.2)
http://www.pythondoc.com/pythontutorial3/ Python Tutorial (3.5.2)
https://docs.python.org/3/tutorial/ 2.使用Python解释器 Control-D
文件结束符,让解释器以0状态码退出,相当于exit()命令。 Control-P
命令行编辑功能。 为源文件指定不同的编码: # -*- coding: encoding -*- 3.Python简介 交互模式中,最近一个表达式的值赋给变量 _ 。

在Python中:

字符串是序列类型,不可变。 列表是序列类型,可变。 4.深入Python流程控制 循环可以有一个 else子句 ;它在循环迭代完整个列表(对于for)或执行条件为 false (对于while)时执行,但循环被 break 中止的情况下不会执行。 break 语句 ,用于跳出最近的一级 for 或 while 循环。 continue 语句 ,表示循环继续执行下一次迭代。 docstring 文档字符串 :函数体的第一行语句可以是可选的字符串文本。 全局变量不能在函数中直接赋值(除非用 global 语句命名)。 Lambda表达式 创建一个匿名函数。 5.数据结构 列表对象方法: list.append(x) list.extend(L) list.insert(i, x) list.remove(x) # 删除链表中值为 *x* 的第一个元素。如果没有这样的元素,就会返回一个错误。 list.pop([i]) list.clear() list.index(x) list.count(x) list.sort() # 对链表中的元素就地进行排序。与sorted(list)有区别。 list.reverse() # 就地倒排链表中的元素。 list.copy() 要实现队列,使用 collections.deque,它为在首尾两端快速插入和删除而设计。 列表推导式: [expression for item in iterable if condition] 元组是序列,不可变。 集合(set)是一个无序不重复元素的集。 集合推导式: {expression for expression in iterable} 字典推导式: {key_expression: value_expression for expression in iterable} 字典方法: dict.keys() dict.values() dict.items() 6.模块 模块的搜索路径(sys.path):当前目录;PYTHONPATH;安装目录。 dir()函数:按模块名搜索模块定义,返回一个字符串类型的存储列表。 包: from package import module 7.输入和输出 repr()函数:将值转化为供解释器读取的形式。 字符串格式化方法:(1)str.format();(2)% 。 文件读写: f = open(filename, mode) # mode = "r", "w", "a", "r+", "rb"... f.write(string) f.tell # 返回文件对象在文件中的指针位置 f.seek(offset, from_what) # 移指针 # from_what 值为 0 表示自文件起始处开始,1 表示自当前文件指针位置开始,2 表示自文件末尾开始 f.close() with语句处理文件对象,文件用完会自动关闭。 json:
序列化:将Python 数据结构转换为字符串表示形式;
反序列化:从字符串表示形式重新构建数据结构。 import json json.dump(x, fileobject) x = json.load(fileobject) 8.错误和异常 异常处理: try...except...[else]...[finally] # else子句在未发生异常时执行。 # finally子句在任何情况都会执行。 raise 语句允许程序员强制抛出一个指定的异常。 9.类 命名空间 是从命名到对象的映射。 作用域 就是一个 Python 程序可以直接访问命名空间的正文区域。 如果没有使用global语法,其赋值操作总是在最里层的作用域(局部作用域)。global语句用以指明某个特定的变量为全局作用域,并重新绑定它。nonlocal 语句用以指明某个特定的变量为封闭作用域,并重新绑定它。 实例变量 用于对每一个实例都是唯一的数据; 类变量 用于类的所有实例共享的属性和方法。 函数 isinstance() 用于检查实例类型。 函数 issubclass() 用于检查类继承。 迭代器 :
iter() 函数返回一个定义了__next__()方法的迭代器对象。 生成器 :
Generator是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,需要返回数据的时候使用 yield 语句。 10.Python标准库概览 os 模块提供了很多与操作系统交互的函数。 import os os.getcwd() os.chdir('/server/accesslogs') os.system('mkdir today') glob 模块提供了一个函数用于从目录通配符搜索中生成文件列表: import glob glob.glob('*.py') 命令行参数sys.argv。 正则表达式模式匹配:re模块。 math 模块为浮点运算提供了对底层C函数库的访问。 random 提供了生成随机数的工具。 用于处理从 urls 接收的数据的 urllib.request。 发送电子邮件的 smtplib。 datetime 模块为日期和时间处理同时提供了简单和复杂的方法。 性能度量:timeit。 质量控制(测试):unittest 模块; doctest 模块。 11.标准库概览(2) 模板:string.Template类 >>> from string import Template >>> t = Template('${village}folk send $$10 to $cause.') # $为占位符(模板子类还可指定自定义占位符) >>> t.substitute(village='Nottingham', cause='the ditch fund') 'Nottinghamfolk send $10 to the ditch fund.' 十进制浮点数算法 decimal.Decimal,用于精确计算。 10.虚拟环境和包 用 pyvenv 创建虚拟环境: pyvenv tutorial-env # 创建一个 virtualenv source tutorial-env/bin/activate # 在 Unix 或者 MacOS 上激活虚拟环境 tutorial-env/Scripts/activate # windows上激活虚拟环境 pip常用指令: pip install novas pip install requests==2.6.0 pip install --upgrade requests pip uninstall requests pip show requests pip list pip freeze > requirements.txt # 生成一个类似需要安装的包的列表 pip install -r requirements.txt # 安装所有必须的包 13.接下来? Python 标准库
https://docs.python.org/3/library/ Python 语言参考
https://docs.python.org/3/reference/ 14. 交互式输入行编辑历史回溯 使用Tab补全 15.浮点数算法:争议和限制

0.1

即使打印的结果看上去是精确的1/10,真正存储的值是最近似的二进制小数。这是二进制浮点数的自然性质:它不是Python中的一个bug,也不是代码中的bug。

>>> .1 + .1 + .1 == .3 False 对于需要精确十进制表示的情况,可以尝试使用decimal模块,它实现的十进制运算适合会计方面的应用和高精度要求的应用。 fractions 模块支持另外一种形式的运算,它实现的运算基于有理数。


Viewing all articles
Browse latest Browse all 9596

Trending Articles