标签:分类 基础 汇编语言 类型 evel 高级 关键字 常用 java代理
初识Python
1.1 为什么要编程?
解放人力:让机器(比如计算机)按照人们事先为其编写好的程序自发地去工作。
1.2 什么是编程语言?
人----------->汉语--------------->中国人
八格牙路----------->日本人
汪汪汪------------->狗
编程语言----------->计算机
编程语言即语言,语言的本质就是沟通,因而编程语言与英语 、法语、日语等所有语言并无区别,只不过英语是人与人之间沟通的介质,而编程语言则是程序员与计算机沟通的介质。
程序员把自己想要说的话用编程的语言写到文件里,这其实就开发了一个程序,接下来让计算机按照文件里说的内容去做事情,这就是程序的执行。
1.3 编程语言分为哪些种类?
一:机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
优点:灵活、直接执行和速度快。
缺点:不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。 二:汇编语言:汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的,标识符更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
优点:能完成一般高级语言所不能实现的操作,而且源程序经汇编生成的可执行文件比较小,且执行速度很快。
缺点:源程序比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。 三:高级语言:明确地讲,高级语言就是说人话,用人类能读懂的(比如英文)字符编程。高级语言是绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等。
优点:大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
缺点:高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。
按转换方式可将它们分为两类: 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(如python程序,先翻译/编译成字节码,然后由解释器解释执行,这个过程程序员都无需关心了,享受这种便利即可),一边执行
优点:这种方式比较灵活,调试程序极为方便,程序一旦出错,立即调试立即就可以测试结果
缺点:效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器。只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
编译类:编译是指在程序执行之前,就将程序源代码“翻译”成机器指令,并保存成二进制文件 优点:编译后的代码可以直接在机器上运行,运行速度比解释型要高。 缺点:调试程序麻烦,程序一旦需要修改,必须先修改源代码,再重新编译后才能执行。
总结:编程语言经历了:机器语言-------->汇编语言------------>高级语言(java,C#,php,ruby,python)
1:开发效率从低到高
2:执行效率从高到低
3:掌握难度从难到易
注解:执行效率不是问题,硬件已经足够用,于是开发效率成了关键,因而高级语言在当今世界大行其道。
2.1 Python的前世今身
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言(由Guido参加设计的一种教学语言,是专门为非专业程序员设计的,优美强大但是流产了,非开源)的一种继承。
最新的TIOBE排行榜,Python跃居第五!!!
摘自http://www.tiobe.com/tiobe-index/
由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!
2.2 Python可以应用于众多领域
由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
目前Python主要应用领域:
Python在一些公司的应用:
编译型vs解释型
编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
注解:java代码号称一次编译到处运行,因为java代理需要先编译成字节码(一种中间格式的代码),然后拿着字节码到处运行,每次运行都需要交给jvm去编译成机器指令后才能执行,因而java是混合型
而有的人会有疑问,python代码也是先编译成字节码然后交给python解释器去执行的啊,难道python不是混合型吗?当然不是
1. 只有在import导入py文件时,才会产生pyc字节码文件,该字节码文件是可以代替源文件而直接执行的
2. 但每次执行py文件,产生的字节码并不会保留下来,也就是说,每次执行py文件,都是要重新经历一遍:py文件->字节码-->python解释器-->机器码,每次都是一个重新解释执行的过程。
2.4 Python解释器的种类
python是一门语言,用这门语言写出的代码,需要由python的解释器去解释执行,解释器有如下分类:
以上除PyPy之外,其他的Python的对应关系和执行流程如下:
PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!
3.1程序猿人生的第一句代码
1. 解释器:即时调试代码,代码无法永久保存
2. 文件:永久保存代码
在D:\python_test\目录下新建文件hello.py,编写代码如下
print(‘hello world‘)
执行hello.py,即python D:\python_test\hello.py
python内部执行过程如下:
上一步中执行python D:\python_test\hello.py时,明确的指出 hello.py 脚本由 python 解释器来执行。
在linux平台中如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py
,那么就需要在 hello.py 文件的头部指定解释器,如下:
#!/usr/bin/env python #该行只对linux有效
print(‘hello world‘)
ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py
3.2 文件头
Python2.7版本:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
当行注释:# 被注释内容
多行注释:""" 被注释内容 """
3.4执行脚本输入参数
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
1
2
3
4
5
6
|
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print sys.argv |
执行
C:\Users\Administrator>python D:\python_test\hello.py arg1 arg2 arg3
[‘D:\\python_test\\hello.py‘, ‘arg1‘, ‘arg2‘, ‘arg3‘]
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
4.1 为何要有变量
程序执行的本质就是一系列状态的变化,变量二字的核心一个是变,一个是量,‘变‘正好对应程序的变化,‘量‘即计量,反映的是某种状态,
比如一款游戏中的人物初始等级:level=1,过了一段时间后升级了:level=10
4.2 变量的声明与引用
#!/usr/bin/env python name=‘egon‘ #变量的声明
name #通过变量名,引用变量的值
print(name) #引用并且打印变量名name对应的值,即‘egon‘
4.3 标识符命令规范
4.4变量的赋值
#!/usr/bin/env python
name1=‘lhf‘
name2=‘egon‘
#!/usr/bin/env python
name1=‘lhf‘
name2=name1
#!/usr/bin/env python
#一个游戏人物的等级由1级升到2级
level=1
level=2
#一个游戏帐号的密码由‘123‘改成‘456‘
passwd=‘123‘
passwd=‘456‘
#一个人的名字有‘lhf‘改成‘egon‘
name=‘lhf‘
name=‘egon‘
python3中统一都是input,python2中有raw_input等同于python3的input,另外python2中也有input
1.res=input("python3: ")
2.res=raw_input("python2: ")
3.res=raw_input("python2: ")
1,2无论接收何种输入,都被存为字符串赋值给res,而3的意思是,用户输入何种类型,就以何种类型赋值给res
#!/usr/bin/env python
name=input(‘请输入用户名:‘)
print(name)
执行
C:\Users\Administrator>python D:\python_test\hello.py
请输入用户名:egon
egon
===============================================================================
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python
import getpass
password=getpass.getpass(‘请输入密码:‘)
print(password)
执行(在pycharm中无法执行,需要到终端中执行)
C:\Users\Administrator>python D:\python_test\hello.py
请输入密码:
123456
(1))算术运算
(2)比较运算
(4)位运算
注: ~ 举例: ~5 = -6 解释: 将二进制数+1之后乘以-1,即~x = -(x+1),-(101 + 1) = -110
按位反转仅能用在数字前面。所以写成 3+~5 可以得到结果-3,写成3~5就出错了。
(5)逻辑运算
and注解:
or注解:
and-or结合使用:
(1 and ‘x‘) or ‘y‘
(6)成员运算
(7)身份运算
(8)运算符优先级:自上而下,优先级从高到低
标签:分类 基础 汇编语言 类型 evel 高级 关键字 常用 java代理
原文地址:http://www.cnblogs.com/guozhenle/p/6953204.html