• Pyhton 编程风格


    博文概要:
    1、Python语句和语法
    2、Python标识符
    3、基本编程风格

    一、Python语句和语法
    1、可以从一行的任何地方开始
    2、续行
    :
    ''':闭合操作符,单一语句跨多行

    3、代码组
     、缩进相同的一组语句构成的一个代码块
     、首行以关键字开始,如if、while 等,以冒号结束
     、Python使用缩进来分隔代码组,同一代码组的代码行必须严格左对齐,否则会造成语法错误
     、同一行放置多个语句
    ;:以分号作为分隔符
     、模块
    每一个Python脚本文件都可以被当成是一个模块;模块的名称也是脚本名称
    模块里的代码可以是一段直接执行的脚本,也可以是一些类似库函数的代码从而可由别的模块执行导入(import) 因为模块在被import的那一刻就会执行;所以模块中一般存放的都是一些可调用的代码段;

    #!/usr/bin/python2.6
    #coding=utf-8
    name = "Tom"
    
    def prinName(a):
        print a
    #缩进相同的一组语句构成的一个代码块;num与之前的代码块已经毫无关系了
    num = 4
    print num
    print prinName(name)
     
    #导入模块是需要指定模块的目录路径的;
    [root@oracle ~]# cat mod.py
    #!/usr/bin/python2.6
    def prinName(a):
    print a
    b = "Black"
    print a+b
    [root@oracle ~]# cat import.py 
    #!/usr/bin/python2.6
    #
    import mod
    
    mod.prinName()

    二、标识符
    1、标识符是计算机语言中允许作为名字的有效字符串集合
    其中有一部分是关键字,它们是语言的标识符,因此是保留字,不能用于其它用途
    python还有称为"内建"的标识符集合,虽然不是保留字,仍不推荐使用这些特别的名字
    2、Python标识符
    第一个字符只能使用字母或者下划线
    余下的字符可以使用字母、数字或下划线
    区分字符大小写


    三、Python基本编程风格
    1、注释
    既不能缺少注释,也要避免过度注释
    2、文档
    Python允许通过__doc__动态获得文档字符串
    3、缩进
    统一缩进4个字符
    4、标识符名称
    见名知意

    >>> str.__doc__
    'str(object) -> string
    
    Return a nice string representation of the object.
    If the argument is a string, the return value is the same object.'
    >>> 
    >>> 
    >>> print str.__doc__
    str(object) -> string
    Return a nice string representation of the object.
    If the argument is a string, the return value is the same object

    Python的命名惯例
    1、以单一下划线开头的变量名(_x)不会被from module import *语句导入
    2、前后有下划线的变量名(__x__)是系统变量名,对解释器有特殊意义
    3、以两个下划线开头、但结尾没有下划线的变量名(__x)是类的本地变量
    4、交互式模式下,只有单个下划线的变量名(_)用于保存最后表表达式的结果

    >>> a = "I love:"
    >>> b = "pig"
    >>> print a+b
    I love:pig
    >>> print a.__add__(b)
    I love:pig
    class str(basestring)
    | str(object) -> string
    | 
    | Return a nice string representation of the object.
    | If the argument is a string, the return value is the same object.
    | 
    | Method resolution order:
    | str
    | basestring
    | object
    | 
    | Methods defined here:
    | 
    | __add__(...)
    | x.__add__(y) <==> x+y
    | 
    | __contains__(...)
    | x.__contains__(y) <==> y in x
    | 
    | __eq__(...)
    | x.__eq__(y) <==> x==y
    | 
    | __format__(...)
    | S.__format__(format_spec) -> string
    | 
    | __ge__(...)
    | x.__ge__(y) <==> x>=y
    | 
    | __getattribute__(...)
    | x.__getattribute__('name') <==> x.name
    | 
    | __getitem__(...)
    | x.__getitem__(y) <==> x[y]

    Python 文件结构

    #!/usr/bin/python2.6 # (1)起始行
    #coding=utf-8                     #mod.__doc__ 引用类的文档
    #"this is test module" (2)模块文档(文档字符串)
    import sys #(3)模块导入
    import os
    
    debug = true
    name = "Tom" #(4)全局变量
    
    class FooClass(object): #(5)类定义(若有)
        "Foo class"
    pass

    def test():
      "test function"   foo = FooClass() #将类实例化
      if debug:
        print 'ran test()'
    def prinName(a): #(6)函数定义(若有) print a #缩进相同的一组语句构成的一个代码块;num与之前的代码块已经毫无关系了 num = 4 print num print prinName(name) if __name__ == '__main__'#(7)主程序
    test()
    prinName()

    Python文件主程序
    1、主程序
    无论当前模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码
    2、注意:所有的模块都有能力执行代码
    最高级别的python语句(没有缩进的)在模块被导入时就会执行,无论是否真的需要执行
    3、妥当的做法:除了那些真正需要执行的代码之外,所有的功能代码都通过函数建立,因此
    仅在主程序模块中编写大量的顶级可执行代码
    用于被导入的模块只应该存在较少的顶级执行代码
    4、__name__指示模块应该如何被加载 每一个模块都有一个名为__name__的内建变量,此变量值会根据调用此模块的方式发生变化
    如果模块是被导入,__name__的值是模块的名字
    如果模块是直接执行,__name__的值是"__main__":

  • 相关阅读:
    作业:利用正则表达式知识, 编辑一个简单的表达式计算器
    正则表达式:内置re模块
    HTML5笔记
    安卓开发-intent在Activity之间数据传递
    NumPy-矩阵部分
    Jupyter notebook入门
    Anaconda入门教程
    在python2里面使用python3的print
    判断浏览器是不是支持html5
    python爬虫-html解析器beautifulsoup
  • 原文地址:https://www.cnblogs.com/xiaocen/p/4292259.html
Copyright © 2020-2023  润新知