think python Python思维——详细目录

           think  python Python思维
           
1 The way of the p rogram编程的方法
    1.1 The Python programming language Python编程语言
        interpreters  解释器
            interactive
                prompt
            script mode
                script
        compilers
    1.2 What is a program? 什么是程序?
    1.3 What is debugging? 什么是调试?
    1.4 Formal and natural languages形式语言和自然语言
    1.5 The first program第一个程序
    1.6 Debugging调试
    1.7 Glossary术语表
    1.8 Exercises
2 Variables, expressions and statements 变量、表达式和语句
    2.1 Values and types值和类型
    2.2 Variables变量
    2.3 Variable names and keywords变量名和关键字
    2.4 Operators and operands运算符和运算数
    2.5 Expressions and statements表达式和语句
    2.6 Interactive mode and script mode交互模式和脚本模式
    2.7 Order of operations运算的顺序
    2.8 String operations字符串运算
    2.9 Comments 注释
    2.10 Debugging调试
    2.11 Glossary术语表
    2.12 Exercises
    
3 Functions 函数27
    3.1 Function calls函数调用
        function 函数
        function call 函数调用
        argument 实参
            type(32) 函数名type 括号中的表达式被称为函数的实参
        return value 返回值 #函数接受实参并且返回一个结果        
    3.2 Type conversion functions 类型转换函数
            int(3.999)  #浮点数转换为整数,不舍入,截掉小数部分
            3
            int(-2.3)    
            -2
            float(32)    #整数或字符串转换为浮点数
            32.0
            float('3.12345')
            3.12345
            str(32)        #实参转换为字符串
            '32'
            str(3.12345)
            '3.12345'        
    3.3 Math functions数学函数
        module 模块
        import math 导入模块     #生成名为math导入模块对象
        module object 模块对象
        dot notation 点标记法    #访问其中一个函数须指出该模块名字及函数名,以.分割
    3.4 Composition组合
        #程序设计语言特征之一,将小块建筑材料组合compose的能力。
        #函数的实参可以是任何类型的表达式,包含算数运算符也行
    3.5 Adding new functions 增加新函数
        function definition 函数定义
        def print_lyrics(): 关键字
            #函数定义第一行称作函数头 header 其余部分称为函数体body,以:结尾,缩进
            #指明这是一个函数定义 ()表明该函数不接受任何实参
            >>> def print_ly():
                    print 'ok'
                    print 'day'
            >>> print print_ly
              #其值是函数对象function object
            >>> type(print_ly)
            
    3.6 Definitions and uses 定义和使用
        #函数定义:创建函数对象,函数内部语句直到被调用才会被执行,且函数定义没有任何输出
    3.7 Flow of execution 执行流程
        #函数调用在执行流程上绕弯,不是到下一条语句,而是跳入函数体,执行所有语句,回到离开位置
        #一个函数可以调用另一个函数,每次一个函数完成时,程序回到调用他的函数,到结尾时程序终止
    3.8 Parameters and arguments形参和实参
        parameters 形参 #在函数内部,实参被赋给形参的变量
            >>> def print_tw(bruce):  #此函数将实参赋给 bruce的形参,
                    print bruce       #当函数被调用时打印形参的值两次
                    print bruce          #此函数对任意能打印的值都有效
    3.9 Variables and parameters are local 变量和形参都是局部的
            #当你在函数内创建变量时,他是局部的(local),只存在函数内部
            #形参也是局部的
    3.10 Stack diagrams 栈图        #跟踪哪个变量能在哪用,展示每个变量的值,变量所属函数
        frame 框架
        
        
        traceback 回溯 #发生错误的程序文件,错误在哪一行,当时在执行的哪个函数,引起错误的代码行
                       #回溯中的函数顺序是栈图中的函数顺序,正在运行的函数位于底部
    
    3.11Fruitful functions and void functions 有返回值函数和无返回值函数
        Fruitful functions    有返回值函数 #执行动作,产生结果
        void functions    无返回值函数    #执行动作,不返回任何值
            #无返回值函数可能在屏幕上显示东西或有其他影响,但没有返回值
            #如果你试图将这个结果赋给一个变量,你获得的特殊的被称为None的值
                >>> print type(None)
                  #有他自己类型的特殊值
    3.12 Why functions? 为什么用函数?
        1.创建一个新的函数给你命名一组语句的机会,使得程序容易读和调试
        2.消除重复代码,程序更小,以后变动只变一处
        3.将一个长程序分解为函数允许你一次调试一部分然后将他们集成为一个可行的整体
        4.设计良好的函数对多个程序有用,可重复使用
    3.13 Importing with from 使用from导入
        import 导入 math  #获得名为math 的模块对象,包括pi等,但不能直接访问pi
        from math import pi #可直接访问pi print pi
        from math import * #用星号运算符从模块中导入所有东西
                           #代码简洁,但不同模块间名字或来自模块名字与自己的变量名可能冲突  
    3.14 Debugging 调试
        空格和制表符 的问题 ,尽量找自动缩进的编辑器,在运行程序前保存
    3.15 Glossary 术语表
        function 函数
        function definition 函数定义
        function object 函数对象
        header 函数头
        body 函数体
        parameter 形参
        local variable 局部变量
        return value 返回值
        fruitful function 有返回值函数
        void function 无返回值函数
        module 模块
        import statement 导入语句
        module object 模块对象
        dot notation 点标记法
        composition 组合
        flow of execution 执行流程
        stack diagram 栈图
        frame 框架
        traceback 回溯
    3.16 Exercises
