美文网首页
第1周-python-任务2-注册和登录-理论基础

第1周-python-任务2-注册和登录-理论基础

作者: 果芽软件 | 来源:发表于2019-06-23 09:40 被阅读0次

    python面向过程编程理论基础:

    1. 体系结构
    2. 内置函数
    3. 命名规范
    4. 代码规范

    一、体系结构

    当前计算机主要是基于冯诺依曼体系结构设计的

    冯·诺依曼 体系结构


    image.png
    ![image.png](https://img.haomeiwen.com/i9106490/d5bbf9938658c605.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    计算机 python
    输入设备 控制台/界面/文件/数据库
    存储器 变量(存单个数据,存批量数据)
    运算器 运算符(+-*/% 和 ><= 和 与 或非 和 in not in)
    控制器 if条件控制,for/while循环控制
    输出设备 控制台/文件/数据库
    存储器-变量:
    用途 类型 举例
    存1个数据 数字 20
    存1个数据 字符 “果芽软件”
    存n个数据 列表 [1,2,3,4,"学校”,"年龄"]
    存n对数据 字典 {'姓名': '吴令', '年龄': 31, '性别': '男'}
    运算器-运算符:

    https://www.runoob.com/python3/python3-basic-operators.html

    类型 符号 举例
    算术运算符 +-*/% 2+3
    比较运算符 > < == != 3<5
    逻辑运算符 and or not 10>5 and 10<20
    成员运算符 in 和 not in 3 in (1,2,3,4,5)

    二、内置函数:

    https://www.runoob.com/python3/python3-built-in-functions.html

    image.png

    常用内置函数

    用途 函数名 用途
    输入 input() 从控制台读取内容
    open() 从文件读取内容
    存储 int() 把字符转成数字
    str() 把数字转成字符
    运算 len() 计算字符串长度
    rang() 给出一个数字范围
    输出 print() 向控制台输出内容
    open() 向文件写入内容

    三、命名规范

    Python之父Guido推荐的规范

    Type Public Internal
    文件 Modules lower_with_under _lower_with_under
    包 Packages lower_with_under
    类变量 Global/Class Variables lower_with_under _lower_with_under
    实例变量 Instance Variables lower_with_under _lower_with_under (protected) or __lower_with_under (private)
    参数 Function/Method Parameters lower_with_under
    Local Variables lower_with_under
    方法名 Method Names lower_with_under() _lower_with_under() (protected) or __lower_with_under() (private)
    函数 Functions lower_with_under() _lower_with_under()
    常量 Global/Class Constants CAPS_WITH_UNDER _CAPS_WITH_UNDER
    类 Classes CapWords _CapWords
    异常 Exceptions CapWords

    总结:

    用途 写法
    默认 小写+“_”
    内部私有 加“_”作前缀
    常量 大写+“_”
    驼峰命名法

    四、代码规范

    1、编码

    如无特殊情况, 文件一律使用 UTF-8 编码如无特殊情况, 文件头部必须加入标识

    # -*- coding:utf-8 -*-
    

    2、注释

    2.1、块注释

    “#”号后空一格,段落间用空行分开(同样需要“#”号)

    # 块注释
    # 块注释
    #
    # 块注释
    # 块注释
    

    2.2、行注释

    至少使用两个空格和语句分开,注意不要使用无意义的注释

    # 正确的写法
    x = x + 1  # 边框加粗一个像素
    
    # 不推荐的写法(无意义的注释)
    x = x + 1 # x加1
    

    2.3、建议

    在代码的关键部分(或比较复杂的地方), 能写注释的要尽量写注释
    比较重要的注释段, 使用多个等号隔开, 可以更加醒目, 突出重要性

    app = create_app(name, options)
    
    # =====================================
    # 请勿在此处添加 get post等app路由行为 !!!
    # =====================================
    
    if __name__ == '__main__':
        app.run()
    


    3、代码格式

    3.1、缩进

    统一使用 4 个空格进行缩进,也就是1个tab制表位

    3.2、行宽

    每行代码尽量不超过 80 个字符(在特殊情况下可以略微超过 80 ,但最长不得超过 120)

    3.3、空行

    模块级函数和类定义之间空两行;
    类成员函数之间空一行;

    class A:
    
        def __init__(self):
            pass
    
        def hello(self):
            pass
    
    def main():
        pass   
    

    可以使用多个空行分隔多组相关的函数
    函数中可以使用空行分隔出逻辑相关的代码

    4、空格

    在二元运算符两边各空一格[=,-,+=,==,>,in,is not, and]:

    # 正确的写法
    i = i + 1
    submitted += 1
    x = x * 2 - 1
    hypot2 = x * x + y * y
    c = (a + b) * (a - b)
    
    # 不推荐的写法
    i=i+1
    submitted +=1
    x = x*2 - 1
    hypot2 = x*x + y*y
    c = (a+b) * (a-b)
    

    函数的参数列表中,,之后要有空格

    # 正确的写法
    def complex(real, imag):
        pass
    
    # 不推荐的写法
    def complex(real,imag):
        pass
    

    函数的参数列表中,默认值等号两边不要添加空格

    # 正确的写法
    def complex(real, imag=0.0):
        pass
    
    # 不推荐的写法
    def complex(real, imag = 0.0):
        pass
    

    左括号之后,右括号之前不要加多余的空格

    # 正确的写法
    spam(ham[1], {eggs: 2})
    
    # 不推荐的写法
    spam( ham[1], { eggs : 2 } )
    

    字典对象的左括号之前不要多余的空格

    # 正确的写法
    dict['key'] = list[index]
    
    # 不推荐的写法
    dict ['key'] = list [index]
    

    不要为对齐赋值语句而使用的额外空格

    # 正确的写法
    x = 1
    y = 2
    long_variable = 3
    
    # 不推荐的写法
    x             = 1
    y             = 2
    long_variable = 3
    

    5、换行

    Python 支持括号内的换行。这时有两种情况。

    if/for/while一定要换行:

    # 正确的写法
    if foo == 'blah':
        do_blah_thing()
    
    # 不推荐的写法
    if foo == 'blah': do_blash_thing()
    
    
    1. 第二行缩进到括号的起始处
    foo = long_function_name(var_one, var_two,
                             var_three, var_four)
    
    1. 第二行缩进 4 个空格,适用于起始括号就换行的情形
    def long_function_name(
            var_one, var_two, var_three,
            var_four):
        print(var_one)
    

    使用反斜杠\换行,二元运算符+ .等应出现在行末;长字符串也可以用此法换行

    session.query(MyTable).\
            filter_by(id=1).\
            one()
    
    print 'Hello, '\
          '%s %s!' %\
          ('Harry', 'Potter')
    

    禁止复合语句,即一行中包含多个语句:

    # 正确的写法
    do_first()
    do_second()
    do_third()
    
    # 不推荐的写法
    do_first();do_second();do_third();
    

    6、docstring
    docstring 的规范中最其本的两点:

    所有的公共模块、函数、类、方法,都应该写 docstring 。私有方法不一定需要,但应该在 def 后提供一个块注释来说明。
    docstring 的结束"""应该独占一行,除非此 docstring 只有一行。

    """Return a foobar
    Optional plotz says to frobnicate the bizbaz first.
    """
    
    """Oneline docstring"""
    

    3、import 语句

    import 语句应该分行书写

    # 正确的写法
    import os
    import sys
    
    # 不推荐的写法
    import sys,os
    
    # 正确的写法
    from subprocess import Popen, PIPE
    

    import语句应该使用 absolute import

    # 正确的写法
    from foo.bar import Bar
    
    # 不推荐的写法
    from ..bar import Bar
    

    import语句应该放在文件头部,置于模块说明及docstring之后,于全局变量之前;
    import语句应该按照顺序排列,每组之间用一个空行分隔

    import os
    import sys
    
    import msgpack
    import zmq
    
    import foo
    

    导入其他模块的类定义时,可以使用相对导入

    from myclass import MyClass
    

    如果发生命名冲突,则可使用命名空间

    import bar
    import foo.bar
    
    bar.Bar()
    foo.bar.Bar()
    

    相关文章

      网友评论

          本文标题:第1周-python-任务2-注册和登录-理论基础

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