首页 > temp > python入门教程 >
-
1.Python基础语法
1.主流编程语言介绍
世界上的编程语言有600多种,但真正大家主流在使用的最多二三十种,不同的语言有自己的特点和擅长领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语言慢慢无人用了。有个权威的语言排名网站,可以看到主流的编程语言是哪些。
1.1.C语言
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它是美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
适合操作系统底层应用程序、驱动程序、对运行速度要求较高的软件开发
缺点:开发效率低,学习成本高
1.2.C++语言
C++是C语言的继承的扩展,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的程序质量与程序设计语言的问题描述能力。
运行速度快,适合游戏开发、服务器高性能后台软件、网络编程、图形处理软件、芯片仿真、机器人等
缺点:开发效率高于C,低于JAVA/Python
1.3.JAVA语言
Java是第一个跨平台的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出,Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
全球使用最广泛的语言,丰富、成熟的生态圈,应用领域极为广泛
缺点:代码臃肿、各种库太多了、设计复杂
1.4.PHP语言
PHP(外文名:PHP:Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于web开发领域。
广泛用于网站开发
缺点:应用领域相对单一,运行速度慢
1.5.GO语言
Go是从2007年末由谷歌开发,并于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。
Go的主要特点是开发效率高,并发性好,号称是可以接近C的运行速度,接近Python的开发效率!
主要用于高性能并发程序开发,著名的Docker容器就是基于GO开发的
缺点:生态圈还不够成熟,应用领域相对单一
1.6.Ruby语言
Ruby是一个与Python类似的解释性语言,开发效率高,学习成本低。著名的ruby on rails web框架在国外有很多人用。
主要用于web开发,虽然其不只能做web开发
缺点:起步晚,它能干的Python都能干,且可以干的更好,所以感觉势能都被Python抢走了。
2.编程语言介绍
2.1.机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。
机器语言属于低级语言。
输出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员之外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是做处理器理解和使用的,尽管机器语言好像是很复杂的,然而它是有规律的。
存在着多至100000种机器语言的指令。这意味着不能把这些钟类全部列出来。
优点是最底层,速度最快,缺点是最复杂,开发效率最低
2.2.汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作中的一个很细微的动作。例如移动、自增,因此汇编程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。
但汇编语言的优点也显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生产的可执行文件不仅比较小,而且执行速度很快。
优点是比较底层,速度最快,缺点是复杂,开发效率最低
2.3.高级语言
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如C\C++,JAVA,PHP,Python,GO,C#等都属于高级语言。
相比机器和汇编语言,高级语言对开发人员更友好,在开发效率上大大提高。
编译型语言执行速度快,不依赖语言环境运行,跨平台差
解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行
3.高级语言分类
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。
按转换方式可将它们分为两类:
3.1.编译类
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是CPU可以理解的二进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。
编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。
1、把源代码编译成机器语言的可执行程序
2、执行可执行程序文件
优点:
1、程序执行时,不再需要源代码,不依赖语言环境,因为执行的是机器码文件
2、执行速度快,因为你的程序代码已经翻译成了是计算机可以直接理解的机器语言
缺点:
1、每次修改了源代码,需要重新编译,生成机器码文件
2、跨平台性不好,不同操作系统,调用底层的机器指令不同,需为不同平台生成不同的机器码文件
3.2.解释类
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生产可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序,如Python、Java、PHP、Ruby等语言。
1、用户调用解释器,执行源代码文件
2、解释器把源代码文件边编译成机器指令,边交给CPU执行
优点:
1、天生跨平台,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不需再考虑平台差异性,可谓,一份源代码,所有平台都可直接执行
2、随时修改,立刻见效,改完源代码后,直接运行看效果
缺点:
1、运行效率低,所有的代码均需经过解释器边解释边执行,速度比编译型慢很多
2、代码是明文
4.Python解释器种类
我们现在知道了Python是一门解释型语言,代码想运行,必须通过解释器执行,Python的解释器本身也可以看作是个程序,这个程序是用好几种语言开发的。因为Python有好几种解释器,分别基于不同语言开发,每个解释器特点不同,但都能正常运行我们的Python代码。
4.1.CPython
当我们从Python官方网站下载并安装好Python2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行Python就是启动CPython解释器。
CPython是使用最广泛的Python解释器。教程的所有代码也都在CPython下执行。
4.2.IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
4.3.PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
4.4.Jython
Jyphon是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
4.5.IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
5.变量
变量用于存储计算机程序中要引用和操作的信息,它们还提供了用描述性名称标记数据的方法,因此读者和我们自己可以更清楚地理解我们的程序。把变量看作保存信息的容器是有帮助的。它们的唯一目的是在内存中标记和存储数据。这些数据可以在你的程序中使用。
6.常量
常量是指不变的量,或在程序运行过程中不会改变的量。
7.注释
代码注释用#
7.1.代码注释原则
不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
8.数据类型
什么是数据类型?
我们人类可以很容易的分清楚数字与字符的区别,但是计算机并不能,计算机虽然强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和“汉”的区别的,因此,在每个编程语言里都会有一个叫数据类型的,你想让计算机进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。
Python中常用的数据类型有哪些呢
8.1.数字类型
8.1.1.int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**312**31-1,即-21474836482147483647
在64位机器上,整数的位数为64位,取值范围为-2**632**63-1,即-92233720368547758089223372036854775807
8.1.2.long(长整型)
跟C语言不同,Python的长整型没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
在Python3里不再有long类型了,全都是int
8.1.3.字符串
在Python中,加了引号的字符都被认为是字符串。
单双引号没有任何区别,多行字符必须用多引号。
8.1.3.1.字符串拼接
字符串相加其实就是简单拼接。相乘其实就是复制自己多少次,再拼接在一起。
字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接单双引号。
8.1.4.布尔类型
布尔类型就两个值,一个True(真),一个False(假),主要用于逻辑判断。
9.运算符
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。
9.1.算数运算
以下假设变量:a=10,b=20
运算符 | 描述 | 实例 |
---|---|---|
+ | 加-两个对象相加 | a + b 输出结果 30 |
- | 减-得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘-两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除-x除以y | b / a 输出结果 2 |
% | 取模-返回除法的余数 | b % a 输出结果 0 |
** | 幂-返回x的y次幂 | a ** b 为10的20次方,输出结果 100000000000000000000 |
// | 取整除-返回商的整数部分 | 9 // 2 输出结果 4,9.0 // 2.0 输出结果 4.0 |
9.2.比较运算
以下假设变量:a=10,b=20
运算符 | 描述 | 实例 |
---|---|---|
== | 等于-比较对象是否相等 | (a==b)返回False |
!= | 不等于-比较两个对象是否不相等 | (a!=b)返回true |
<> | 不等于-比较两个对象是否不相等 | (a<>b)返回true,这个运算符类似!= |
> | 大于-返回x是否大于y | (a>b)返回False |
< | 小于-返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | (a<b)返回true |
>= | 大于等于-返回x是否大于等于y | (a>=b)返回False |
<= | 小于等于-返回x是否小于等于y | (a<=b)返回true |
9.3.赋值运算
以下假设变量:a=10,b=20
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c=a+b将a+b的运算结果赋值为c |
+= | 加法赋值运算符 | c+=a等效于c=c+a |
-= | 减法赋值运算符 | c-=a等效于c=c-a |
*= | 乘法赋值运算符 | c*=a等效于c=c*a |
/= | 除法赋值运算符 | c/=a等效于c=c/a |
%= | 取模赋值运算符 | c%=a等效于c=c%a |
**= | 幂赋值运算符 | c**=a等效于c=c**a |
//= | 取整除赋值运算符 | c//=a等效于c=c//a |
9.4.逻辑运算
运算符 | 描述 |
---|---|
and | 布尔“与”-如果x为False,x and y返回False,否则它返回y的计算值 |
or | 布尔“或”-如果x是True,它返回True,否则它返回y的计算值 |
not | 布尔“非”,如果x为True,返回False,如果x为False,它返回True |
10.流程控制
10.1.单分支
if 条件:
满足条件后要执行的代码
10.2.双分支
if 条件:
满足条件执行代码
else:
if条件不满足就走这段
10.3.多分支
if 条件:
满足条件执行代码
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
else:
上面所有的条件不满足就走这段
11.while循环
语法
while 条件:
执行代码...
while是只要后边条件成立(也就是结果为真)就一直执行
11.1.循环终止语句
如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它终止掉呢?这就用到break或continue语句
1、break用于完全结束一个循环,跳出循环体执行循环后面的语句
2、continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
11.2.while...else玩法
与其它语言else一般只与if搭配不同,在Python中还有个while...else语句
while后面的else作用是指,当while循环正常执行完,中间没有被break终止的话,就会执行else后面的语句
出处:https://www.cnblogs.com/yanyanqaq/p/13163793.html