Python from entry to abandon

      学习Linux已经有大致两周了,依然感觉到自己仍然在运维的大门外徘徊。于是我想要找到一个在Linux之外的业余方向,可以作为枯燥基础学习的调节。没过多久我就发现了Python可以 说是钦定的选择,它作为Linux的内置语言,传言风格简洁优美,功能强大。Python老生常谈的缺点是效率不高,哎,没办法,那些底层语言之所以还没有被淘汰就是因为自己更接近底层可以编出更有效率的代码。这对于我这种只接触过c语言的小白而言无所谓,我只关心Python自习之路是否能够顺利进行下去。
 
     我的自学之路大致会按照以下计划走:
     时间分为4周,全部自学,仅提供大纲。适用于Web方向:
             1、Week1:读完《简明Python教程》,适应Python开发环境
             2、Week2:写个爬虫,需要深入了解re、urllib2、sqlite3、threading,Queue等几个模块。需要用上多线程抓取,正则表达式分析,并发资源控制,    重新开启程序自动继续抓取和分析
             3、Week3:学习一种Web开发框架,推荐Flask、webpy之类的,学个数据库接口如sqlite3,写个简单的web应用如博客
             4、Week4:给产品做个小功能并走完测试和上线流程,各个时期是不同的
     以上计划我是在知乎上从一个大神那里看到的。理论联系实践,看起来比较合理。从我以前学习c语言的经历所得到的教训就是“纸上得来终觉浅,绝知此事要躬行”。我当时把一本500页的大部头给啃了,理论大师级别,可是实践部分没有跟上,其结果就是一开始还能编写一小段程序,过了两年再提起来c语言基本只剩下一个框架了,所有在理论方面的努力全部白搭。
      再说一下我更新的速度,惯例每周一次。而且,每完成一个阶段性目标后就单独再发一篇博客进行总结。
      接下来就可以跟随我的博客开始惊险刺激的Python从入门到弃坑之旅了。

      本次Python相关知识点介绍按照《简明Python教程》分为六部分(嗯,因为我才刚刚看完第六章):
          1.介绍
          2.安装Python
          3.最初的步骤
          4.基本概念
          5.运算符和表达式
          6.控制流

    值得思考的一些东西:

    有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷;另一种是把它做得很复杂以至于找不到明显的缺陷。
    ————C.A.R. Hoare
    明显就是说Python语言大道至简嘛。
    
    获得人生中的成功需要的专注与坚持不懈多过天才与机会。
    ————C.W. Wendte
    此句与诸君共勉。

      1.介绍
          总结一下就是,Python大概是世界上最好的语言什么之类的。
      
      2.安装Python
          继续总结,如果你现在在学Linux的话,你只需要记住三句话。
          Linux自带Python。Linux自带Python。Linux自带Python。

          Windows用户的自行从Python.org上下载安装,下一步下一步就行了,大概吧。
      

      3.最初的步骤
          从现在开始正经起来。
          现在我只研究Linux命令行模式的Python编程问题。
          此时有两种方式可以念出Hello World的咒语。
          (1)使用带提示符的解释器
          第一步:对着命令行打出  python(启动解释器,进入Python提示符)
          第二步:print ‘Hello World’
          具体实现:

          $ python
          Python 2.3.4 (#1, Oct 26 2004, 16:42:40)
          [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
          >>> print 'hello world' hello world
          >>>

         
        如何退出Python提示符?
          Ctrl+D
          (2)使用源文件
          挑选一个编辑器
          我现在只会Nano,不过对付前六章的内容已经够了。
          
          使用源文件
          在nano编辑器中键入如下内容:

          #!/usr/bin/python
          # Filename : helloworld.py
          print 'Hello World'

          
          命名为helloworld.py,保存并退出
          chmod +x helloworld.py
          helloworld.py

          输出为:Hello World
        
        这一部分在入门过程我认为是极为重要的,有一定编程基础的看起来才不会卡住。
        0基础的同学请出门左转去仔细看原著,不懂的去百度,谢谢。

      4.基本概念
          常量:
              字符串,数 (值不可变)
          数:
              在Python中有4种类型的数————整数、长整数、浮点数和复数。
        字符串:
            字符串是字符的序列。字符串基本上就是一组单词。
            单引号,双引号,三引号,转义符\,自然字符串(前缀r或R),,Unicode字符串,
            字符串是不可变的,按字面意义级联字符串
            注:这部分比较繁琐,不便于在这里列出来。去看原著很容易理解。
        变量:
            变量只是你的计算机中存储信息的一部分内存。与字面 意义上的常量不同,你需要一些能够访问这些变量的方法,因此你给变量名字。
        标识符的命名:
            这部分感觉全世界的要求都一样。
            标识符由字母数字下划线组成,第一个字符必须为字母或下划线,对大小写敏感,
            别和一些系统自带标识符冲突
        数据类型:
            变量可以处理不同类型的值,称为数据类型。基本的类型是数和字符串。
            在后面的章节里面,我们会研究怎么用类创造我们自己的类型。
        对象:
            记住,Python把在程序中用到的任何东西都称为对象 。这是从广义上说的。因此我们不会说“某某东西 ”,我们说“某个对象 ”。

        如何编写Python程序 下面是保存和运行Python程序的标准流程。  
         1. 打开你最喜欢的编辑器。
         2. 输入例子中的程序代码。   
         3. 用注释中给出的文件名把它保存为一个文件。我按照惯例把所有的Python程序都以扩展名. py保存。   
         4. 运行解释器命令python program.py或者使用IDLE运行程序。

         逻辑行和物理行:
             物理行是你在编写程序时所 看见 的。逻辑行是Python看见的单个语句。
             Python假定每个物理行对应一个逻辑行 。
             默认地,Python希望每行都只使用一个语句,这样使得代码更加易读。
            如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这 种用法。分号表示一个逻辑行/语句的结束。
            我强烈建议你坚持在每个物理行只写一句逻辑行。仅仅当逻辑行太长的时候,在多于一 个物理行写一个逻辑行。这些都是为了尽可能避免使用分号,从而让代码更加易读。
            \之后回车,可以在多个物理行中写一个逻辑行。被称为明确的行连接。
            相对应的存在暗示的行连接。以后会提到。

        缩进:
            空白在Python中是重要的。
            事实上行首的空白是重要的。它称为缩进。
            在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
            这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。
            你需要记住的一样东西是错误的缩进会引发错误。
            
            如何缩进
            不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。
            强烈建议在每个缩进层次使用 单个制表符 或 两个或四个空格 。 选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即只使用这一种风格。

        总结:
            没办法,概念总是枯燥的。当时我自己看书的时候感觉内容并不多,没想到总结起来还是很烦。在掌握这些概念之后,接着就可以接触更多的实际编程而不会犯很多无谓的错误了。

    5运算符与表达式
        简介:
            一个表达式可以分解为运算符和操作数。
        
        运算符:
            +,-,*,/,**,//,%,<<,>>,&,|,^,~,<,>,<=,>=,!=,not,and,or
            这里不用介绍什么优先级,反正记不住。而且实际应用中只需要合理使用()就行了。

        表达式:
            例5.1

            #!/usr/bin/python
            # Filename: expression.py
            length = 5
            breadth = 2
            area = length * breadth
            print 'Area is', area
            print 'Perimeter is', 2 * (length + breadth)

            输出:

            $ python expression.py
            Area is 10
            Perimeter is 14 

            不用问为什么,照着敲一遍。

        总结:
            我们已经学习了如何使用运算符、操作数和表达式——这些是任何程序的基本组成部分。接下 来,我们将学习如何通过语句在我们的程序中使用这些部分。

    6.控制流
        在Python中有三种控制流语句——if、for和 while。
        if语句:
            if语句用来检验一个条件,如果条件为真,我们运行一块语句(称为if-块 ),否则我们处理 另外一块语句(称为 else-块 )。 else从句是可选的。
            
            例6.1

            #!/usr/bin/python
            #Filename:if.py
            number=23
            guess=int(raw_input('Enter an integer:'))
            if guess==number:
                    print 'Congratulations,you guessed it.'
                    print '(but you do not win any prizes!)'
            elif guess<number:
                    print 'No,it is a little higher than that'
            else:
                     print 'No,it is a little lower than that'

            print 'Done'

            
            输出:

            $ python if.py
            Enter an integer : 50
            No, it is a little lower than that
            Done
            $ python if.py Enter an integer : 22
            No, it is a little higher than that
            Done
            $ python if.py Enter an integer : 23
            Congratulations, you guessed it.
            (but you do not win any prizes!)
            Done

            注:动手去敲一遍很有用,以至于我宁愿删掉内容介绍也不删这部分代码。

        while语句:
            只要在一个条件为真的情况下,while语句允许你重复执行一块语句。while语句是所谓循环语 句的一个例子。while语句有一个可选的else从句。

            例6.2

            #!/usr/bin/python
            #Filename:while.py
            number=23
            running=True

            while running:
                guess=int(raw_input('Enter an integer:'))
                    if guess==number:
                            print 'Congratulations,you guessed it.'
                            running=False
                    elif guess<number:
                            print 'No,it is a little higher than that.'
                    else :
                              print 'No,it is a little lower than that.'
            else:
                     print 'The while loop is over.'

            print 'Done'

            输出:

            $ python while.py
            Enter an integer : 50
            No, it is a little lower than that.
            Enter an integer : 22
            No, it is a little higher than that.
            Enter an integer : 23
            Congratulations, you guessed it.
            The while loop is over.
            Done

        for语句:
            for..in是另外一个循环语句,它在一序列的对象上 递归 即逐一使用队列中的每个项目。
            
            例6.3

            #!/usr/bin/python
            #Filename:for.py
            for i in range (1,5):
                print i
            else:
                print 'For loop is over.'

            输出:

            $ python for.py
            1
            2
            3
            4
            The for loop is over

        break语句
            break语句是用来终止循环语句的,即哪怕循环条件没有称为False或序列还没有被完全递归, 也停止执行循环语句。
            一个重要的注释是,如果你从for或while循环中 终止 ,任何对应的循环else块将不执行。

            例6.4

            #!/usr/bin/python
            #Filename:break.py
            while True:
                s=raw_input('Enter something:')
                if s=='quit':
                    break
                print 'Length of the string is',len(s)
            
            print 'Done'

            输出:

            $ python break.py
            Enter something : Programming is fun
            Length of the string is 18
            Enter something : When the work is done
            Length of the string is 21
            Enter something : if you wanna make your work also fun:
            Length of the string is 37
            Enter something : use Python!
            Length of the string is 12
            nter something : quit
            Done 

            
        continue语句:
            continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

            例6.5

            #!/usr/bin/python
            #Filename:continue.py
            while True:
                s=raw_input('Enter something:')
                    if s=='quit':
                            break
                    if len(s)<3:
                            continue
                    print 'Input is of sufficient length'

            输出:

            $ python continue.py
            Enter something : a
            Enter something : 12
            Enter something : abc
            Input is of sufficient length
            Enter something : quit

        总结:
            至此我们已经学习了如何使用三种控制流语句——if、while和for以及与它们相关的break和continue 语句。它们是Python中最常用的部分,熟悉这些控制流是应当掌握的基本技能。

        讲道理,Python这六章的知识对比起C语言入门的那部分真的算不上什么,感觉按照计划花上一周时间足够掌握Python基础,而剩下的就需要结合理论在实践中不断地提升自己了。

原创文章,作者:maru,如若转载,请注明出处:http://www.178linux.com/72318

(1)
上一篇 2017-04-01 20:24
下一篇 2017-04-02 16:40

相关推荐

  • Http虚拟主机的应用

    一、http 1、 基于主机名实现三个虚拟主机 (1)yum安装httpd (2)注释中心主机的网页路径 (3)创建三个虚拟机主机的文件路径 (4)创建三个虚拟机主机的文件网页index.html (5)更改hosts文件进行映射 (6)关闭防火墙和Selinux进行测试(测试步骤是在本机的虚拟机上测试) 2、每虚拟主机使用独立的访问日志和错误日志 (1)给…

    Linux干货 2016-10-08
  • N21 第八周 总有刁民想害朕

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。 集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它…

    Linux干货 2016-09-15
  • 源码编译nginx和Nginx的特性,配置文件指令说明

    nginx的官方站点 www.nginx.org Nginx:engine X Tenginx:Taobao enginx libevent:高性能的网络库 epoll(); Nginx特性  模块化设计,较好扩展性:但不支持模块的动态装卸载;Tenginx支持;  高可靠性   master –> …

    Linux干货 2017-04-30
  • 2016 10 19 第5天作业

    20161019第5天作业 软链接和硬链接的区别 硬链接 ①硬链接文件不能跨分区创建 ②一个硬链接文件的删除不影响其他链接的访问 ③链接文件指向的源文件被删除后,链接文件还能正常访问源文件的数据 ④硬链接的文件类型是 –  普通文件 ⑤硬链接和源文件的属性(大小,权限,时间戳,Inode号)相同 ⑥硬链接不能对目录创建 ⑦创建硬链接会增…

    Linux干货 2016-10-20
  • Tomcat相关知识整理

    初识Servlet SUN公司制定了一系列Web应用与Web服务器进行协作的标准Java接口,统称为Java Servlet API,还对Web服务器发布及运行Web应用的一些细节做了规约。SUN公司把这一系列标准Java接口和规约统称为Servlet规范。Servlet就是Web服务器与Web应用进行协作的标准接口。 Servlet规范把能够发布和运行Ja…

    Linux干货 2016-12-05
  • 【Linux基础】计算机及操作系统基础

    【Linux基础】计算机及操作系统基础 计算机的组成及其功能 计算机的组成 简单来说,计算机应由两部分组成:第一部分:硬件 冯诺依曼结构体系 当前计算机主要是基于冯诺依曼体系结构设计的,在该体系中,计算机硬件由5个部件组成。分别是:运算器、控制器、存储器、输入设备和输出设备。而现今运算器和控制器一般集成在一起,叫中央处理器(Central Processin…

    Linux干货 2018-03-04

评论列表(1条)

  • renjin
    renjin 2017-04-05 14:21

    内容上写的挺详细的,可以加入一些图片,或者把python代码放入到”插入代码”中。这样看起来效果会更好一些