4 Case study: interface design 案例学习:接口设计
    4.1 TurtleWorld
        package 包 #是一个模块 TurtleWorld 是Swampy的一个模块
            from swampy.TurbleWorld import *
            
            world = TurbleWorld()
            bob = Turble()
            print bob   #生成一个TurbleWorld赋给world,生成一个Turble赋给bob
                        #意味着bob指向一个如TurbleWorld中定义的Turble的实例instance
                        #实例instance:集合的一个成员,该Turble是所有可能Turble构成的集合的一个元素
                        
            wait_for_user
    4.2 Simple repetition简单的重复
        for 语句,有时候被称为循环(loop)
    4.3 Exercises练习
    4.4 Encapsulation封装
        将一部分代码包装在函数里被称作encapsulation封装
            #好处,把代码赋予一个名字,充当一种文档,可重用,直接调用不用粘贴
    4.5 Generalization泛化
        为函数增加一个形参被称作泛化genaralization#其使得函数更一般
            #将形参名放入实参列表合法,且有用
        keyword argument 关键字实参 #其包含了形参名作为关键字
            当你调用函数时,实参被赋给形参
    4.6 Interface design接口设计
        Interface接口 #函数的接口是一个如何使用他的摘要:形参、函数做什么、返回值
    4.7 Refactoring重构
        重新整理一个程序以改进函数接口和促进代码的重用性被称作——重构refactoring
    4.8 A development plan开发方案
        1.从写一个没有函数定义的小程序开始
        2.程序运转,封装进一个函数给他一个名字
        3.增加适当的形参泛化该函数
        4.重复1-3步,直到有一些可运转的函数,拷贝和粘贴代码以避免重新键入和调试
        5.找机会重构改进程序,在多个地方有相似代码,可将其分解到一个合适的函数中
    4.9 docstring文档字符串
        docstring文档字符串,位于函数开始的字符串,解释函数的接口
    4.10 Debugging调试
        precondition先决条件 #在函数开始执行前被假设为正确的
        postconditions后置条件 #函数结束时的条件,函数预期效果和任何侧面效果
    4.11 Glossary术语表
        instance 实例
        loop 循环
        encapsulation 封装
        generalization 泛化
        keyword argument 关键字实参
        interface 接口
        refactoring 重构
        development plan 开发方案
        docstring文档字符串
        precondition 先决条件
        postcondition 后置条件
        
    4.12 Exercises
    Contents xv
 
