Python学习手册
基础
概念
- 源码编译为字节码,解释器解释字节码
- CPython是python标准实现方式,Jython将源码编译为java字节码,运行在JVM上
- 优点:快速开发,灵活的核心数据类型,优美的缩进语法,垃圾回收
- 应用领域:测试框架,人工智能神经网络,自然语言分析,系统编成,图形界面
导入模块
- 模块文件名(.py)是python最小命名空间
- import
- import mymodule
- import模块的属性作用域属于模块
- 相同导入只运行一次,不支持热加载
- from import
- from mymodule import title
- 把属性/函数从mymodule模块复制到当前模块,会覆盖当前同名属性,在我看来这提供了OOP的继承概念
- 相同导入只运行一次,不支持热加载
- reload函数
- from imp import reload
- reload(mymodule)
- 每次都回重新导入模块,实现热加载
- reload不可传递,被重新导入的模块中导入的模块不会被重新导入
- reload不是那么优美,我们有更优美的选项(IDLE,系统命令行)来实现热加载和热部署
- exec
- exec(open('mymodule.py').read())
- 可以理解为将代码嵌入到当前,会覆盖同名属性
- 执行模块最新版本
- 太丑陋了,建议舍弃这种方式
IDLE
语法
数据类型
- python不会在表达式中转换数据类型,需要手动转换
- 数字,字符串和元组不可变
- 集合可以去重复
- 十进制数(固定精度浮点数),分数可用于解决浮点数的精度问题
- 序列操作
- S = 'Spam'
- S[0] : 'S'
- S[-1] : 'm'
- S[len(S)-1] : 'm'
- S[0:3] : 'Spa'
- S[:] : 'Spam'
- S*2 : 'SpamSpam'
- 列表解析表达式
- M = [[1,2,3],[4,5,6],[7,8,9]]
- [row[1] + 1 for row in M if row[1]%2 == 0] : [3,9]
- 解析表达式还可以用于创建列表,生成器,集合,字典这些对象,in成员关系测试,if测试
- 任何列表解析表达式都可以用for/if等代替,然而在python中请首先考虑更优美的列表解析表达式
- 可作用于多种类型的通用操作都是以内置函数或者表达式的形式出现
- python支持任何数据类型的嵌套组合
- 操作符
- X & Y : 交集
- X | Y : 并集
- X - Y : 差集
- 注意*号的使用
优美的缩进语法
- 终止行就是终止语句,;是特殊情况的第二选择
- 复合语句/代码块用:和缩进,缩进的结束就是代码块的结束
- 复合语句可以写在:后面作为一行。单行语句通过各种括号可以在多行书写
内置函数/模块函数/对象函数
常用
- print(s,b,a)
- dir(s)和 help(str.replace) : --help
- input('s')
- rang(3) : [0,1,2] 常与for循环合用
- zip(list1,list1)/zip() : 常与for循环合用,也可与dist合用构建字典
- enumerate(str) : 在循环中获取index
- next(collection)
- ite = iter(list) : 获取迭代器, ite.next()
- sorted(d)
- filter()
- reduce()
- join()
- tuple()
- yield
- zip,range,map,filter,字典的keys/values等都返回的是迭代器(3.0),而不是列表(2.6),这样节约了内存
- 像range对象这样需要用iter函数生成迭代器,支持多个迭代器同时使用,而其他直接可以迭代的对象不支持多个迭代器
数字/字符串操作
- math : 数字模块
- random :随机数模块
- re : 模式匹配/正则
- str(s)
- int(s)
- len(s)
- ord('\n\r\0') : ASCII码
- str.find('pa')
- str.replace('pa','xy')
- str.split(',')
- str.upper()
- str.isalpha()
- str.isdigit()
- str.rstrip()
- '%s, eggs %s' % ('a','b') 或者 '{0}, eggs {1}'.format('a','b')
列表/字典/元组/集合
- list(keys)
- list.append('a')
- list.pop(2) / del list[2] : 删除
- list.sort() : 排序
- list.reverse() : 反转
- dist.keys
- dist.get('a',0) : 默认0
- t.index('a')
- t.count('a')
- set('a')
- dist(zip(keys,values))
文件
- 模式: w/r
- f = open(path, 'w')
- f.write(s)
- f.close()
- text = f.read()
- f.readline()
- f.seek()
Python学习手册的更多相关文章
- 《Python学习手册》读书笔记
之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...
- 《Python学习手册》读书笔记【转载】
转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...
- 转载-《Python学习手册》读书笔记
转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html
- global语句(python学习手册422页)
# -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页) #实际上就是一个名为__builtin__的模块,但是必须 ...
- 《Python学习手册》(二)
<Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...
- 参考学习《Python学习手册(第4版)》高清中文PDF+高清英文PDF+源代码
看到第38章了,整体感觉解释详细,例子丰富:关于Python语言本身的讲解全面详尽而又循序渐进不断重复,同时详述语言现象背后的机制和原理:除语言本身,还包含编程实践和设计以及高级主题.边看边写代码.不 ...
- 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」
0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...
- 《Python学习手册 第五版》 -第13章 while循环和for循环
上一章已经讲过if条件语句,这章重点是循环语句:while.for 本章的重点内容 1.while循环 1)一般形式 2)break.continue.pass和循环的else 2.for循环 1)一 ...
- 《Python学习手册 第五版》 -第12章 if测试和语法规则
本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...
- 《Python学习手册 第五版》 -第11章 赋值、表达式和打印
上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的 ...
随机推荐
- Win10系列:JavaScript动画3
"交叉进出"动画也是Windows动画库中的动画效果."交叉进出"动画的动画效果是在应用程序界面上隐藏一个元素并同时在相同位置显示另一个元素的时候,被隐藏的元素 ...
- IO多路复用,select、poll、epoll 编程主要步骤
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- vue-12-渲染函数 & JSX
render() Vue.component('anchored-heading', { render: function (createElement) { return createElement ...
- 第三篇 功能实现(3) (Android学习笔记)
第三篇 功能实现(3) ●发一个广播和启动一个隐式的Intent非常像,那么它们之间有什么区别呢? Implicit Intents (sent via startActivity( )) and B ...
- 2.8 C++参数初始化表
参考:http://www.weixueyuan.net/view/6340.html 总结: 参数初始化表可以为任何数据成员进行初始化. 初始化const成员变量的唯一方法只有利用参数初始化表. 通 ...
- 7 Serial Configuration 理解 (一)
reference : ug470- 7 series config.pdf 7系列器件有5种配置接口,每种配置接口对应一种或者多种配置模式和总线位宽.配置时序相对于引脚的CCLK,即使在内部产生C ...
- Configuring Ubuntu for deep learning with Python in Ubuntu16.04
博主最近浏览到一个网站PyImageSearch,看到里面的项目还不错,就顺手配置一下环境,试着去跑下里面的模型. 首先,需要配置好需要运行模型的环境,其实主要的步骤分为以下三步: 1. 安装Ubun ...
- django的FBV和CBV的装饰器例子
备忘 def auth(func): def inner(request,*args,**kwargs): u = request.COOKIES.get('username111') if not ...
- SharePoint online Multilingual support - Settings
博客地址:http://blog.csdn.net/FoxDave This post will talk about how to enable sharepoint online site mul ...
- 12.Python爬虫利器三之Xpath语法与lxml库的用法
LXML解析库使用的是Xpath语法: XPath 是一门语言 XPath可以在XML文档中查找信息 XPath支持HTML XPath通过元素和属性进行导航 XPath可以用来提取信息 XPath比 ...