IDE
(集成开发环境)PyCharm
这是由JetBrains
公司开发的一款Python
开发工具,在Windows
、Mac OS
和Linux
操作系统中都可以使用。
PyCharm
具有语法高亮显示、Project
(项目)管理代码跳转、智能提示、自动完成、调试、单元测试以及版本控制等一般开发工具都具有的功能,除此之外,它还支持Django
(Python
的Web
开发框架)框架下进行 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-8
、GBK
编码等。另外,在第一种语法中,‘-*-’
并没有实际意义,只是为了美观才加上去了,因此,第一种语法格式中可以直接将前后的‘-*-’
去掉。
# coding:utf-8
或者
# coding=utf-8
注意,给代码添加注释是是注释的基本用法,它还有一个更实用的功能,即用来调试程序。举个例子,如果你觉得某段代码可能有问题,可以先把这段代码注释起来,让Python
解释器忽略这段代码,然后运行。如果程序可以正常执行,则可以说明错误就是由这段代码引起的;反之,如果依然出现相同的错误,则可以说明错误不是由这段代码引起的。
Python
缩进规则和其它程序设计语言(如Java
、C
语言)采用大括号“{}”
分隔代码块不同,Python
采用代码缩进和冒号( : )
来区分代码块之间的层次。
在Python
中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
注意,Python
中实现对代码的缩进,可以使用空格或者Tab
键实现。但无论是手动敲空格,还是使用Tab
键,通常情况下都是采用**4
**个空格长度作为一个缩进量(默认情况下,一个Tab
键就表示4
个空格)。
Python
编码规范Python
采用PEP 8
作为编码规范,其中PEP
是Python Enhancement Proposal
(Python
增强建议书)的缩写,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
判断语句同之前的代码多实现的功能不同,因此这里可以使用空行进行分隔。
通常情况下,在运算符两侧、函数参数之间以及逗号两侧,都建议使用空格进行分隔。
首先,你需要根据自己的具体工作环境,选择或者制定适合自己公司或团队的编码规范。市面上可以参考的规范,也就是在文章开头提到的PEP8
和Google Style
。
一旦确定了整个团队所遵从的编码规范,就一定要强制执行,有什么好的办法呢?靠强制代码评审和强制静态或者动态linter
。具体流程是:
[Pylint ](https://www.pylint.org/)
里,能够在每份代码提交前自动检查,不通过的代码无法提交。Python
标识符命名规范Python
中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:
标识符是由字符(A~Z
和 a~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() |