5 Conditionals and recursion 条件和递归
    5.1 Modulus operator求余运算符
    5.2 Boolean expressions布尔表达式
    5.3 Logical operators逻辑运算符
    5.4 Conditional execution有条件的执行
    5.5 Alternative execution二选一执行
    5.6 Chained conditionals链式条件
    5.7 Nested conditionals嵌套条件
    5.8 Recursion递归
    5.9 Stack diagrams for recursive functions递归函数栈图
    5.10 Infinite recursion无限递归
    5.11 Keyboard input键盘输入
    5.12 Debugging调试
    5.13 Glossary 术语表
    5.14 Exercises
6 Fruitful functions 有返回值的函数
    6.1 Return values返回值
    6.2 Incremental development增量式开发
    6.3 Composition组合
    6.4 Boolean functions布尔函数
    6.5 More recursion更多的递归
    6.6 Leap of faith 信心的飞跃
    6.7 One more example一个更多的例子
    6.8 Checking types检查类型
    6.9 Debugging调试
    6.10 Glossary 术语表
    6.11 Exercises
    xvi Contents
7 Iteration 迭代87
    7.1 Multiple assignment多次赋值
    7.2 Updating variables更新变量
    7.3 The while statement while语句
    7.4 break
    7.5 Square roots平方根
    7.6 Algorithms算法
    7.7 Debugging调试
    7.8 Glossary术语表
    7.9 Exercises
8 Strings 字符串97
    8.1 A string is a sequence字符串是一个序列
    8.2 len
    8.3 Traversal with a for loop 使用for循环遍历
    8.4 String slices字符串切片
    8.5 Strings are immutable字符串是不可变的
    8.6 Searching搜索
    8.7 Looping and counting循环和计数
    8.8 String methods字符串方法
    8.9 The in operator in运算符
    8.10 String comparison字符串比较
    8.11 Debugging调试
    8.12 Glossary 术语
    8.13 Exercises
9 Case study: word play 案例分析:word play 
    9.1 Reading word lists读取单词列表
    9.2 Exercises习题
    9.3 Search 搜索
    9.4 Looping with indices使用索引的循环
    9.5 Debugging调试
    9.6 Glossary 术语表
    9.7 Exercises
    Contents xvii
10 Lists 列表
    10.1 A list is a sequence列表是一个序列
    10.2 Lists are mutable列表是可变的
    10.3 Traversing a list遍历一个列表
    10.4 List operations列表运算
    10.5 List slices列表切片
    10.6 List methods列表方法
    10.7 Map, filter and reduce映射、过滤和削减
    10.8 Deleting elements删除元素
    10.9 Lists and strings列表和字符串
    10.10 Objects and values 对象和值
    10.11 Aliasing别名
    10.12 List arguments列表实参
    10.13 Debugging调试
    10.14 Glossary术语表
    10.15 Exercises
11 Dictionaries 字典
    11.1 Dictionary as a set of counters字典作为计数器集合
    11.2 Looping and dictionaries循环和字典
    11.3 Reverse lookup逆向查找
    11.4 Dictionaries and lists字典和列表
    11.5 Memos 备忘录
    11.6 Global variables全局变量
    11.7 Long integers长整数
    11.8 Debugging调试
    11.9 Glossary 术语表
    11.10 Exercises
    xviii Contents
12 Tuples 元组
    12.1 Tuples are immutable元组是不可变的
    12.2 Tuple assignment元组赋值
    12.3 Tuples as return values元组作为返回值
    12.4 Variable-length argument tuples变长实参元组
    12.5 Lists and tuples列表和元组
    12.6 Dictionaries and tuples字典和元组
    12.7 Comparing tuples元组比较
    12.8 Sequences of sequences序列的序列
    12.9 Debugging调试
    12.10 Glossary 术语表
    12.11 Exercises
