基础

概念

  • 源码编译为字节码,解释器解释字节码
  • 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. linux系统用户和组管理

    用户和组管理 Linux是多用户多任务的网络操作系统,作为网络管理员,掌握用户的组的创建与管理至关重要. 学习要点: 了解用户和组的群的配置文件. 熟悉掌握Linux下用户的创建和维护管理. 熟悉掌握 ...

  2. ueditor自定义额外参数

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

  3. Java反射《四》获取方法

    package com.study.reflect; import java.lang.reflect.InvocationTargetException; import java.lang.refl ...

  4. bzoj1935

    题解: x升序排序 y离散化+树状数组 代码: #include<bits/stdc++.h> using namespace std; ; inline int read() { ,f= ...

  5. RabbitMQ Dead Lettering(死信)

    死信,顾名思义,就是死掉的消息,死掉的消息是会被一般的队列丢弃的.如果这些消息很重要,而我们又需要,怎么办?凡事都有一个退路,现在就有一种方法可将这些死信消息存下来,那就是DLX(Dead Lette ...

  6. 《Python》网络编程之黏包

    黏包 一.黏包现象 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包. server端 import socket sk = s ...

  7. Xcode清理存储空间

    文章来自 枣泥布丁 http://www.cocoachina.com/ios/20170711/19814.html 请针对性的选择删除 移除 Xcode 运行安装 APP 产生的缓存文件(Deri ...

  8. java中的package

    java中用于存放源文件的文件夹叫做包package package中可以有源文件也可以由其他包. package的“全限定名”不是从磁盘的根目录开始的,而是从源代码的根目录开始的,以点号“.”作为分 ...

  9. SQL-8 找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示

    题目描述 找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示CREATE TABLE `salaries` (`emp_n ...

  10. 玩转X-CTR100 l STM32F4 l RNG硬件随机数发生器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 STM32F4硬件随 ...