目录:

1 认识Python:Python的特点、安装、开发环境搭建

2 共享代码:连接共享社区、语法、函数、技巧

3 文件与异常:调试、处理错误、迭代、改进、完善

4 持久存储:文件存储、读写

5 推导数据:处理数据、格式、编码、解码、排序

6 定制数据对象:数据结构自定义

7 Web开发:开发Web应用

8 移动应用开发:自动处理应用

9 管理数据:应用程序扩展(从Web接收数据)

10 扩展Web应用之动真格的

11 处理复杂性:数据加工和应用定位

12 补充和完善:问题分析、测试、拓展、等

1 认识Python:Python的特点、安装、开发环境搭建

  关于一个概念: 元认知

         乍一看,就像是大脑的神经元,

         再一看,其实讲的确实和大脑的记忆有关,

         它强调自我暗示:这么书很重要,掌握它很重要,对,就是这样。。。

         他们是这么做的:所见即所得,

         通过使用大量的图片,简单、清晰的用图形来说明情况,

         还是用了不同形式的重复说明,以便加强记忆的效果,

         没错,还有:交谈式风格、实践活动、多种学习模式、左右脑互用、不断练习。。。

         感觉下了很多功夫,嘿嘿~

           不过在我看来,最重要的还是坚持和实践吧?

  这本书是面向Python3的,所以......开始吧!

  Python的特点之列表:

    共同处:语句、表达式、操作符、函数、模块、方法和类等;

    不同处:列表

  安装Python3

    开发环境:VMware虚拟机——>ubuntu16 64位

    打开Terminal,输入python3 -V,查看安装的python3版本。(关于ubuntu安装python可以用sudo apt-get install python)

  关于Python的IDLE(Integrated Development GUI Environment即:Python的可视化集成开发环境):

    在Terminal下使用python3,加回车来启动IDLE,

    基本功能有:编辑代码、调试、运行等,

    启动后,在>>>后输入:

    print("hello world~"),回车,

    屏幕输出hello world~

    此外,IDLE可以帮助自动缩进代码行,比较智能吧~

    TAB键的作用:缩进,提示,建议等;

       Ctrl+P:往后一步,相当于:Previous;

    Ctrl+N:往前一步,相当于:Next;

  创建简单的Python列表:

  实例:

    The Holy Crail

    The Life of Brian

    The Meaning of Life    

        Python:

    movies = ["The Holy Crail",

          “The Life of Brian”,

          “The Meaning of Life”]

    注:Python的变量标识符没有类型。

      BIF:build-in functions,即:IDLE内置函数。

    列表就像数组,Python的解释器会在内存中创建一个类似数组的数据结构来存储数据,放到一个堆栈中(FIFO)。

    可以用print(movies[0])这样的语句来访问列表的数据,当然,这里是列表movies的第一项(下标从0开始)。

    此外,还可以通过print(movies)直接输出整个列表,可以用print(len(movies))输出列表项的个数,

         可以用movies.extend(["hero","007","KongFu"])扩充列表,

            可用movies.append(“Gill”),在列表末尾增加一个数据项,

        用movies.pop(),在列表末尾删除一个数据项,

        用movies.remove("hero")来删除一个特定的数据项,

        用movies.insert(0,"Superman")在特定位置前增加一个数据项。

    在列表中混合其他数据:在Python的列表中可以混合存放字符串、数字及其它任意类型的数据。

    实例:

      实现列表:["The Holy Crail",1975,“The Life of Brian”,1979,“The Meaning of Life”,1983]

        方法一:可以使用insert(数据项序号,"数据项名")来实现,

        方法二:重新写一个列表。

  使用迭代:通过使用Python内置的for循环实现

    关于for循环:主要是为了处理列表和Python中的其他迭代结构  

      目标标识符:target identifier,

      格式:for 目标标识符 in 列表:

             组suit:列表处理代码

      注意:组之前一定要记得加缩进符,也就是空格。否则会报错:IndentationError:expected an indented block.

        如:for each_item in movies:

          空格print(each_item)

    可以用while组合语句实现同样的效果:

      count = 0

      while count < len(movies):

        空格print(moives[count])

        空格count = count + 1

    问答:

    列表,打了激素的数组,

    Python2,3中都支持列表,

    但,Python3才是未来,

    使用单引号或双引号来创建字符串,效果一样,但不可以混着用,

    在一个字符串中嵌套另一个双引号,使用 \"来转义,这个我还没试,

    Python对字符大小写是敏感的。

  在列表中存储列表:

    在列表中嵌套任意个列表是可以的。

    如:列表:movies = ["The first",1997,"The second",1998,"The third",1999,["The next",["The last",2000,"The final",2001]]]

         输出第一层:print(movie[i]),i是列表项序号,从0开始计;

         输出第二层:print(movie[6][j]),j是第二层嵌套列表项的序号;

         输出第三层:print(movie[6][1][z]),z是第三层嵌套列表项的序号;

  在列表中查找列表:

    使用if...else...模块:

        格式:if  判断条件 :

            空格“true”组

           else :

            空格"false"组

    使用isinstance(标识符,类型),这个内置函数BIF来判断某个列表项是不是一个列表,如:

        >>>names = ["Suane","Wang"]

        >>>isinstance(names,list)

        True

        >>>num_names = len(names)

        >>>isinstance(num_names,list)

        False

        或者

        >>>isinstance(len(names),list)

        False

    关于BIF,Python3中大概有70多个BIF,使用dir(__builtins__),可以查看到Python提供的内置方法列表,

        查看某个BIF的具体使用方法:比如:input,则用help(input)。

        注意:builtins的前后各有两个下划线。

        通过这些BIF,几乎可以帮助完成大多数工作,再加上Python的标准库,使得Python变得功能强大。

        实例:对于movies = ["The first",1997,"The second",1998,"The third",1999,["The next",["The last",2000,"The final",2001]]]

           现在使用isinstance()来判断嵌套列表,并输出:

            for each_items in movies:

              空格if isinstance(each_items,list):

                空格for new_item in each_items:

               空格空格print(new_item)

              空格else:

                空格print(each_items)

            这样处理输出结果还是不理想,仍然有一个嵌套没有展开。

               当然,仍然可以再增加一个if...else...嵌套来判断,然后展开输出列表项,

            不过,如果嵌套真的很多,这样的方式显然并不理想。

  处理多层嵌套列表:

    通过创建函数,将重复的代码封装在里面,然后调用,可以有效处理此类问题。

        定义函数的标准格式:def 函数名 ():

                  缩进 函数代码组

        实例:编写一个函数,

           实现列表:movies = ["The first",1997,"The second",1998,"The third",1999,["The next",["The last",2000,"The final",2001]]]的列表项展开输出。

           def print_lol(the_list):

             for each_item in the_list:

              if isinstance(each_item,list):

                print_lol(each_item)

              else:

                print(each_item)

        使用:

             >>>print_lol(movies)输出结果。

      这个函数是一个递归函数,Python3默认递归深度不能超过100,即列表中的嵌套列表不能超过99个,不过这个上限应该是可以改的。

      注:列表可以随需要伸缩,数据使用的内存由Python自己管理。

