Python Tutorial笔记

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

2.使用Python解释器

  • Control-D

    文件结束符,让解释器以0状态码退出,相当于exit()命令。
  • Control-P

    命令行编辑功能。
  • 为源文件指定不同的编码:
  1. # -*- coding: encoding -*-

3.Python简介

  • 交互模式中,最近一个表达式的值赋给变量_

在Python中:

  • 字符串是序列类型,不可变。
  • 列表是序列类型,可变。

4.深入Python流程控制

  • 循环可以有一个else子句;它在循环迭代完整个列表(对于for)或执行条件为 false (对于while)时执行,但循环被 break 中止的情况下不会执行。
  • break 语句,用于跳出最近的一级 for 或 while 循环。
  • continue 语句,表示循环继续执行下一次迭代。
  • docstring 文档字符串:函数体的第一行语句可以是可选的字符串文本。
  • 全局变量不能在函数中直接赋值(除非用 global 语句命名)。
  • Lambda表达式 创建一个匿名函数。

5.数据结构

  • 列表对象方法:
  1. list.append(x)
  2. list.extend(L)
  3. list.insert(i, x)
  4. list.remove(x) # 删除链表中值为 *x* 的第一个元素。如果没有这样的元素,就会返回一个错误。
  5. list.pop([i])
  6. list.clear()
  7. list.index(x)
  8. list.count(x)
  9. list.sort() # 对链表中的元素就地进行排序。与sorted(list)有区别。
  10. list.reverse() # 就地倒排链表中的元素。
  11. list.copy()
  • 要实现队列,使用 collections.deque,它为在首尾两端快速插入和删除而设计。
  • 列表推导式:
  1. [expression for item in iterable if condition]
  • 元组是序列,不可变。
  • 集合(set)是一个无序不重复元素的集。
  • 集合推导式:
  1. {expression for expression in iterable}
  • 字典推导式:
  1. {key_expression: value_expression for expression in iterable}
  • 字典方法:
  1. dict.keys()
  2. dict.values()
  3. dict.items()

6.模块

  • 模块的搜索路径(sys.path):当前目录;PYTHONPATH;安装目录。
  • dir()函数:按模块名搜索模块定义,返回一个字符串类型的存储列表。
  • 包:
  1. from package import module

7.输入和输出

  • repr()函数:将值转化为供解释器读取的形式。
  • 字符串格式化方法:(1)str.format();(2)% 。
  • 文件读写:
  1. f = open(filename, mode)
  2. # mode = "r", "w", "a", "r+", "rb"...
  3. f.write(string)
  4. f.tell # 返回文件对象在文件中的指针位置
  5. f.seek(offset, from_what) # 移动指针
  6. # from_what 值为 0 表示自文件起始处开始,1 表示自当前文件指针位置开始,2 表示自文件末尾开始
  7. f.close()
  • with语句处理文件对象,文件用完会自动关闭。
  • json:

    序列化:将Python 数据结构转换为字符串表示形式;

    反序列化:从字符串表示形式重新构建数据结构。
  1. import json
  2. json.dump(x, fileobject)
  3. x = json.load(fileobject)

8.错误和异常

  • 异常处理:
  1. try...except...[else]...[finally]
  2. # else子句在未发生异常时执行。
  3. # finally子句在任何情况都会执行。
  • raise 语句允许程序员强制抛出一个指定的异常。

9.类

  • 命名空间是从命名到对象的映射。
  • 作用域 就是一个 Python 程序可以直接访问命名空间的正文区域。
  • 如果没有使用global语法,其赋值操作总是在最里层的作用域(局部作用域)。global语句用以指明某个特定的变量为全局作用域,并重新绑定它。nonlocal 语句用以指明某个特定的变量为封闭作用域,并重新绑定它。
  • 实例变量用于对每一个实例都是唯一的数据;类变量用于类的所有实例共享的属性和方法。
  • 函数 isinstance() 用于检查实例类型。
  • 函数 issubclass() 用于检查类继承。
  • 迭代器

    iter() 函数返回一个定义了__next__()方法的迭代器对象。
  • 生成器

    Generator是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,需要返回数据的时候使用 yield 语句。

10.Python标准库概览

  • os 模块提供了很多与操作系统交互的函数。
  1. import os
  2. os.getcwd()
  3. os.chdir('/server/accesslogs')
  4. os.system('mkdir today')
  • glob 模块提供了一个函数用于从目录通配符搜索中生成文件列表:
  1. import glob
  2. glob.glob('*.py')
  • 命令行参数sys.argv。
  • 正则表达式模式匹配:re模块。
  • math 模块为浮点运算提供了对底层C函数库的访问。
  • random 提供了生成随机数的工具。
  • 用于处理从 urls 接收的数据的 urllib.request。
  • 发送电子邮件的 smtplib。
  • datetime 模块为日期和时间处理同时提供了简单和复杂的方法。
  • 性能度量:timeit。
  • 质量控制(测试):unittest 模块; doctest 模块。

