基础

概念

  • 源码编译为字节码,解释器解释字节码
  • 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. ueditor自定义额外参数

    <script>ue.ready(function () { ue.setContent('123456');//设置富文本编辑器初始化数据 ue.execCommand('serverp ...

  2. uImage是什么

    vmlinux是内核文件,zImage是一般情况下默认的压缩内核映像文件,压缩vmlinux,加上一段解压启动代码得到.而uImage则是使用工具mkimage对普通的压缩内核映像文件(zImage) ...

  3. C/S与B/S架构对比

    概述 在这个信息急剧膨胀的社会,我们不得不说人类正进入一个崭新的时代,那就是信息时代.信息时代的一个主要而显著的特征就是计算机网络的应用.计算机网络从最初的集中式计算,经过了Client/Server ...

  4. HTML中元素的position属性详解

    HTML中元素的position属性详解 转载自:https://blog.csdn.net/wangzunkuan/article/details/81540935   HTML中DOM元素有5种定 ...

  5. 读书笔记 C# Type类型与泛型有关的某些属性浅析

    IsGenericType 如果类型为泛型,则返回 true. GetGenericArguments 返回 Type 对象数组,这些对象表示为构造类型提供的类型变量,或泛型类型定义的类型参数.如果是 ...

  6. Docker小白从零入门实战

    环境:Centos 6.9 0.查看是否满足安装需求. 先检查服务器环境,docker要求操作系统CentOS6以上,kernel 版本必须2.6.32-431或更高,即>=CentOS 6.5 ...

  7. python的条件判断

    条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= ...

  8. Java语法基础学习DayNine(Java集合)

    一.Java集合 1.概述 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就需要对对象进行存储.另一方面,使用Array存储对象具有一些弊端,而Java集合就像一种容器, ...

  9. ylz简单增删改查实现

    首先用generator实现三个文档 分别是实体类(domain文件夹下) xml配置和dao层文件. resource文件夹下 注意位置事先写死了,要根据要求文档来定义位置. package com ...

  10. Building Tablet PC Applications ROB JARRETT

    Building Tablet PC Applications ROB JARRETT Tablet PC 开发,有需要PDF的留下邮箱 目录This text was added by using ...