---------------------------------The End of First Chapter-------------------------------

Python(Head First)学习笔记:一的更多相关文章

  1. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  2. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  3. Python Built-in Function 学习笔记

    Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...

  4. Python快速入门学习笔记(二)

    注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...

  5. python数据分析入门学习笔记

    学习利用python进行数据分析的笔记&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分 ...

  6. python网络爬虫学习笔记(二)BeautifulSoup库

    Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...

  7. Python之xml学习笔记

    XML处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过&l ...

  8. python网络爬虫学习笔记(一)Request库

    一.Requests库的基本说明 引入Rquests库的代码如下 import requests 库中支持REQUEST, GET, HEAD, POST, PUT, PATCH, DELETE共7个 ...

  9. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  10. python数据分析入门学习笔记儿

    学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...

随机推荐

  1. java学习中碰到的疑惑和解答(一)

    今天写一个接口的时候发现,接口的方法不需要写修饰符,直接写数据类型加上方法名(参数)即可通过编译. import java.util.List; import com.bjm.pojo.Flower; ...

  2. coursera课程《how to learning 怎么学习》 总结

    总体来说,学完课程没有茅舍顿开的感觉,而是更加印证了之前的那个认知:大道至简,践则无敌,很多的学习方法上学的时候老师都教过我们,关键是我们能否坚持执行.课程讲了很多脑科学有关学习的知识,但对于我们实践 ...

  3. mysql的引擎问题,主键和外键的创建问题,以及创建外键不成功,却创建了一个索引

    mysql的引擎问题: 需要知道的三个引擎:InnoDB--是一个事务处理引擎,不支持全文检索,支持事务操作,即DML操作: Memory--是一个数据存储在内存,速度很快,功能上等同于MyIsam, ...

  4. 理解-NumPy

    # 理解 NumPy 在这篇文章中,我们将介绍使用NumPy的基础知识,NumPy是一个功能强大的Python库,允许更高级的数据操作和数学计算. # 什么是 NumPy? NumPy是一个功能强大的 ...

  5. Netbeans courier new 乱码问题

    Netbeans 默认的字体 monospaced,显示英文的单引号及字体非常的不好看,在网上查了下资料可以变得很好看. 1.仍然保持默认字体 monospaced 2.在Netbeans 的安装目  ...

  6. java线程池,工作窃取算法

    前言 在上一篇<java线程池,阿里为什么不允许使用Executors?>中我们谈及了线程池,同时又发现一个现象,当最大线程数还没有满的时候耗时的任务全部堆积给了单个线程, 代码如下: T ...

  7. C#/Java 动态生成电子发票

    电子发票是电商时代的产物,PDF发票是最常见的电子发票之一.在这篇文章中,我将给大家分享一个免费的动态生成PDF电子发票的C#方案,并在文章末尾附上Java解决方案. 典型的发票包含客户和供应商的名称 ...

  8. Spring入门(十一):Spring AOP使用进阶

    在上篇博客中,我们了解了什么是AOP以及在Spring中如何使用AOP,本篇博客继续深入讲解下AOP的高级用法. 1. 声明带参数的切点 假设我们有一个接口CompactDisc和它的实现类Blank ...

  9. Windows上IDEA搭建最新Spark2.4.3源码调试的开发环境

    相信很多同学都想通过阅读一些框架的源码,来提高自己的代码能力,但往往在第一步,搭建环境的时候就碰了壁. 本篇就来介绍下如何在Windows下,将最新版的Spark2.4.3编译,并导入到IDEA编译器 ...

  10. Java多线程之线程的启动

    Java多线程之线程的启动 一.前言 启动线程的方法有如下两种. 利用Thread 类的子类的实例启动线程 利用Runnable 接口的实现类的实例启动线程 最后再介绍下java.util.concu ...