基础

概念

  • 源码编译为字节码,解释器解释字节码
  • 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. Promise,async/await解决回调地狱

    先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行. 写一个async 函数 as ...

  2. web技术栈中不可或缺的Linux技术

    Web技术最重要的载体便是服务器,服务器运行在公共的网络环境下,为广大的用户提供网页浏览.信息通讯.消息推送等服务,从最开始的硬件服务器到虚拟主机技术,再到虚拟化技术的出现和云概念的兴起,绝大部分都是 ...

  3. Java:将Excel数据导入到数据库(一眼就看会)

    所用Jar包 1. sqljdbc4.jar 连接数据库的Jar包(根据数据库的不同进行选择,我用的SqlServer2008) 2.Jxl.jar 访问Excel的Jar包 注意:支持以.xls结尾 ...

  4. linux文件查看

    查看目录 #查看文件 使用  ls  命令,加上参数 -l 表示查看详细信息,-a 表示查看包含隐藏文件在内的文件.也可使用通配符,*代表任意个字符,? 表示单个字符. $ ls ch*.doc #表 ...

  5. freemarker学习 (servlet + freemarker -> Struts2+freemarker -> springMVC+freemarker)

    什么是freemarker? freemarker类似于jsp,但不是jsp!怎么说呢?freemarker文件后缀是.ftl,它不像jsp本质是servlet,它将构建模板.解析模板.使用模板分离开 ...

  6. 线程安全的集合类、CopyOnWrite机制介绍(转)

    看过并发编程的书,这两种机制都有所了解,但不扎实其实.看到别人的博客描述的很精辟,于是转过来,感谢! 原文链接:https://blog.csdn.net/yen_csdn/article/detai ...

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

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

  8. Oracle 用户 表 表空间之间的关系和管理

    文献地址: https://blog.csdn.net/jmilk/article/details/51599260 https://www.cnblogs.com/roger112/p/768530 ...

  9. 2019.3.22 Week 12 : ZigBee and T/H chamber test

    Test purposes Remove backside center ventilation holes, pls help to conduct climatic chamber test of ...

  10. 八、启动linux内核并修改开机logo

    1. 编译并烧写linux内核 1)先准备好内核源码包urbetter-linux2.6.28-v1.0.tgz,输入命令:tar -zxvf urbetter-linux2.6.28-v1.0.tg ...