作为一个C++程序员,学习Python,我想笔记还是没必要像写入门教程一样。入门教程可以参考廖雪峰学Python教程。
1.Python是啥?
Python是一种动态的现代编程语言,完全面向对象类似Java,但与Java区别最大的估计也就是Python还是动态运行的语言了吧——类似脚本语言(如:Javascript)。无需编译,直接通过解析器运行。
2.Python特色:
就凭“人生苦短,我用Python”这天下第一装逼编程语言非他莫属,什么优雅、简洁、高效,我不是创造语言的,我不懂。我只信奉能解决你问题的语言就是最好的,或者说只有最合适的编程语言,没有最好的编程语言。比如学Python的和学C的内存管理的概念肯定天壤之别。
论装逼,世界上最好的语言不是PHP吗?OK,来看看Python的优点
1.语法简洁 所有模块用tab键(或者4个空格)区分对其,没有结束标点符号,基础数据类型也较少,临时变量直接用,声明都不要是不是很js?但js还有var声明呢。所以确实是能省略的都省略了,也算是简洁了。所以易学也算归入此类了,其实是入门容易罢了,任何一门语言精通都需要大量的时间和精力去沉淀。
2.跨平台 这个和Java类似,请确信没有真正跨平台的语言,如果有那就是汇编。只要图灵计算机不死,汇编就一定存在。借助于各个操作系统平台都有相应解析器。所以,你编写的源代码能在各平台运行(如果真需要做此方面的工作,切记不要用系统API,又说回去了,假跨平台,唉)。能解决极大部分跨平台工作就算是优点了。qt、Java、js也不过如此。
3.库丰富 这个优点简直就是Python流行开来的一个喷射器,没有丰富的库,我想Python肯定还在实验室。各个领域都有其强大的库的存在,如:大数据、AI、机器学习、图像处理、网络并发、自动化等等。也因此各种主流语言都有兼容Python的库,这也解释了有人说Python是一种胶水语言的说法,它能让多语言程序协调工作。
4.开源性 这是一个不是有点的优点,怎么解释呢,你能看的人家的代码,开心的是不是你?但人家的源代码却不能加密这是不是有点。。。?
3.Python学习
下面就是Python学习过程中的具体了,笔者环境Ubuntu16+Python3.5。为啥选择Linux系统,如果我说Linux安装pip,Django,MySQL,Nginx等更方便,会不会被喷?总之平台不重要,毕竟学习而已。能用python就行了。
1.基础数据类型
|
number(数字) 包括
int
,
long
,
float
,
complex
str(字符串) 例如:hello,
"hello"
,hello 默认使用utf-8编码
list
(列表) 例如:[
1
,
2
,
3
],[
1
,
2
,
3
,[
1
,
2
,
3
],
4
]
dictionary(字典) 例如:{
1
:
"nihao"
,
2
:
"hello"
}
tuple
(元组) 例如:(
1
,
2
,
3
,abc)
bool
(布尔) 包括
True
、
False
None (空值)
None
|
2.函数声明与调用
面向过程,或者叫函数式编程。
函数声明:
def fun(参数1,参数2...):
函数体...
#pass 空函数必须要,占位符的作用
#return 返回值 如果返回值为None可以不写
函数调用:fun(参数1,参数2...)
3.类
面向对象编程。一切皆是对象,这句话也适合Python
通常类的首字母大写,定义
class Aobject(父类名):
pass
需要注意点有:
1.类与实例
类是类,实例是类的对象。类是元类(类的类)的对象。
2.类的访问权限,私有成员 __开头
3.类的多继承、多态
4.__slots__与@property
4.IO编程
文件读写、序列化等
5.进程与线程
知道怎么表示
6.正则表达式
知道怎么表示
符号 | 意义 |
. | 匹配任意一个字符 |
+ | 至少一个字符 |
* | 任意字符 |
? | 最多一个字符 |
\s | 一个空格 |
\d | 匹配一个数字 |
\w | 匹配一个字母或数字 |
{m} | 匹配m个字符 |
{m,n} | m~n个字符如:{3,8} |
-
[0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线; -
[0-9a-zA-Z\_]+
可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100'
,'0_Z'
,'Py3000'
等等; -
[a-zA-Z\_][0-9a-zA-Z\_]*
可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量; -
[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}
更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
A|B
可以匹配A或B,所以(P|p)ython
可以匹配'Python'
或者'python'
。
^
表示行的开头,^\d
表示必须以数字开头。
$
表示行的结束,\d$
表示必须以数字结束。
7.第三方库的使用
具体语法:
import 第三方库文件
然后直接用