python基础

IDE(集成开发环境)

PyCharm

这是由JetBrains公司开发的一款Python开发工具,在WindowsMac OSLinux操作系统中都可以使用。

PyCharm具有语法高亮显示、Project(项目)管理代码跳转、智能提示、自动完成、调试、单元测试以及版本控制等一般开发工具都具有的功能,除此之外,它还支持DjangoPythonWeb开发框架)框架下进行 Web开发。

Python注释

Python单行注释

Python中使用井号(‘#’)作为单行注释的符号,语法格式为:

 # 注释内容

也就是说,从符号‘#’处开始,直到换行处结束,此部分内容都作为注释的内容,当程序执行时,这部分内容会被忽略。

单行注释放置的位置,既可以是要注释代码的前一行,例如:

#这是一行简单的注释print ("Hello World!")

也可以是注释代码的右侧,例如:

print ("Hello World!") #这是一行简单的注释

基于注释在程序中所起到的作用,以上两种方式虽然放置位置不同,但程序的执行结果是相同的,都是输出“Hello World!”

Python多行注释

多行注释指的是可以一次性注释程序中多行的内容(包含一行)。多行注释的语法有 2 种,分别是:

'''
使用 3 个单引号分别作为注释的开头和结尾
可以一次性注释多行内容
这里面的内容全部是注释内容
'''

或者

"""
使用 3 个双引号分别作为注释的开头和结尾
可以一次性注释多行内容
这里面的内容全部是注释内容
"""

多行注释通常用来为Python文件、模块、类或者函数等添加版权、功能描述等信息。需要注意的是,在 Python中,如果多行注释标记(三单引号或三双引号)作为语句的一部分出现,就不能再将它们视为多行注释的标记,而应看做是字符串的标志(同双引号的作用相同),例如:

print('''Hello,World!''')

该语句的执行结果为:Hello,World! 。由此可见,Python解释器没有将这里的三个单引号看做是注释,而是将它们看作是字符串的标志。

Python中文编码声明注释

Python还提供了一种特殊的中文编码声明注释,其主要用来解决Python 2.x中不支持直接写中文的问题。虽然此问题在Python 3.x中已经不存在啦,但为了规范编码,增强代码的可执行性,方便其他程序员及时了解程序所用的编码,建议初学者在程序开头处加上中文编码声明注释。

 # -*- coding:编码 -*-
 或者
 # coding=编码

语法中的编码,指的是编写程序所用的字符编码类型,比如UTF-8GBK编码等。另外,在第一种语法中,‘-*-’并没有实际意义,只是为了美观才加上去了,因此,第一种语法格式中可以直接将前后的‘-*-’去掉。

 # coding:utf-8
 或者
 # coding=utf-8

注意,给代码添加注释是是注释的基本用法,它还有一个更实用的功能,即用来调试程序。举个例子,如果你觉得某段代码可能有问题,可以先把这段代码注释起来,让Python解释器忽略这段代码,然后运行。如果程序可以正常执行,则可以说明错误就是由这段代码引起的;反之,如果依然出现相同的错误,则可以说明错误不是由这段代码引起的。

Python缩进规则

和其它程序设计语言(如JavaC语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号( : )来区分代码块之间的层次。

Python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。

注意,Python中实现对代码的缩进,可以使用空格或者Tab键实现。但无论是手动敲空格,还是使用Tab键,通常情况下都是采用**4**个空格长度作为一个缩进量(默认情况下,一个Tab键就表示4个空格)。

Python编码规范

Python采用PEP 8作为编码规范,其中PEPPython Enhancement ProposalPython增强建议书)的缩写,8 代表的是Python代码的样式指南。下面仅给大家列出PEP 8中初学者应严格遵守的一些编码规则:

  • 每个import语句只导入一个模块,尽量避免一次导入多个模块,例如:

    #推荐
    import os
    import sys
    
    #不推荐
    import os,sys
    

    关于 import 的含义和用法会在后续介绍,这里不必深究。

  • 不要在行尾添加分号,也不要用分号将两条命令放在同一行,例如:

    #不推荐
    height=float(input("输入身高:")) ; weight=fioat(input("输入体重:")) ;
    
  • 建议每行不超过80个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠\进行连接。例如,如果一个字符串文本无法实现一行完全显示,则可以使用小括号将其分开显示,代码如下:

    #推荐
    s=("C语言中文网是中国领先的C语言程序设计专业网站,"
    "提供C语言入门经典教程、C语言编译器、C语言函数手册等。")
    #不推荐
    s="C语言中文网是中国领先的C语言程序设计专业网站,\
    提供C语言入门经典教程、C语言编译器、C语言函数手册等。"
    

    注意,此编程规范适用于绝对大多数情况,但以下2种情况除外:

    • 导入模块的语句过长。
    • 注释里的URL
  • 使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。比如说,在图1右侧这段代码中,if判断语句同之前的代码多实现的功能不同,因此这里可以使用空行进行分隔。

  • 通常情况下,在运算符两侧、函数参数之间以及逗号两侧,都建议使用空格进行分隔。

编码规范的自动化工具

首先,你需要根据自己的具体工作环境,选择或者制定适合自己公司或团队的编码规范。市面上可以参考的规范,也就是在文章开头提到的PEP8Google Style

一旦确定了整个团队所遵从的编码规范,就一定要强制执行,有什么好的办法呢?靠强制代码评审和强制静态或者动态linter。具体流程是:

  • 在代码评审工具里,添加必须的编码规范环节;
  • 把团队确定的代码规范写进[Pylint ](https://www.pylint.org/)里,能够在每份代码提交前自动检查,不通过的代码无法提交。

Python标识符命名规范

Python中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:

  • 标识符是由字符(A~Za~z)、下划线和数字组成,但第一个字符不能是数字。

  • 标识符不能和 Python 中的保留字相同。有关保留字,后续章节会详细介绍。

  • Python中的标识符中,不能包含空格、@%以及$等特殊字符。

    例如,下面所列举的标识符是合法的:

    UserID
    name
    mode12
    user_age
    

    以下命名的标识符不合法:

    word  #不能以数字开头
    try     #try是保留字,不能作为标识符
    $money #不能包含特殊字符
    
  • Python中,标识符中的字母是严格区分大小写的,也就是说,两个同样的单词,如果大小格式不一样,多代表的意义也是完全不同的。比如说,下面这3个变量之间,就是完全独立、毫无关系的,它们彼此之间是相互独立的个体。

    number = 0
    Number = 0
    NUMBER = 0
    
  • Python语言中,以下划线开头的标识符有特殊含义,例如:

    • 以单下划线开头的标识符(如_width),表示不能直接访问的类属性,其无法通过from...import*的方式导入;
    • 以双下划线开头的标识符(如__add)表示类的私有成员;
    • 以双下划线作为开头和结尾的标识符(如__init__),是专用标识符。

因此,除非特定场景需要,应避免使用以下划线开头的标识符。

Python关键字

保留字是Python语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名。

Python包含的保留字可以执行如下命令进行查看:

 >>> import keyword
 >>> 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提供了很多可以直接拿来用的函数,每个函数都可以帮助程序员实现某些具体的功能。

可通过访问https://docs.python.org/zh-cn/3/library/functions.html进行查看。

内置函数
abs() delattr() hash() memoryview() set()
all() dict() help() min() setattr()
any() dir() hex() next() slicea()
ascii() divmod() id() object() sorted()
bin() enumerate() input() oct() staticmethod()
bool() eval() int() open() str()
breakpoint() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() import()
complex() hasattr() max() round()

你可能感兴趣的:(python,python)