• 基础语法


    一、标识符

    所谓的标识符就是对变量、常量、函数、类等对象起的名字。

    必须说明的是Python语言在任何场景都要严格区分大小写的。

    命名规则

    1.第一个字符必须是字母中的字母或下划线“_”

    例如:a, AS, _get_id,name等都是可以的,但是例如:! @ # ... 等符号不能再变量名中

    中文:是可以作为变量名的,Python3全面支持Unicode后,对中文的兼容性是越来越来好了。可以使用中文的。

    我的名字 = "小黑"
    print(我的名字)
    
    
    # 执行结果
    小黑

    然而支持中文标识符,但是没人会这么干,也不建议这么做,将第一个字符必须是字母表中的字母或下划线“_”作为原则来执行。

    另外,以下划线开头的标识符通常都是有特殊意义的

    单下划线开头的变量:例如_foo代表禁止外部访问的类成员,需要通过类提供的接口进行访问,不能用“from xxx import * ”导入。

    双下划线开头的变量:例如__foo代表类的私有成员,以双下划线开头和结尾的(__foo__)是Python里特殊方法专用的表示,如:__init__() 代表类的构造函数。

    2.标识符的其他的不分有字母、数字和下划线组成

    也就是说标识符除了首字母不可以是数字外,其他部分可以包含数字的,

    另外要注意的的是,由于l(小写L)和数字1,大小写o与数字0在外观上的相似度,请尽量不要让他们相邻出现,保持语义的清晰性,确保不会发现错误的情况。

    3.标识符对大小写敏感

    基于Python严格区分大小写的,所以标识符abc与ABC是不同的两个变量。

    4.变量名全部小写,常量名全部大写

    这一条不能算语法层面的要求,而是代码规范的要求,虽然你可以用PI来表示一个变量,但通常我们都会认为这是代表圆周率的一个常量。

    5.函数和方法名用小写家下划线

    同样也不是语法强制的,而是代码规范,我们在定义一个函数或者方法的名字时候,请尽量使用类似的 get、set、get_name、set_name之类的命名方式。

    6.类名用大写驼峰

    也不是语法强制的也是代码规范。所谓的大写驼峰指的是每个单词的首字母大写,组合在一起就像驼峰一样高低高低的排列。如:

    PythonPython

    7.模块和包名字用小写

    尽量小写模块和包的名字,并且不要和标准库以及三方库同名。

    8.变量的命名不用用关键字和内置函数的名字

    二、Python保留字

    Python保留字,也称关键字,是Python语言官方确定的用作语法功能的专用标识符,不能把他们用作任何自定义标识符名称。关键字只包含小写字母,Python的标准库提供一个keyword模块,可以输出当前版本的关键字。

    import keyword
    
    print(keyword.kwlist)
    
    
    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    三、注释

    在程序里不光有代码,还要有注释,注释说明性质的、帮助性质的,他们在代码执行过程中相当于不存在的,不参与任何工作。但在代码维护、解释、测试等等方面,发挥着不可或缺的重要作用。每一位程序员都啊哟尽量写出高质量的注释。具体的注释专题,有大量的高水平为重和描述。

    在Python中注释的方法

    单行注释

    Python中,以符号 # 为单行注释的开始,从它往后倒文本的末尾都是注释内容

    # 我是单行注释,这一行在执行程序是不会被执行

    多行注释

    Python么有真正意义上的多行注释(块注释)语法,通常用 (""" """ 或 ''' ''')

    """
    我是多行注释,
    """
    '''
    我是多行注释,
    '''

    注释文档

    在某些特定的位置,用三引号抱起来的部分,也被当做注释。但是这种注释专门的作用 ,用于为__doc__提供文档内容,这些内容可以通过现成的工具,自动收集起来,形成帮助文档。比如,函数和类的说明文档:

    def func(x, y):
        """
        这个函数说明
        :param x: 乘数
        :param y: 乘数
        :return: 返回乘积
        """
        return x * y
    
    
    class Foo:
        """
        类的说明
        """
        pass

    ps:这类注释必须紧跟在定义体下面,不能再任意位置。

    四、语句与缩进

     语句:在代码中,能够完整表带某个意思、操作或者逻辑的最短代码,被称为语句。语句通常不超过一行,超过一行的称为多行语句。比如;

    from time import time
    
    name = "xiaohei"
    print(name)
    print(name.split())

    Python的标准语句不需要使用分号或逗号来表示语句结束,简简单单的换行就表示本语句结束了

    代码块:为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号(:)结束的,比如;

    # 判断流程代码块
    name = 20
    if name > 18:
        pass
    else:
        pass
    # 类流程代码块
    class Foo:
        def __init__(self, name, age, ):
            self.name = name
            self.age = age
            
        def get_name(self):
            return self.name
    # 函数流程代码块
    def func(x, y):
        """
        这个函数说明
        :param x: 乘数
        :param y: 乘数
        :return: 返回乘积
        """
        return x * y

    ps:Python最大的特色就是使用语法时使用缩进来表示代码块,不需要使用大括号({ })。

    缩进的空格数是可变的,但是同一个代码块的语句必须抱哈相同的缩进空格数

    缩进空格数不一致会抛出异常

     File "test.py", line 6
        print ("False")    
    IndentationError: unindent does not match any outer indentation level

    PEP8:建议使用四个空格作为缩进,再文本编辑器中,需要设置Tab自定转换为4个空格。Pycharm中已经自动转换。Linux中使用bim编辑器请使用空格不能使用tab建。

    同一行协多条语句:

    Python一行通常就是一条语句,一条语句通常也不会超过一行。其实,从语法层面Python灭有完全禁止在一行中使用多条语句,也可以使用分号实现多条语句在一行,比如:

    import time;x =1;time.time()

    上面这一行是三条语句,用分号隔开,强烈不建议这样做,会导致阅读困难、维护耗时、容易出错。

    多行语句:

    上面是多行语句在一行,如果太长也是可用用多行的,可以使用反斜杠()来表示多行语句,比如

    string = "i love this country,"
             +"because it is very beautiful!"
             + "how do you think about it?" 
             + "Do you like it too?"

    在[],{},()中的多行语句,可以不需要使用反斜杠(),比如;

    sum_int = (1,
               2,
               3,
               4)
    print(sum_int)

    PEP8建议每一行的字符不超过79个字符。

    五、pass语句

    pass语句是占位语句,表示什么也不做,只是为了保证语法的正确性,以下场景可以使用pass语句。

    1.后边的代码不知道怎么写的时候。

    2.不需要写代码细节的时候。

    3.语法必须写又没有实际内容可写的时候。

    4.其他需要的场景。

    if name > 18:
        pass  # 什么也不做不会出现语法错误

    六、空白字符与空白行

    空白行、空白字符与代码缩进不同,并不是Python语法的一部分,空行或者空白字符会被当做空气忽略。连续的空行和空白字符和单独的空白行是没有区别的。

    PEP8对于空行留白有专门的建议。

    函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

    变量赋值的时候等号左右各给一个空白。逗号后面跟一个空白。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    
    class Foo:
        pass
    
    
    def func(a, b):
        pass
    
    if __name__ == '__main__':
        pass

    七、字符串的表示形式

    字符串,表示一段连续的字符,可以是有意义的单词、词组、语句、也可以使无意义的字符组合,不在于它内部是由什么组成的,而在于他是否被引号引起来的。

    比如:name可能是一个变量,但是"name"肯定是一个字符串

    在Python中被引号括起来的都是字符串,这个引号可以使单引号,双引号,甚至3引号。

    Python中单引号和双引号的作用是完全相同的。但是注意:在其他语言中双引号引起来的才是字符串,单引号引起来的是字符,列如C语言 列如json,json格式转换的时候,经常发生使用单引号,导致转换失败的问题。

    使用三引号 ''' 或 """ 可以指定一个多行字符串。

    转义符 “”,用来特殊转义,列如 ,\。他可以将引号转义为单纯的引号,没有任何作用的引号。

    原生字符串:通过支付长春前加r或R,如r"No escape is required ",表示这个字符串里的斜杠不需要转义,等同意自身。列子中的 会显示出来,并且不换行。

    unicode字符串:加前缀u或U,u"No escape is required +1"。

    bytes类型:加前缀b,如:b"No escape is required",字符串中带有中文是不可以,字符串是不可变类型。

  • 相关阅读:
    分布式框架---Dubbox 简介
    MySql 多表查询
    MySql 增删改查
    redis
    spring security 自定义登录页面及从数据库查询账户登录
    java数据结构-
    Maven-
    有关多行相同数据,只显示在第一行的实现
    javaWEB的第一次MVC之旅
    JavaWeb中的 请求转发 和 重定向
  • 原文地址:https://www.cnblogs.com/xiaohei001/p/10101380.html
Copyright © 2020-2023  润新知