13 Case study: data structure selection 案例学习:数据结构选择
    13.1 Word frequency analysis 词频分析
    13.2 Random numbers 随机数
    13.3 Word histogram单词直方图
    13.4 Most common words最常用单词
    13.5 Optional parameters可选形参
    13.6 Dictionary subtraction字典差集
    13.7 Random words 随机单词
    13.8 Markov analysis马尔科夫分析
    13.9 Data structures数据结构
    13.10 Debugging调试
    13.11 Glossary 术语表
    13.12 Exercises
14 Files 文件
    14.1 Persistence持久化
    14.2 Reading and writing读与写
    14.3 Format operator格式化操作符
    14.4 Filenames and paths文件名与路径
    Contents xix
    14.5 Catching exceptions捕捉异常
    14.6 Databases 数据库
    14.7 Pickling
    14.8 Pipes 管道
    14.9 Writing modules编写模块
    14.10 Debugging调试
    14.11 Glossary术语表
    14.12 Exercises
15 Classes and objects 类和对象
    15.1 User-defined types用户自定义类型
    15.2 Attributes属性
    15.3 Rectangles 矩形
    15.4 Instances as return values实例作为返回值
    15.5 Objects are mutable对象是可变的
    15.6 Copying 复制
    15.7 Debugging调试
    15.8 Glossary术语表
    15.9 Exercises练习
16 Classes and functions 类和函数
    16.1 Time 
    16.2 Pure functions纯函数
    16.3 Modifiers 过程
    16.4 Prototyping versus planning原型vs 计划
    16.5 Debugging调试
    16.6 Glossary术语表
    16.7 Exercises练习
    xx Contents
17 Classes and methods 类和方法
    17.1 Object-oriented features面向对象的特性
    17.2 Printing objects打印对象
    17.3 Another example一个范例
    17.4 A more complicated example一个更复杂的例子
    17.5 The init method init方法
    17.6 The __str__ method __str__方法
    17.7 Operator overloading运算符重载
    17.8 Type-based dispatch类型分发
    17.9 Polymorphism多态
    17.10 Debugging调试
    17.11 Interface and implementation接口和实现
    17.12 Glossary术语表
    17.13 Exercises练习
18 Inheritance继承237
    18.1 Card objects卡牌对象
    18.2 Class attributes类属性
    18.3 Comparing cards比较大小
    18.4 Decks一副牌
    18.5 Printing the deck打印一副牌
    18.6 Add, remove, shuffle and sort添加,移除,洗牌和排序
    18.7 Inheritance继承
    18.8 Class diagrams 类图
    18.9 Debugging调试
    18.10 Data encapsulation数据封装
    18.11 Glossary术语表
    18.12 Exercises练习
    Contents xxi
19 Case study: Tkinter 案例学习:Tkinter 
    19.1 GUI
    19.2 Buttons and callbacks按钮和回调函数
    19.3 Canvas widgets画布组件
    19.4 Coordinate sequences坐标序列
    19.5 More widgets更多组件
    19.6 Packing widgets打包组件
    19.7 Menus and Callables 菜单和可调用对象
    19.8 Binding 绑定
    19.9 Debugging调试
    19.10 Glossary术语表
    19.11 Exercises练习
A Debugging 调试
A.1 Syntax errors语法错误
A.2 Runtime errors运行时错误
A.3 Semantic errors语义错误
B Analysis of Algorithms算法分析
B.1 Order of growth增长的阶数
B.2 Analysis of basic Python operations基本Python运算的分析
B.3 Analysis of search algorithms搜索算法分析
B.4 Hashtables 哈希表
C Lumpy 
C.1 State diagram 状态图
C.2 Stack diagram栈图
C.3 Object diagrams 对象图
C.4 Function and class objects函数和类对象
C.5 Class Diagrams 类图
xxii Contents

转载于:https://www.cnblogs.com/chenmogaoyuan/p/7240580.html

你可能感兴趣的:(think python Python思维——详细目录)