一、python介绍
1、编程语言排行榜
TIOBE榜 TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员、课程和第三方厂商的数量。
2、python与其他语言对比
JAVA 目前使用最广泛的编程语言,第一个跨平台的语言, 在大型ERP软件\安卓APP开发\大型网站开发领域使用广泛
PHP 使用最广泛的WEB开发语言,非常适合中小型网站开发,学习成本较低,开发效率高
C\C++ 学习成本高,学习周期长,偏系统底层、在开发硬件驱动、嵌入式、游戏引擎开发等领域有广发的应用。
PYTHON 使用领域几乎和JAVA一样广泛,但开发效率要高于JAVA,且学习成本较低,在科学预算\数据分析\网站开发\爬虫开发\云计算\自动化运维\自动化测试等领域优势明显
3、python的生态圈
WEB开发 比较火的python web框架,支持异步高并发的Tornado框架,短小精悍的flask、bottle。
人工智能 python是对人工智能支持最好的语言。
云计算 目前最火的云计算框架openstack。
金融量化分析、自动化交易 python在金融分析、量化交易领域用的非常多。
爬虫 爬取网页和数据
自动化运维 运维必须掌握的语言
科学计算NASA早在97年就开始用python做科学计算,之后有了Numpy\SciPy\Matplohib\Enthought librarys等库,python越来越适合做科学运算和图形处理。
游戏开发python也可以做游戏开发
4、语言发展史
机器语言---汇编语言---高级语言
5、高级语言分类
编译类: 将程序源码转成目标代码(机器语言),所以程序可以脱离其语言环境独立执行。程序执行效率高但是修改比较麻烦,只要修改源代码,必须重新生成执行文件。
如C、C++、Delphi等
6、编译型和解释型的优缺点
解释类:将源代码实时的由解释器翻译成目标代码(机器语言)进行执行,而且不能生成独立的可执行的文件,程序运行不能脱离其解释器。
如Python、Java、PHP、Ruby等语言。
编译型优点:
a、程序执行时,不再需要源代码不依赖语言环境,因为执行的是机器码文件
b、执行速度快,因为你的程序代码已经翻译成了是计筲机可以直接理解的机器语言。
缺点:
a、每次修改了源代码,需要重新编译,生成机器码文件b、跨平台性不好,不同操作系统,调用底层的机器指令不同,需要为不同平台生成不同的机器码文件
解释型
优点:a、天生跨平台,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不需再考虑平台差异性,可谓,一份源代码,所有平台都可直接执行
b、随时修改,立刻见效,改完源代码后,直接运行看效果
缺点:
a、运行效率低,所有的代码均兼经过解释器边解释边执行,速度比编译型慢很多b、代码是明文
7、各类程序语言总结:
机器语言:优点是最底层,速度最快,缺点是最复杂,开发效率最低
汇编语言:优点是比较底层,速度最快,缺点是复杂,开发效率最低
高级语言
编译型语言执行速度快,不依赖语言环境,跨平台效率差解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行
8、python发展史
发明人Guido van Rossum
1989年圣诞节写出来的,创造出一种C和shell之间的,功能全面,易学易用的可拓展的语言。
1991年第一个编译器诞生,是用C语言写成的。1999年正式支持web开发
1994年增加 lamba ,map,filter and reduce
2000年python2.0解释器,加入内存回收机制,构成了现在的python语言架构的基础。
2004年python2.4解释器,同年目前最流行的的web框架Django诞生
2006年python2.5解释器发布
2008年python2.6解释器发布
2008年python3.0解释器发布
2010年 python2.7解释器发布
2009年python 3.1解释器发布
2011年python 3.2解释器发布
2012年python 3.3解释器发布
2014年python 3.4解释器发布
2014年11月宣布对python2.7的支持到2020年,并且不再开发python2.8用户应该尽快使用python3.4及其以上版本。
2015年10月发布python 3.5解释器
2016年12月发布python 3.6解释器
9、python解释器种类
Cpython:大多数人用的python解释器,官网下载的也是Cpython
ironpython:即IronPython 是一种在 NET 和 Mono 上实现的 Python 语言。
Jpython:java语言写的解释器。
pypython:pypy是对python进行动态编译一次,再次执行.
二、变量
1、变量
是表示一个数值或者状态的,把程序运算的中间结果临时存到内存里,已备后面的代码继续调用。
2、变量定义的规则
只能是字母、数字、下划线的任意组合
变量名的第一个字符不能是数字
3、关键字不能声明为变量名
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']
4、变量命名的习惯
a、驼峰体
age0of0nicholas = 18
b、下划线
age_of_nicholas = 18
5、low的变量命名方式
变量名为中文
变量名过长
变量名词不达意
6、常量
常量即不变的量,在python中没有一个专门的语法代表常量,程序员约定俗成用变量全部大写代表常量
PI = 3.14
7、注释
代码注释用#
代码注释原则:不用全部加注释,只需要在自己觉得重要或者不好理解的部分加注释即可,注释可以是中文或者英文,但绝对不要用拼音
三、数据类型
1、整型
整型即整数,在python3中不再有长整型long,只有int
2、字符串
在python中加了引号的字符都被认为是字符串,单引号和双引号没有任何区别
单双引号的配合使用
msg = "I'm 18 years old !"
多行字符串可以用三引号
msg = '''my
name
is
nicholas
'''
3、字符串的拼接
字符串的拼接可以用+
字符串可以用乘法
name = "nicholas"
v = name *10
print(v)
这里会输出10个nicholas
注意字符串的拼接只能是双方都是字符串,不能是数字或者其他类型
4、布尔类型
True /False
5、if-else语句
见博客[Python之路(第一篇):Python简介和基础]
6、while循环
见博客[Python之路(第一篇):Python简介和基础]
7、continue、break
continue 结束当前循环,继续下一次循环
break 结束整个循环,执行循环体外面的语句
8、while -else语句
与其他语言不同,python中还有while-else语句
while后面的else语句作用是,当while循环正常执行完,中间没有被break语句中止的话,就会执行else后面的语句,如果被中止,则else也不会被执行。
例子
count = 0
while count <= 5:
count += 1
print("loop",count)
else:
print("循环正常执行完啦")
print("-------out of while loop--------")
输出结果
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
循环正常执行完啦
-------out of while loop--------
分析:这里是先执行完while语句之后再次执行了else语句
例子2
count = 0
while count <= 5:
count += 1
print("loop",count)
break
else:
print("循环正常执行完啦")
print("-------out of while loop--------")
输出结果
loop 1
-------out of while loop--------
分析:这里在while 语句中被break后,else中的语句也没有执行。
9、for -else语句
for-else与while-else类似,for循环正常执行完,中间没有被break语句中止的话,就会执行else后面的语句,如果被中止,则else也不会被执行。注意这里如果for循环语句中有return也会有break类似的效果
例子
li = [1,2,3,4,5]
def find():
for i in li:
if i == 5:
print("找到5了")
return "ok"
else:
print("没有找到")
return "no"
print(find())
输出结果
找到5了
ok
分析:这里for循环语句里if条件成立打印"找到5了",return出“ok”,之后会直接结束程序,不会继续执行else语句。
例子2
li = [1,2,3,4]
def find():
for i in li:
if i == 5:
print("找到5了")
return "ok"
else:
print("没有找到")
return "no"
print(find())
输出结果
没有找到
no
分析:这里for循环内if语句没有符合条件,return语句未能被执行到,所以for循环语句执行完之后执行了else语句。这里return的功能和break类似,即如果for循环被break或者return打断执行过程,那么后面的else语句也不会被执行,如果for循环没被打断则执行else语句。