基础语法

一、标识符

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

必须说明的是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\n,\\。他可以将引号转义为单纯的引号,没有任何作用的引号。

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

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

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

posted @ 2018-12-11 16:45  小黑_9527  阅读(321)  评论(0编辑  收藏  举报