11.标准库概览(2)

  • 模板:string.Template类
  1. >>> from string import Template
  2. >>> t = Template('${village}folk send $$10 to $cause.') # $为占位符(模板子类还可指定自定义占位符)
  3. >>> t.substitute(village='Nottingham', cause='the ditch fund')
  4. 'Nottinghamfolk send $10 to the ditch fund.'
  • 十进制浮点数算法 decimal.Decimal,用于精确计算。

10.虚拟环境和包

  • pyvenv创建虚拟环境:
  1. pyvenv tutorial-env # 创建一个 virtualenv
  2. source tutorial-env/bin/activate # 在 Unix 或者 MacOS 上激活虚拟环境
  3. tutorial-env/Scripts/activate # Windows上激活虚拟环境
  • pip常用指令:
  1. pip install novas
  2. pip install requests==2.6.0
  3. pip install --upgrade requests
  4. pip uninstall requests
  5. pip show requests
  6. pip list
  7. pip freeze > requirements.txt # 生成一个类似需要安装的包的列表
  8. pip install -r requirements.txt # 安装所有必须的包

13.接下来?

14. 交互式输入行编辑历史回溯

  • 使用Tab补全

15.浮点数算法:争议和限制

  • 0.1

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

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

Python Tutorial笔记的更多相关文章

  1. python机器学习笔记:EM算法

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...

  2. Web Scraping with Python读书笔记及思考

    Web Scraping with Python读书笔记 标签(空格分隔): web scraping ,python 做数据抓取一定一定要明确:抓取\解析数据不是目的,目的是对数据的利用 一般的数据 ...

  3. [Notes] Learn Python2.7 From Python Tutorial

    I have planed to learn Python for many times. I have started to learn Python for many times . Howeve ...

  4. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  5. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  6. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  7. emacs tutorial笔记

    emacs tutorial笔记---基本控制 C-字母 表示一起按下Ctrl和字母/ 表示“或者”的意思 C - ctrlM - alt C-p C-b   C-f   C-n C-l 当前行放中央 ...

  8. python datetime笔记

    python datetime笔记 http://mint-green.diandian.com/post/2011-09-09/4892024 获取当前时间,并通过字符串输出. 格式为:%Y-%m- ...

  9. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

随机推荐

  1. python 各个地方导航(方便查询,持续更新!)

    老男孩python全栈开发教程,武沛齐老师的知识点!:戳这里>>> 老男孩python全栈开发教程,linhaifeng老师的知识点!:戳这里>>> 老男孩pyth ...

  2. 洛谷P1464 Function

    对于一个递归函数w(a,b,c)w(a,b,c) 如果a \le 0a≤0 or b \le 0b≤0 or c \le 0c≤0就返回值11. 如果a>20a>20 or b>20 ...

  3. vue+ElementUI 日期选择器 获取时间戳

    <div class="block"> <span class="demonstration">daterange</span&g ...

  4. 如何使用qtp12 utf进行功能测试

    首先,按照本博客的安装教程走的,右键管理员运行 接下来点击继续,这个界面只需要勾选到web即可 点击ok,开始运行 进入到主界面之后,file新建一个测试. 可以修改路径等等 点击create之后,出 ...

  5. 解决ubuntu下wordpress设置固定链接后文章无法打开

    1.首先查看是否开启了Apache的rewrite功能,新建一个phpinfo的php文档 <?php phpinfo(); ?> 保存为info.php文件 放在www目录下并用浏览器打 ...

  6. STM32F4——GPIO基本应用及复用

    IO基本应用 一.IO基本结构: 针对STM32F407有7组IO.分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口. 当中IO口的基本结构例如以下: 二.工作方式: ST ...

  7. swing Jlable中存放变量显示问题

    java swing 学习 在做一个ATM机系统小案例中.碰到JLable中存放变量,变量发生改变.而JLable中还是显示原来的值,网上寻找答案,用updateUI()和revalidate();方 ...

  8. 【cl】测试用例【文本框-电子邮箱】

    电子邮箱控件用例: 1.只输入字母,如:abc 2.只输入数字,如:123 3.空白.空格或回车等 4.特殊的字符,如:¥,$等 5.上述四种的组合 6.不正确的邮箱组合: ①.abc@sohucom ...

  9. HDU 5380 Travel with candy 单调队列

    pid=5380">链接 题解链接:http://www.cygmasot.com/index.php/2015/08/16/hdu_5380 题意: n C 一条数轴上有n+1个加油 ...

  10. 面向对象的三大特性之二——继承(含super的使用)

    1.继承的语法:class 子类 extends 父类 例1: class Person { int age; String name; public void print1() { System.o ...