语言 优势 缺点
机器语言 最底层,执行速度快 最复杂,开发效率最低
汇编语言 比较底层,执行速度较快 复杂,开发效率低
高级语言 编译型:
执行速度快,不依赖语言环境运行 跨平台差
解释型:
跨平台好,一份代码,导出可用 执行速度慢,依赖解释器才行
高级语言又分为:编译型和解释型
编译型:执行速度快,调试麻烦
解释型:执行速度慢,调试方便
学习难度从高到低
执行效率从高到低
开发效率从低到高
最新排行见连接:https://www.tiobe.com/tiobe-index/html
下面是18年与17年的排行对比表python
咱们如今知道了Python是一门解释型语言,代码想运行,必须经过解释器执行,Python的解释器自己也能够看做是个程序(翻译官司是哪国人不重要),这个程序是什么语言开发的呢? 答案是好几种语言? what? 由于Python有好几种解释器,分别基于不一样语言开发,每一个解释器特色不一样,但都能正常运行咱们的Python代码,下面分别来看下: #CPython:CPython是使用最广且被的Python解释器。本教程以CPython为准。 当咱们从Python官方网站下载并安装好Python 2.7后,咱们就直接得到了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,因此叫CPython。在命令行下运行python就是启动CPython解释器。 #IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所加强,可是执行Python代码的功能和CPython是彻底同样的。比如不少国产浏览器虽然外观不一样,但内核其实都是调用了IE。 CPython用>>>做为提示符,而IPython用In [序号]:做为提示符。 #PyPy PyPy是另外一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),因此能够显著提升Python代码的执行速度。 绝大部分Python代码均可以在PyPy下运行,可是PyPy和CPython有一些是不一样的,这就致使相同的Python代码在两种解释器下执行可能会有不一样的结果。若是你的代码要放到PyPy下执行,就须要了解PyPy和CPython的不一样点。 #Jython Jython是运行在Java平台上的Python解释器,能够直接把Python代码编译成Java字节码执行。 #IronPython IronPython和Jython相似,只不过IronPython是运行在微软.Net平台上的Python解释器,能够直接把Python代码编译成.Net的字节码。
序号程序员 |
优势web |
缺点算法 |
1编程 |
简单易懂,易于学习flask |
运行速度慢,可是在大多数状况下已经彻底知足了对程序速度的需求,除非写对速度要求极高的搜索引擎等windows |
2浏览器 |
开发效率高网络 |
代码不能加密——Python是解释型语言,因此它的源码是以明文形式存在的 |
3 |
高级语言——无需考虑底层细节 |
线程不能利用多CPU问题 |
4 |
可移植性——Python几乎能够移植到任何操做系统上运行 |
|
5 |
可扩展性——若想的一段代码运行的更快或者但愿某些算法不公开,你能够把你的部分程序用C或C++编写,而后在你的Python程序中使用它们。 |
|
6 |
可嵌入性——你能够把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能 |
|
Python目前已支持全部主流操做系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上须要安装一下,超简单
打开官网 https://www.python.org/downloads/windows/ 下载中心
目前市场已开发软件,大多数基于2.x版本,但2.x版本已经不作升级;因此3.x版本是将来应用的趋势,因此须要安装的这两个版本,学习中了解之间差别所在,并能灵活运用
windows多版本并存,设置环境变量;并更改引用标识
设置环境变量
Python程序和script
不一样版本并存
运行程序的方式: 1、交互性执行代码文件(调试方便,不能永久保存 ) 2、建立程序保存到文件中(调试不方便,能够永久保存),和文件后缀名无关 运行过程 1、打开Python程序,放到内存中 2、读取磁盘文件内容到内存中 3、执行文件内容
变量即变化的量,核心是“变”与“量”,变即变化,量即衡量状态
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,因此须要一种机制可以 反应或者是保存下来程序执行状态和状态的变化。
变量名 赋值 变量值 内存(空间)地址经过ID标识 删除内存空间(其余语言须要写代码进行删除操做,Python有本身内存管理机制,会自定删除) ##方法1:从新定义变量名 ##方法2:删除变量的绑定关系 del age #while 设定变量,改变一次变量,全部的生效
['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']
注意:一、变量名不要为中文、拼音
二、变量名过长
三、变量名词不达意
强调:一、id相同,意味着type和value一定相同
二、value相同,type确定相同,但id不必定相同
常量是指不变的量:如π,在程序运行过程当中不会变化的量
在Python中没有一个专门的语法表明常量,程序员约定俗称用变量名所有大写表明常量 例如:AGE_OF_DOG = 10
http://www.javashuo.com/article/p-tbwnlmpq-q.html
更详细:http://www.javashuo.com/article/p-zhpvrmid-d.html
#在python3中
input:用户输入任何值,都存成字符串类型
#在python2中
input:用户输入什么类型,就存成什么类型
raw_input:等于python3的input
#!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "wzs" # Date: ${DATE}
定义:age=28 #age=int(28)的简写
用于标识:年龄,等级,个数等只能整数标识的东西
定义:salary=10000.33,#salary=float(10000.33)
用于标识:工资、身高、体重等
在python中,加了引号就是字符串累心,python并无字符类型
定义:name='wzs' #name=str('wzs')
用于标识:描述性的内容(单一属性),如国籍,姓名,性别等等
单引号、双引号、多引号有什么区别 通常状况使用单引号便可,但在所描述的内容有单引号时,外面须要用双引号 msg = "I'm 20 years old!
多引号做用就是注释多行字符串
1 msg = ''' 2 今天是2017年9月5日17:15:11 3 星期二 4 天气:晴 5 ''' 6 print(msg)
字符串拼接:字符串只能进行相加和相乘运算(注意:字符串相加效率不高,并且只能是字符串相加,数据量小时,可使用)
字符串1+字符串2,并不会在字符串1的基础上加字符串2,而是申请一个新的空间存放字符串1和字符串2,至关于字符串1和字符串2的空间被复制了一份
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 name = 'wzs' 4 age = '26' 5 nationality = '中国' 6 print(name+age+nationality) 7 print(name*3)
在[ ]内用逗号分隔,能够是n个任意类型的值
定义:students = ['xiaoming','alex','egon','Dave']
用于标识:存储多个值的状况,一个组内有多个值
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 hobbies = ['play','read','run','music'] 4 print(type(hobbies)) 5 print(hobbies[0]) 6 print(hobbies[2]) 7 print(hobbies[-2]) 8 9 l = [1,'wzs',4,['a','b']] 10 print(l[3][1])
在{ }内用逗号分隔,能够存放多个key:value的值,value能够是任意类型的值
定义:info = {'name':'wzs','age':28,'height':170}
用于标识:存储多个值的状况,每一个值都是惟一一个对应的key,能够更高效的取值
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 info = { 4 'name':'wzs', 5 'hobbies':['run','read'], 6 'company_info':{ 7 'name':'腾讯', 8 'type':'互联网', 9 } 10 } 11 print(info['company_info']['type']) #取出人员所在公司的类型
逻辑判断——布尔值有两个:True和Flase
判断一个条件成立时,返回True标识;判断一个条件不知足时,返回Flase标识。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 a = 3 4 b = 10 5 print(a > b) 6 print(a < b) 7 8 if a > b: 9 print('a is bigger than b') 10 else: 11 print('a is smaller than b')
重点:
一、可变类型(mutable):在id不变的状况下,value能够变,则称为可变类型,如列表、字典(可变类型不可hash)
二、不可变类型(unmutable):value一旦改变,id也改变,则称为不可变类型(id变,意味着建立了新的内存空间),例如:数字,字符串,元组
要求用户输入信息,而后打印成固定的格式
占位符:%s %d数字
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 name = input("Name:") 7 age = input("Age:") 8 sex = input("Sex:") 9 job = input("Job:") 10 11 info1 = ''' 12 ----------------info of {0}--------------------- 13 Name :{0} 14 Age :{1} 15 Sex :{2} 16 Job :{3} 17 -----------------end---------------------------- 18 '''.format(name,name,age,sex,job) 19 20 # print(info1) 21 info2 = ''' 22 ----------------info of %s--------------------- 23 Name :%s 24 Age :%s 25 Sex :%s 26 Job :%s 27 -----------------end---------------------------- 28 '''%(name,name,age,sex,job) 29 print(info2)
计算机能够进行的运算有不少种,可不仅加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天咱们暂只学习算数运算、比较运算、逻辑运算、赋值运算
特色:没有代码块标志符,python的代码特色是以缩进为标志
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 age = input('>>:') 7 age=int(age) 8 if age >= 18: 9 print('Please come in!') 10 else: 11 print('Do Not Enter!!!')
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 age = input('age>>:') 7 age=int(age) 8 sex = input('sex>>:') 9 card = input('card>>:') 10 if age >= 18 and sex == 'male' and card == '有': 11 print('Please come in!') 12 else: 13 print('Do Not Enter!!!')
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 age = input('age>>:') 7 age=int(age) 8 sex = input('sex>>:') 9 card = bool(input('card>>:')) 10 success = False 11 # success = True 12 if age >= 18 and sex == 'male' and card == True: 13 if success: 14 print('Please come in!') 15 else: 16 print('Please leave here!') 17 else: 18 print('Do Not Enter!!!')
if ..elif ..elif..else #能够查看三次分数的等级
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 6 count = 0 7 while count < 3: 8 score = int(input("your score>>:")) 9 count += 1 10 if score >= 90: 11 print('优秀') 12 elif score >= 80: 13 print('良好') 14 elif score >= 70: 15 print('及格') 16 else: 17 print('太差了')
while 条件:
循环体
若是条件为真,那么循环体则执行,执行完毕后再次循环,从新判断条件。。。
若是条件为假,那么循环体不执行,循环终止
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 count = 0 6 while True: 7 if count > 100: 8 break 9 print(count) 10 count +=1
从0到10,跳过7
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 count = 0 6 while count <= 10: 7 if count == 7: 8 count +=1 ##注意这个是必须的 9 continue 10 print(count) 11 count +=1
1 count = 0 2 while count <= 10: 3 # if count == 7: 4 # break 5 print(count) 6 count +=1 7 else: 8 print('while正常结束了,没有被break打断,才会执行这里的代码')
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 import time 6 num = 0 7 while True: 8 print('count',num) 9 time.sleep(1) 10 num+=1
范例
1 tag=True 2 3 while tag: 4 5 ...... 6 7 while tag: 8 9 ........ 10 11 while tag: 12 13 tag=False
1 循环验证用户输入的用户名与密码 2 认证经过后,运行用户重复执行命令 3 当用户输入命令为quit时,则退出整个程序
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 6 name = 'wzs' 7 password = 'wzs123' 8 9 while True: 10 Name = input('用户名:') 11 Pwd = input('密码:') 12 if Name == name and Pwd == password: 13 cmd = input('命令>>:') 14 if not cmd:continue 15 if cmd == 'quit': 16 break 17 print('run <%s>' %cmd) 18 else: 19 print('用户名或密码错误') 20 continue 21 break
使用tag的
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 6 name = 'wzs' 7 password = 'wzs123' 8 tag = True 9 while tag: 10 Name = input('用户名:') 11 Pwd = input('密码:') 12 if Name == name and Pwd == password: 13 while tag: 14 cmd = input('命令>>:') 15 if not cmd:continue 16 if cmd == 'quit': 17 break 18 print('run <%s>' %cmd) 19 else: 20 print('用户名或密码错误') 21 continue 22 break
for i in range(10): print(i)
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 for i in range(1,10): 4 for j in range(1,i+1): 5 print('%d * %d = %d'%(i,j,i*j),end='\t') 6 print('')