基础

概念

  • 源码编译为字节码,解释器解释字节码
  • CPython是python标准实现方式,Jython将源码编译为java字节码,运行在JVM上
  • 优点:快速开发,灵活的核心数据类型,优美的缩进语法,垃圾回收
  • 应用领域:测试框架,人工智能神经网络,自然语言分析,系统编成,图形界面

导入模块

  • 模块文件名(.py)是python最小命名空间
  • import
    1. import mymodule
    2. import模块的属性作用域属于模块
    3. 相同导入只运行一次,不支持热加载
  • from import
    1. from mymodule import title
    2. 把属性/函数从mymodule模块复制到当前模块,会覆盖当前同名属性,在我看来这提供了OOP的继承概念
    3. 相同导入只运行一次,不支持热加载
  • reload函数
    1. from imp import reload
    2. reload(mymodule)
    3. 每次都回重新导入模块,实现热加载
    4. reload不可传递,被重新导入的模块中导入的模块不会被重新导入
    5. reload不是那么优美,我们有更优美的选项(IDLE,系统命令行)来实现热加载和热部署
  • exec
    1. exec(open('mymodule.py').read())
    2. 可以理解为将代码嵌入到当前,会覆盖同名属性
    3. 执行模块最新版本
    4. 太丑陋了,建议舍弃这种方式

IDLE

语法

数据类型

  • python不会在表达式中转换数据类型,需要手动转换
  • 数字,字符串和元组不可变
  • 集合可以去重复
  • 十进制数(固定精度浮点数),分数可用于解决浮点数的精度问题
  • 序列操作
    1. S = 'Spam'
    2. S[0] : 'S'
    3. S[-1] : 'm'
    4. S[len(S)-1] : 'm'
    5. S[0:3] : 'Spa'
    6. S[:] : 'Spam'
    7. S*2 : 'SpamSpam'
  • 列表解析表达式
    1. M = [[1,2,3],[4,5,6],[7,8,9]]
    2. [row[1] + 1 for row in M if row[1]%2 == 0] : [3,9]
    3. 解析表达式还可以用于创建列表,生成器,集合,字典这些对象,in成员关系测试,if测试
    4. 任何列表解析表达式都可以用for/if等代替,然而在python中请首先考虑更优美的列表解析表达式
  • 可作用于多种类型的通用操作都是以内置函数或者表达式的形式出现
  • python支持任何数据类型的嵌套组合
  • 操作符
    1. X & Y : 交集
    2. X | Y : 并集
    3. 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学习手册的更多相关文章

  1. 《Python学习手册》读书笔记

    之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...

  2. 《Python学习手册》读书笔记【转载】

    转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...

  3. 转载-《Python学习手册》读书笔记

    转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html

  4. global语句(python学习手册422页)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页) #实际上就是一个名为__builtin__的模块,但是必须 ...

  5. 《Python学习手册》(二)

    <Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...

  6. 参考学习《Python学习手册(第4版)》高清中文PDF+高清英文PDF+源代码

    看到第38章了,整体感觉解释详细,例子丰富:关于Python语言本身的讲解全面详尽而又循序渐进不断重复,同时详述语言现象背后的机制和原理:除语言本身,还包含编程实践和设计以及高级主题.边看边写代码.不 ...

  7. 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

    0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...

  8. 《Python学习手册 第五版》 -第13章 while循环和for循环

    上一章已经讲过if条件语句,这章重点是循环语句:while.for 本章的重点内容 1.while循环 1)一般形式 2)break.continue.pass和循环的else 2.for循环 1)一 ...

  9. 《Python学习手册 第五版》 -第12章 if测试和语法规则

    本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...

  10. 《Python学习手册 第五版》 -第11章 赋值、表达式和打印

    上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的 ...

随机推荐

  1. 【性能测试工具ab】ab工具使用

    1.在安装了apache服务器后,或者wampserver后,在bin目录下,有一个ab.exe文件 2.使用,进入ab.exe所在的文件夹 3.ab -c   10 -n  1000     htt ...

  2. 泛型算法,排序的相关操作,lower_bound、upper_bound、equal_range

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  3. Eclipse界面简介

    下载安装完成后,Eclipse的界面如下: (6)为eclipse的perspective(视图方案)由于安装的是for Java development的eclipse,故视图界面默认 为使用Jav ...

  4. 【Linux优化】Linux安装之后的优化

    yum source configmv /etc/yum.repos.d/CentOS-Base.repo{,.bkp} wget -O /etc/yum.repos.d/CentOS-Base.re ...

  5. jdk,jre和jvm

    JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库 JRE是Java Runtime En ...

  6. 强化学习3-蒙特卡罗MC

    之前讲到强化学习可以用马尔科夫决策过程来描述,通常情况下,马尔科夫需要知道  {S A P R γ},γ是衰减因子,那为什么还需要蒙特卡罗呢? 首先什么是蒙特卡罗? 蒙特卡罗实际上是一座赌城的名字,蒙 ...

  7. countdownlatch 和 CyclicBarrier 和 Semaphore

    cdl用的是aqs,共享的是aqs那个volatile的state,阻塞线程列表用的也是aqs的 cb用的是reentrantlock+condition,当然rel用的也是aqs不过不同的是用的是互 ...

  8. 20165214 实验二 Java面向对象程序设计

    一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:朱文远 学号:20165214 指导教师:娄嘉鹏 实验日期:2018年4月16日 实验时间:13:45 - 15:25 实验序号:二 ...

  9. L266 作文

     With the rapid development of modem society, an increasing number of people are concerned about the ...

  10. PMS5003ST传感器

    5003ST传感器已经收到,准备开始DIY PM2.5检测仪       一款可以同时监测空气中颗粒物浓度.甲醛浓度及温湿度的三 合一传感器.其中颗粒物浓度的监测基于激光散射原理,可连续采集并计算单位 ...