Alan403

一、Python的出生与应用。
1、介绍
Python是由吉多·范罗苏姆(Guido van Rossum)中文名字:龟叔,在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。
像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。
现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

最新的TIOBE Index for August 2018 排行榜,Python已长达占据第四并奋力追赶C++,Python崇尚"优雅"、"明确”、"简单",是一个优秀并广泛使用的语言

由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。
目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。

目前Python主要应用领域:
云计算: 云计算最火的语言, 典型应用OpenStack
WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django

科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas

系统运维: 运维人员必备语言

金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。

原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测

图形GUI: PyQT, WxPython,TkInter

 

2、企业应用
谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
CIA: 美国中情局网站就是用Python开发的

NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算

YouTube:世界上最大的视频网站YouTube就是用Python开发的

Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载

Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发

Facebook:大量的基础库均通过Python实现的

Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的

豆瓣: 公司几乎所有的业务均是通过Python开发的

知乎: 国内最大的问答社区,通过Python开发(国外Quora)

春雨医生:国内知名的在线医疗网站是用Python开发的

除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。

 

3、Python发展史

1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理 想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展 系统。

Granddaddy of Python web frameworks, Zope 1 was released in 1999

Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.

Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础

Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生

Python 2.5 - September 19, 2006

Python 2.6 - October 1, 2008

Python 2.7 - July 3, 2010

In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible

Python 3.0 - December 3, 2008

Python 3.1 - June 27, 2009

Python 3.2 - February 20, 2011

Python 3.3 - September 29, 2012

Python 3.4 - March 16, 2014

Python 3.5 - September 13, 2015

Python 3.6 - December 16,2016

Python 3.7 - June 27,2018

 

4、Python 2与Python 3 区别:
 Python2x:源码冗余,重复,不规范,原生支持AscII码,/是整数除法,//是小数除法,print、exec是语句
 Python3x:源码优美,清晰,简单,原生支持utf-8码,/是小数除法,//是整数除法,print、exec是函数


二、编程语言的分类。

编译型:将代码一次性全部编译,然后在执行。
缺点:开发效率相对低,不能代码移植。
优点: 执行效率高。
代表语言:C,C++.


解释型:逐行解释并运行。
优点:开发效率高,可移植。
缺点:执行效率相对低。
代表语言:python,php。


三、Python的优缺点。

1、优点
Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。

高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行

可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

 

2、缺点:

速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。

代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。

线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

 

3、Python的种类:
  1)、CPython

      用C语言开发的,使用最广泛且被官方指定Python解释器,用">>>"作为提示符

  2)、IPython

      是基于CPython之上的一个交互式解释器,执行代码的功能和CPython一样的,用In[符号]:作提示符

  3)、PyPy

     是未来发展趋势,目标是执行速度,采用JIT(动态编译)技术,对Pyhton代码进行动态编译,显著提高Python代码的执行速度

  4)、Jython

     是Java语言开发解释器

 

四、Python环境安装。

1、Python 目前支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在windows系统上安装简单

2、windows 10 环境安装Python 3.7

   1)、打开https://www.python.org/downloads/windows/  下载 Python 3.7.0并安装

   

    2)、在CMD窗口下输入python,显示交互环境,说明python安装成功

    

 

五、运行第一个Python程序。

1、打印"Holle World"

  1)、CMD窗口执行

     

  2)、.py后缀名执行

     在notepad++创建D:\test.py文件,输入以下代码并保存

      

      在CMD窗口执行 python d:\test.py

      

 
   类似于执行shell脚本方式:在首行: #!/usr/bin/env python 定义解释器
   Python3x: 默认编码方式:utf-8
   cmd python 文件路径 回车


   Python2x: 默认编码方式:ASCII,不支持中文需要定义编码
   显示中文:文件的首行 :# -*- encoding:utf-8 -*- 定义编码

 

六、变量。
\'\'\'
print(1+2+3+4+5+6)
print((1+2+3+4+5+6)*2/3)
print((((1+2+3+4+5+6)*2/3)+100)/5)
\'\'\'
x = 1+2+3+4+5+6
y = x*2/3
z = (y + 100)/5
print(z)
类似于x y z 就叫变量
变量:python将一些中间结果暂存到内存中,以便后续程序调用。

