Python 学习系列——1.Python 概述
Python 概述
优点:
1、Python 的定位是“优雅”、“明确”、“简单”,所以 Python 程序看上去总是简单易懂,初学者学 Python 不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
2、开发效率非常高,Python 有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python 官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
3、高级语言---------当你用 Python 语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
4、可移植性---------由于它的开源本质,Python 已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有 Python 程序无需修改就几乎可以在市场上所有的系统平台上运行。
5、可扩展性---------如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用 C 或者 C++编写,然后在你的 Python 程序中使用它们。
6、可嵌入型---------你可以把 Python 嵌入你的 CC++程序,从而向你的程序用户提供脚本功能。
缺点:
1、速度慢,Python 的运行速度相比 C 语言确实慢很多,跟 Java 相比也要慢一些,因此这也是很多所谓的大牛不屑使用 Python 的主要原因,但其实这里所指的运行速度慢在很多情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用 C 运行一个程序要花 0.01S。而用 Python 是 0.1S,这样 C 语言直接比 Python 快了 10 倍,算是比较夸张了。但是你是无法通过肉眼感知到的。
其实在大多数情况下 Python 已经能完全可以满足你对速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议使用速度快一些的语言。
2、代码不能加密,因为 Python 是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源码必须是加密的,那你就不能使用 Python 去实现。
3、线程不能利用多 CPU 问题,这是 Python 被人诟病最多的一个缺点,GIL即全局解释密锁,是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻都只有一个程序在执行,Python 的线程是操作系统的原生线程。在 Linux 上为pthread,在 windows 上为 Win thread,完全由操作系统调度线程的执行。一个 Python 解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核 CPU 平台上,由于 GIL 的存在,所以禁止多线程的并行执行。关于这个问题的折中解决方法,我们后面在线程中会讲到。
Python 的应用方向:
Python 工具、网络流量分析、黑客专用语言、人工智能、网络中信息的自动抓取、数据处理
Python2.0 与 Python3.0
python2.0 python3.0 二者不兼容
2.0 不支持中文、2.7 兼容 2.0 和 2.7
链接: https://www.python.org/
Python 知识点罗列
Python 中文编码;Python 基础语法;Python 变量类型;
Python 变量类型;Python 运算符;Python 条件语句;
Python 循环语句;Python 循环嵌套;Python Break 语句;
Python Continue 语句;Python pass 语句;Python Number;
Python 字符串;Python 列表(List);Python 元组;
Python 字典(Dictionary);Python 日期和时间;
Python 函数;Python 模块;Python 文件 I/O;
Python File 方法;Python 异常处理;Python 内置函数;
Python 面向对象;Python 正则表达式。
Python 标识符
在 Python 里,标识符有字母、数字、下划线组成。
在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 _foo _ 代表类的私有成员;以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 _ init _ () 代表类的构造函数。
Python 可以同一行显示多条语句,方法是用分号 ; 分开
Python 保留字、行缩进
保留字不能用作常数或变数,或任何其他标识符名称。
Python 最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
//python 中的行缩进
if True:
print"True"
else:
print"False"
多行语句
我们可以使用斜杠( \)将一行的语句分为多行显示,语句中包含 [], {} 或 () 括号就不需要使用多行连接符。
Python 引号
Python 可以使用引号( ’ )、双引号( " )、三引号( ‘’’ 或 “”" ) 来表示字符串,引号的开始与结束必须的相同类型的。
三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
Python 显示多行语句
Python 可以在同一行中使用多条语句,语句之间使用分号(;)分割,但不建议这样做,此外python官方建议一行代码量不超过48个字符我们可以使用斜杠(\)将一行的语句分为多行显示。
空行也是程序代码的一部分。
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
Python 变量赋值
从右向左赋值
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
Python 允许你同时为多个变量赋值
Python 标准数据类型
Python 有六个标准的数据类型:
Number(数字)String(字符串)List(列表)
Tuple(元组)Sets(集合)
【3.0 特有】Dictionary(字典)
Python 数字
Python 支持四种不同的数字类型:
int(有符号整型) long(长整型[也可以代表八进制和十六进制])float(浮点型) complex(复数)
字符串(String)
python 的字串列表有 2 种取值顺序:
(1)从左到右索引默认 0 开始的,最大范围是字符串长度少 1 (2)从右到左索引默认-1 开始的,最大范围是字符串开头
如果你要实现从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或
负数,下标可以为空表示取到头或尾。
一般记为:
加号(+)是字符串连接运算符,星号(*)是重复操作。
Python 列表、Python 元组、Python 字典
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
元组是另一个数据类型,类似于 List(列表)。
元组用"()“标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
字典(dictionary)是除列表以外 python 之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用”{ }"标识。字典由索引(key)和它对应的值 value 组成。
Python 运算符 【非 0 和 null 皆为 true】
Python 算数运算符 Python 比较运算符 Python 赋值运算符 Python 位运算符
Python 逻辑运算符 Python 成员运算符 in notin
Python 身份运算符 is notisid()函数用于获取对象内存地址比较地址