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)
marumaru
上一篇 2017-04-01
下一篇 2017-04-02

相关推荐

  • 软件包管理工具—yum命令总结

    描述: YUM: Yellowdog Update Modifier, rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,实现查询、安装、升级、删除等功能 说明: yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下) 文件服务器: ftp:// http://…

    Linux干货 2016-08-29
  • Leetcode 编程训练

    Leetcode这个网站上的题都是一些经典的公司用来面试应聘者的面试题,很多人通过刷这些题来应聘一些喜欢面试算法的公司,比如:Google、微软、Facebook、Amazon之类的这些公司,基本上是应试教育的功利主义。 我做这些题目的不是为了要去应聘这些公司,而是为了锻炼一下自己的算法和编程能力。因为我开始工作的时候基本没有这样的训练算法和编程的网站,除了…

    Linux干货 2016-08-15
  • Linux网络管理基础

    Linux网络管理基础 动态路由 Bonding Network Teaming 静态路由实验 Linux的网络管理,了解基本的网络知识是基础,除此,要掌握好ifconig命令、ip命令、nmcli命令(CentOS 7),以及涉及到网络的配置文件。 配置动态路由: 通过守护进程获取动态路由,安装quagga包,支持RIP、OSPF、BGP,通过命令vtys…

    Linux干货 2016-09-09
  • 内核编译流程和自动化安装

    内核编译         在特定的情况我们机器上面有些硬件特性需要利用起来,但是我们现成的这个内核没有开启这个功能,那就需要重新编译,把这个功能模块加进来,或者打到vmlinux中的核心文件里面。比如ntfs功能,默认系统没有启用此功能,但是系统是带这个功能的,编译的时候时候可以…

    Linux干货 2016-09-18
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]#cp /etc/rc.d/rc.sysinit /tmp/ [root@localhost&nbs…

    Linux干货 2016-07-29
  • class7 文本处理命令及文本处理工具grep

    一、文本处理命令   1、文件内容查看cat, tac,rev     cat [OPTION]… [FILE]…      正序查看文本文件          -E:  显示行结束符$ [roo…

    Linux干货 2016-08-08

评论列表(1条)

  • renjin
    renjin 2017-04-05 14:21

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