学习一门新的计算机语言对于新开发者来说很难,因为毕竟要掌握很多技术和术语,学习第一门计算机语言需要4-6个月才能真正理解如何使用。但对于开发成手来说,捞干货比较快,因此本文主要面向3年以上工作经验的程序员,速度会有点快,属于Python语言区别于其他语言特性的会被重点标红。
废话不多说,跟着杨老师的步伐,我们马上开始:
1、安装:
下载略,环境变量设置:PATH 加上 python.exe所在路径 、PYTHONPATH = Python安装路径
HelloWorld,扩展名.py:
#!/usr/bin/python3
print(‘Hello World’)
运行命令:python 文件名
如中文无法解析,则加注释:
# -*- coding: UTF-8 -*-
开发工具可以选用PyCharm的社区版,老手刚上手一般比较喜欢直接用Shell/Cmd
2、语法
标识符:下划线慎用(详见面向对象),其余老样子;
断句符(似;):回车(换行不断句,行末加\);
保留字:语法用的都不能用;代码层级(似{}):缩进代替;
引号:单双引号('或")不必说,三引号("""或''')内可写多行文本。
注释:#开头
声明变量:无赋值关键字,出现即声明
赋值:a=1;连续赋值:a=b=1;映射赋值:a,b=1,2
接受输入:raw_input(提示文字)
输出:print(表达式)
3、数据类型
数字:样例略
字符串:略,转义和C一样
元组(圆括号):('a','b','c')
列表(似JSON Array):['a','b','c']
字典(似JSON Object):{键1:值1,键2:值2}
可变对象:列表(List)、字典(Dictionary);不可变对象:数字(Numbers)、字符串(String)、元组(Tuple)
列表、字典、字符串、元组可视为序列,参与序列运算
转换函数:int整,long长整,float浮点,str字串,tuple元组,list列表,dict字典
4、二目运算符
序列运算:
拼接:+ 重复:* 判断在序列中:in 判断不在序列中:not in
数学运算:加减乘除取余:+-*/% 乘方:** 向下取整://
比较运算:==、!=、>、<、>=、<=
赋值:数学运算符加等号,如+=
位运算:与& 或| 异或^ 取反~ 左移<< 右移>>
逻辑运算:and、or、not
5、IF
# 单行
if 表达式:单行代码
# 多行
if 表达式:
代码段1
# 否则
if 表达式:
代码段1
else:
代码段2
# 连续判断
if 表达式1:
代码段1
elif 表达式2:
代码段2
else:
代码段3
6、WHILE
# 单行
while 表达式:语句
# 多行
while 表达式:
代码段
# While-Else
while 表达式:
代码段
else:
循环结束时语句
continue、break:略
跳出多层循环办法:自定义异常、封装函数返回、内层else:continue,外层执行完成后break
7、FOR
对于字符串、列表、元组,遍历的是元素;对于字典,遍历的是键。
for 迭代变量 in 序列:
循环体
for-else循环,语法同上的while
常用序列函数:len(序列) :取长度,range(整数):生成0到小于该整数的序列
8、函数
# 参数是默认值(可选参数)
def 函数名(参数1,参数2=默认值):
函数体
# 可变参数
def 函数名(参数1,*参数2):
函数体
# λ表达式
函数变量 = lambda 参数列表:表达式
# 指定参数调用
函数名(参数1='test')
# 调用λ表达式
函数变量(参数)
pass语句
Python2空函数体的定义必须要有个pass填充
Python3可以不写
9、异常处理
拦截异常
try:
代码段
except 异常类 as 异常数据:
异常处理阶段
else:
无异常发生代码段
finally:
最终执行
触发异常
# Python2触发异常:
raise 异常类型,异常参数
# Python3触发异常:
raise 异常类型(异常构造参数)
10、第三方模块
import语句:
import 模块名
from…import语句:
from 模块名 import 函数1,函数2……
模块常用函数:
dir(模块名) |
查看模块内容 |
globals() |
返回全局命名 |
locals() |
返回局部命名 |
reload(模块名) |
重新加载模块 |
11、面向对象(类)
声明:
class 类名(父类):
成员变量
def __init__(self,构造函数参数列表):
构造函数体
def 其他函数名(self,参数列表……):
函数体
self含义:代表当前对象,每个类函数第一个参数,可以改名,类似于其他语言的this
self.__class__:当前类
创建对象:类名(参数1,参数2……)
类内置属性:
__dict__:类属性
__doc__:类的文档字符串
__name__:类名
__module__:类所在模块
__bases__:类的所有父类
类可重写方法:
__init__(self):构造函数
__del__(self):析构函数,被销毁时调用
__repr__(self):转化为供解释器读取的形式
__str__(self):转化为字符串
__cmp__(self,x):对象比较
对象销毁:
del 变量,会触发__del__事件
12、常用内置模块
以上是Python语法,具体实现都是靠函数,现用现查即可。
math | 数学 |
random | 随机 |
time | 日期与时间 |
datetime | 日期与时间(基于time封装) |
calendar | 日历 |
os | 文件及目录操作 |
re | 正则表达式 |
socket | Socket通信 |
smtplib | SMTP发信 |
threading | 多线程 |
xml.sax | XML处理 |
tkinter | 图形化界面 |
functools | 函数式编程 |
json | JSON处理 |
glob | 文件通配搜索 |
sys | 控制台相关 |
urllib.request | URL访问 |
zlib | 数据压缩 |
原版帮助文档哪里找:
13、常用第三方框架
PIP – Python包管理器(Python自带),类似于Java的Maven、NodeJs的Npm、.Net的Nuget,
只要是外国包管理器,使用之前先要找国内镜像,切记
以下是常用框架,如果Python自带的模块不满足需求,可以直接上套路:
Django – MTV结构Web框架
Flask – 轻量级Web框架,类似于SpringMVC
Cubes – OLAP框架
Tornado – 非阻塞式Web框架
Scrapy – 爬虫框架
Antlr4 – 强大的语法分析器
14、总结
如果你认真阅读的话,现在你已经入门Python了,不信可以找找其他人写的python文章,是不是有了一些熟悉感呢?
接下来花1-2个小时时间做以下练习,手(fu)撕(zhi)一下代码,你就彻底掌握Python了:
1) Hello World(约1分钟)
2) 斐波那契数列(约5分钟)
3) 用内置open、write函数和time模块,保存当前%Y-%m-%d %H:%M:%S格式日期到文件(约5分钟)
4) 用Flask做一个简单页面和一个RESTful接口,实现表单提交的数据输出到控制台、上传文件。(约30分钟)
5) 试试连接一下mysql数据库,做套增删改查(约30分钟)
通过以上介绍,相信你已经了解了Python的语法了。不要怀疑,就是这么简单。
至于为什么Python强大,主要是因为语法简单、上手快、开源框架众多,因此接下来就是根据你的实际工作场景来选择要用的框架了(比如运维、DevOps、数据分析、人工智能……)。很多都是pip下载下来,写几行直接用就OK。
最后如果想在Python领域做到全球领先的技术水平,上某hub上搜"python awesome",一定有你喜欢的!