Python是一种解释型语言:开发过程中没有编译的环节
Python是一直交互式语言:可以在一个 Python 提示符 >>> 后直接执行代码。
Python是面向对象语言。
Python的可扩展性强的语言,可以很容易的调用C/C++语言
Python可以通过交互式程,直接利用Python解释器的交互模式进行编写代码
Python还可以通过脚本参数调用解释器执行脚本,直到脚本执行完成,所有的python文件以.py为扩展名。
python文件的运行:写一个py文件,shift+右键选择打开powershell窗口,输入python 文件名运行python文件
pip是python的包管理器,类似于java中的Maven,通过import 导入模块,python可以根据路径调用外部的源文件,如果在当前搜索路径,那么就会被导入。
搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。
搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改
Python标识符
在python中,标识符由字母、数字、下划线组成,
标识符不能以数字开头,
以下划线开头的标识符代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from XXX import *
导入,
以双下划线开头的标识符代表类的私有成员,
以双下划线开头和结尾的代表python里特殊方法专用的标识
python中可以同一行显示多条语句,但是需要用分号分开
python的保留字符:
行和标识符
-
python代码块不用大括号来控制类,而是使用缩进写代码块,缩进的空白数量是可变的,但是所有代码块必须包含相同的缩进空白数量。在python代码块中必须使用相同数目的行首缩进空格数,建议每个缩进使用单个制表符或两个空格或四个空格。
-
函数之间、类和函数入口之间、类的方法之间用空行分隔,表示一段新的代码的开始(空行并不是python语法的一部分,但是是程序代码的一部分)
-
在Python语句中,一般以新行作为语句的结束符,可以使用斜杠(\)将一行语句分为多行显示。如果语句中包含[]、{}、()就不需要多行连接符。
-
同一行可以显示多条语句,语句之间用分号(;)分割
-
python中单行注释采用#开头
-
python可以使用引号
单引号'xx';双引号"xx";三引号'''xx'''
来表示字符串,引号的开始与结束必须是相同的。其中三引号可以由多行字符串组成,无需加\,是编辑多行文本的快捷语法。打印出来的结果也是以多行显示的。 -
python可以用三个单引号或三个双引号作为多行注释,可以作为文档字符串,需要查看某个模块的函数的文档字符串时使用
print(模块.函数.__doc__)
或help(模块.函数)
-
python2中若出现中文注释,需要加上
#coding:utf-8
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
变量和赋值
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
在python中创建的变量默认是全局的,若要创建私有变量需要在变量名前加_
前缀
python是动态类型的编程语言:运行过程中,类型可以发生变化
python中包含的数据类型有:整型、浮点型、字符串
字符串
python中没有字符类型,一个单个的字符也是字符串,Python 中的字符串不能被修改,它们是 不可变的。因此,向字符串的某个索引位置赋值会产生一个错误
- 单引号’,双引号"、三引号"'都可以用来表示字符串,字符串前加一个r,表示原始字符串(raw_string),使字符串内部的转义字符不生效)
- 字符串的下标可以取负数,-1=len-1(倒数第二个)
- 取字符串子串:1:3==> 取字符串区间为[1,3)的字符
- 用字符串变量与一个整数相乘表示字符串重复整数次
- 两个字符串变量相加表示字符串拼接
- 格式化字符串:
1.s=‘var=%d’ % var
2.s=f’num={num}’(python3.5以后的版本支持)
3.s=‘num={}’.format(num)
布尔类型
布尔类型只有两种取值:True/False,必须首字母大写
操作符
/表示:精确除
//表示:取整除
**表示:乘方
and表示:逻辑与
or表示:逻辑或
not表示:逻辑非
python遵守短路求值
==可以比较字符串内容
<>可以用于比较字符串的字典序大小
模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
想使用 Python 源文件,只需在另一个源文件里执行 import 语句,当解释器遇到 import 语句,只有模块在当前的搜索路径就会被导入。语法如下:
import module1[, module2[,... moduleN]
如果模块未在当前路径下,可以采用以下方法解决
import sys
#sys.path是一个列表,向列表中追加模块所处的路径
sys.path.append(r'模块的路径')
import 模块
自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。
在实际开发中,推荐导入顺序为python标准库-python第三方库-应用程序自定义模块
from import导入模块中指定的名字,可以降低模块与模块之间的耦合
from os.path import exists
import一个模块本质上就是执行某一个对应的文件,当多次导入一个模块时也只会执行一次。
模块的内置变量
__name__
模块名字,如果从这个模块开始执行,那么__name__
的值为__main__
__doc__
模块的说明文档字符串
__file__
模块的文件名
__package__
模块的从属的包名
当在一个模块中有一部分代码是需要作为测试代码,当其作为模块被其他文件调用时不希望被执行,那么可以在测试代码前加一个条件if __name__==__main__
,由于在其他文件中调用此模块时其入口文件是其他文件而不是__main__
,因此这个条件不生效,只在执行本文件时测试代码才会生效。
包
所谓的包就是一个特殊的目录,里面必须包含一个__init__.py文件,这个文件负责对包进行初始化
在python中zip文件也会被当作一个包
sys模块
sys.argv:命令行参数,是一个列表
sys.byteorgder:返回当前机器的字节序
sys.exit:直接退出python
sys.builtin_moudle_names:python解释器内置哪些模块
sys.executable:python解释器的绝对路径
sys.getsizeof:获取一个对象占用的内存空间
sys.platform:查看操作系统
OS模块
操作系统接口模块
os.getpid():获取进程的pid
os.getppid():获取父进程的pid
os.getuid():获取用户id
os.getenv():获取环境变量
os.getloadavg():获取系统负载参数