变量的规则:
1,变量要由数字,字母,下划线任意组合。
2,变量不能以数字开头。
3,变量不能是python中的关键字:
[\'and\', \'as\', \'assert\', \'break\', \'class\', \'continue\', \'def\', \'del\',
\'elif\', \'else\', \'except\', \'exec\', \'finally\', \'for\',
\'from\', \'global\', \'if\', \'import\', \'in\', \'is\', \'lambda\',
\'not\', \'or\', \'pass\', \'print\', \'raise\', \'return\', \'try\',
\'while\', \'with\', \'yield\']
4,变量要具有描述性。
name = \'alex\'
age = 56
5, 变量不能使用中文,不用使用拼音。
6,建议使用:
#驼峰体
AgeOfOldboy = 56

NumberOfStudents = 80

#下划线

age_of_oldboy = 56

number_of_students = 80

七、常量。
就是不变的量,比如圆周率 用大写来表示

身份证,π,性别待定。
常量:python中为了与其他语言一致,也设置了常量:
将变量全部大写,常量一般放在文件的最上面。
CHINA_OF_BIRTH = 1949

八、注释。
注释:帮助你或者别人理解代码。

单行注释:#

多行注释: \'\'\'被注释内容\'\'\' """被注释内容"""

九、基础数据类型初始。
基础数据类型:数字int,字符串str 布尔值bool
数字:
int整型:100,200,10
float浮点型;1.234.......
用途:计算,计数。

布尔值: True,False.
t = True
判断真假。

字符:你能看到的内容组成最小单位

字符串。str:python中,引号引起来的数据就是字符串。单双引号都可以。也可以用三引号。

s1 = \'python,老男孩\' "python,老男孩"

s2 = "I\'m TAIBAI"
s3 = """床前明月光,
疑是地上霜"""

字符串如果换行了,用三引号表示。
字符串的加 :str + str 字符串的拼接。
s1 = \'alex\'
s2 = \' is sb\'
print(s1 + s2)

# 字符串的* :str * int 。
s1 = \'坚强\'
print(s1*8)

十、用户交互input
input

name = input(\'请输入姓名:\') # 字符串数据类型

等待用户输入,将用户输入的信息,赋值给变量

print(name,type(name))

name = input(\'请输入姓名:\')
age = input(\'请输入年龄:\')

print(\'此用户的姓名:\' + name + \'年龄:\' + age)

 

十一、流程控制语句if。
# if

if 条件:
代码块

 

单独 if

print(222)

if 1 > 2:

print(111)
print(666)

 

双分支
if else

if 1 > 3:
print(666)

else:

print(111)

 

if elif .... 多选一,从上至下依次执行,满足条件就执行结果,后面就不执行了。

if 2 < 1:

print(111)

elif 4 > 1:

print(222)

elif 4 > 3:

print(666)

num = input(\'请输入数字:\')

if num == \'1\':

print(\'请你吃饭。。。\')

elif num == \'3\':

print(\'请你吃雪糕。。。\')

elif num == \'6\':

print(\'请你大宝剑。。。\')

# str --> int

s1 = \'100\'

i1 = int(s1)

print(i1,type(i1))

 

if elif .... else

num = int(input(\'请输入数字:\'))

if num >= 90:

print(\'A\')

elif num >= 80:

print(\'B\')

elif num >= 60:

print(\'C\')

else:

print(\'D\')

 

if 嵌套

username = input(\'>>>\')

password = input(\'请输入密码:\')

if username == \'taibai\':

if password == \'123\':

print(\'登录成功\')

else:

print(\'密码错误....\')

else:

print(\'用户名错误\')

 


十二、流程控制语句while。
#while

while 条件:

循环体

while True:

print(\'第八套广播体操\')

print(\'老鼠爱大米\')

print(\'雨霏霏\')

print(\'月亮之上\')

# 终止循环的方式:

# 1 改变条件。

# 2,break。

flag = True

while flag:

print(111)

print(222)

flag = False

 

flag = True

while flag:

print(111)

print(222)

flag = False

print(333)

 

count = 1

while count < 101:

print(count)

count = count + 1

 

sum1 = 0

count = 1

while count < 101:

sum1 = sum1 + count

count = count + 1

print(sum1)

 

break continue

break 只要循环中遇到break,马上跳出循环。

while True:

print(111)

print(222)

break

print(666)

 

continue

while True:

print(111)

print(222)

continue

print(666)

# while else: 当while循环被break终止时,不执行else程序。

count = 1

while count < 5:

if count >= 3:

break

count = count + 1

else:

print(\'循环结束。。\')

print(666)

 

分类:

技术点:

相关文章: