Python入门

作者: 趙小陽 | 来源:发表于2018-03-02 18:12 被阅读31次

    写在前面

    本文讲简单介绍Python这门语言,旨在帮助有编程背景的同学,快速对这门语言的语法有一个大致了解。

    解释型语言

    从类型上看,Python属于脚本语言。C#或Java的代码在运行前需要编译,把该语言转换为机器或虚拟机可以识别的中间语言,然后才能运行。Python和JavaScript这种脚本语言,运行时跳过编译,由解释器实时编译执行。

    解释器支持Mac/Linux/Windows各种操作系统,也正是因为此,所以当说“安装Python”时,我们是在装“Python解释器”。解释器安装完毕后,即可以直接进入解释器,交互式的一个语句一个语句的输入并观察输出,也可以直接将编写好的整段语句保存为文件,由解释器直接解析文件运行。所以文件相当于代替我们一行行的进行输入,对于常规的自动化操作,一次编写即可常年使用。

    Python编程语言

    废话少说,我们先看一个典型的Python文件:

     class Book:
        def __init__(self, name):
             self.name = name
     
        def print(self):
             print(self.name)
      
        def New(name):
             return Book(name)
    

    (1)

    Python最直观的特点就是没有用花括号({, })来作为语句的边界,而是纯粹依赖编写代码时的缩进。写代码时也就不必纠结开括号在行末还是下一行,或者结尾是否有分号等。Python的代码也因此变得整齐干净许多。

    (2)

    定义一个类,需要用到关键字class

    class Book:
    

    如果需要继承一个类,只需要在冒号前用括号添加父类即可:

    class SciFi(Book):
    

    (3)

    Python中声明变量不需要类型,Python是弱类型语言,所有变量的类型均在运行时确定。

    a = 18      # integer
    b = True    # boolean
    c = "hello" # string
    

    当一个变量在类中时,不分静态变量或实例变量,对两种参数可以同时操作,而且值不会互受影响。

    class Book:
        name = ''  
    Book.name = 'not a book'
    book = Book()
    book.name = 'Harry Potter'
    print(Book.name) # 'not a book'
    

    Python的单行注释以#开头,多行注释以多个#开头……或者用两行"""(三引号)包住。

    (4)

    定义函数时,由关键字def声明:

    def print(self):
         print(self.name)
    

    刚开始我以为,self相当于其他语言中的this。当第一个参数为self关键字时,该函数为实例函数,否则该函数即为静态函数。后来才明白,self并不是关键字,Python里面也天生不分类函数或静态函数,只不过在你用一个类的实例去调用这个方法时,它会自动把实例当做第一个参数穿进去。所以是self或是this都对实际调用没所谓。

     book = Book.New('Harry Potter')
     book.print()       # Harry Potter
     Book.print(book)   # Harry Potter
    

    定义函数同样需要小心缩进,缩进决定了函数是否属于当前类。

    (5)

    另外,Python的类中还有一些系统内置的函数,可以选择性的进行重载,这些函数以两个下划线开始和结束:

    def __init__(self, name): # 定义了一个构造函数,声明实例化这个类时需要传入一个参数`name`。
        self.name = name      # self.name是成员变量,name是函数参数
    
    def __str__(self):        # 内置函数,相当于C#中的ToString(),用于设置实例的输出格式。
        return self.name
    

    我们把上面这段代码保存为文件book.py,后缀名.py表示这是一个Python文件。我们再写一个稍复杂的文件,这个文件将输出今天的日期,以及一个书架上所有的书。

    (6)

    为了打印日期,我们需要系统内置库datetime和方法datetime.date.today()

    import datetime
    print(datetime.date.today())
    

    import关键字用于引用其他文件(包)中的资源,相当于using(c#)或require(js)。

    (7)

    接着我们从刚才的文件book.py中引用类Book,并基于此构建一个新类Shelf

    from book import Book
    class Shelf:
         books = []
     
         def add(self, name):
             book = Book(name)
             self.books.append(book)
     
         def print(self):
             while len(self.books) > 0:
                 book = self.books.pop()
                 book.print()
     
         def NewShelf(books):
             shelf = Shelf()
             names = []
             for book in books:
                 if book not in names:
                     shelf.add(book)
                     names.append(book)
             return shelf
    

    这个类提供了两个类函数 addprint,分别用于添加图书和输出。另外维护了一个数组(array):self.books。Python中的数组操作非常简洁高效,这里不多介绍。

    (8)

    函数printNewShelf分别举例了Python中的控制语句:if, for 和 while。

    def NewShelf(books):
             shelf = Shelf()
             names = []
             for book in books:
                 if book not in names:
                     shelf.add(book)
                     names.append(book)
             return shelf
    

    可以看出,因为缩进的存在,代码逻辑非常清晰。for ... in ...替代了其他语言里的for(;;)foreach .. in ..,直接使用时可当做foreach使用,需要数组指针时,使用关键字range生成指针即可:

    for i in range(len(books)):
        book = books[i]
    

    (9)

    最后我们来实例化Shelf并输出书单。

     #此处开始执行
     book_list = ['春秋', '诗经', '论语', '诗经']
     shelf = Shelf.NewShelf(book_list)
     
     print(datetime.date.today())
     shelf.print()
    

    由于这个文件是我们最终的执行文件,在这一段前的“大段”代码都用于定义类Shelf,因此真正的脚本运行在此处开始。

    保存两个文件后,在命令行中执行:

     python test.py
    

    即可运行程序,并得到输出结果:

     2018-03-01
     论语
     诗经
     春秋
    

    总结

    快速回顾一下Python语法

    • 缩进来控制代码结构
    • 变量无需声明
    • 弱类型
    • 面向对象(类、实例、继承)
    • 类函数和self

    Python从语法角度来讲,简洁清晰,写起来很舒服,读起来也很轻松。代码、模块的复用变得很高效,通过包管理工具pip,更是可以随时把别人写好的模块“信手拈来”。种种这些,使它变成了许多人入门编程的首选语言。

    最后以一句流传于Python程序员之中的名言结束:Life is short, you need Python. ——人生苦短,我用Python

    相关文章

      网友评论

        本文标题:Python入门

        本文链接:https://www.haomeiwen.com/subject/lyaaxftx.html