当前位置:文档之家› Python与Java对比学习笔记

Python与Java对比学习笔记

零基础学Python第一天Python简介Python是一种面向对象、直译式计算机程序设计语言,这种语言的语法简捷而清晰,并且具有丰富和强大的类库。

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。

这种机制的基本思想跟Java,.NET是一致的。

然而,Python Virtual Machine与Java或.NET 的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。

这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET 的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。

或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。

目前稳定的版本是3.3,当时目前使用者还不是很多。

我们学习中用到的是2.7。

Python优点简单:Python是一种代表简单主义思想的语言。

阅读一个良好的Python程序就感觉像是在读英语一样。

它使你能够专注于解决问题而不是去搞明白语言本身。

易学:Python极其容易上手,因为Python有极其简单的语法。

免费、开源:Python是FLOSS(自由/开放源码软件)之一。

使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。

FLOSS 是基于一个团体分享知识的概念。

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

可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。

这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian 以及Google基于linux开发的android平台。

解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。

这个过程通过编译器和不同的标记、选项完成。

运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。

而Python 语言写的程序不需要编译成二进制代码。

你可以直接从源代码运行程序。

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

这使得使用Python更加简单。

也使得Python程序更加易于移植。

面向对象:Python既支持面向过程的编程也支持面向对象的编程。

在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。

在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

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

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

丰富的库:Python标准库确实很庞大。

它可以帮助处理各种工作,包括正则表达式、文档HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。

这被称作Python的“功能齐全”理念。

除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。

Python下载安装得到所有Python 相关软件最直接的方法就是去访问它的网站()。

我们可以选择2.7版本学习。

还有一点需要说明的是,学习中的平台是Window。

下载Python后安装,我们现以Python自带的IDLE为开发工具。

该工具在开始->程序->Python2.7里面。

其他IDE在以后的开发中,我们在自行选择吧。

这里就不介绍了。

Python学习现在打开IDLE开发工具。

如下图1、有没有怀念过“hello world”的时代,现在就感受一下Python的“hello world”,如下图:是的就是这么简单。

一个print后面加个字符串就可以搞定。

2我想大家都明白针对与关键字就是Python内部的一些定义。

在我们的开发中是不允许使用的。

你可以通过下面方式的查看Python的关键字。

3、Python标识符定义Python 标识符字符串规则和其他大部分用C 编写的高级语言相似:第一个字符必须是字母或下划线(_),剩下的字符可以是字母和数字或下划线,大小写敏感。

标识符不能以数字开头;除了下划线,其他的符号都不允许使用,也不是你使用关键字。

这里需要注意的一点是:因为下划线对解释器有特殊的意义,还是建议程序员避免用下划线作为变量名的开始。

一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。

当变量是私有的时候,用_xxx 来表示变量是很好的习惯。

因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。

4、Python基本语法4.1、井号(#)表示之后的字符为Python 注释顾名思义就是让我们程序员看的,机器是不执行的。

4.2、反斜线( \ ) 继续上一行如果说在写Python代码时,一行语句写不完。

我们可以用”\”分解成多行。

如下:If(a==1) and \(b==2):Print “hello”特殊情况下可以不同”\”,例如在含有小括号、中括号、花括号时可以多行书写。

另外就是三引号包括下的字符串也可以跨行书写。

在以后的学习总我们还会用到。

4.3、分号( ; )将两个语句连接在一行中编程中你可以多个语句写成一行,语句之间用分号隔开,但是这样会大大降低Python语言的可读性。

不建议大家这样写。

4.4、冒号( : ) 将代码块的头和体分开如果遇到像if、while、def 和class 这样的复合语句,首行以关键字开始,应该以冒号( : )结束。

4.5、语句(代码块)用缩进块的方式体现Python 使用缩进来分隔代码组。

代码的层次关系是通过同样深度的空格或制表符缩进体现的。

同一代码组的代码行必须严格左对齐(左边有同样多的空格或同样多的制表符),如果不严格遵守这个规则,同一组的代码就可能被当成另一个组,甚至会导致语法错误。

注意:对一个初次使用空白字符作为代码块分界的人来说,遇到的第一个问题是:缩进多大宽度才合适?两个太少,六到八个又太多,因此我们推荐使用四个空格宽度。

需要说明一点,不同的文本编辑器中制表符代表的空白宽度不一,如果你的代码要跨平台应用,或者会被不同的编辑器读写,建议你不要使用制表符。

使用空格或制表符这两种风格都得到了Python 创始人Guido van Rossum 的支持,并被收录到Python 代码风格指南文档。

4.6、模块每一个Python 脚本文件都可以被当成是一个模块。

模块以磁盘文件的形式存在。

当一个模块变得过大,并且驱动了太多功能的话,就应该考虑拆一些代码出来另外建一个模块。

模块里的代码可以是一段直接执行的脚本,也可以是一堆类似库函数的代码,从而可以被别的模块导入(import)调用。

第二天Python如何赋值,定义变量。

第一天中我们已经介绍了标识符的定义格式。

现在就来定义几个变量吧。

isInt = -12isString = 'cart'isFloat = 3.1*2如果是Java语言该如何定义呢,每一个变量都需要指定类型。

Int isInt = -12;String isString = “cart”;Float isFloat = 3.1*2;而Python的变量什么类型呢,这个类型是有Python动态判断的。

比如isInt就是int类型。

如何查看定义的变量是什么类型呢,我们可以用type(isInt),type(isString)查看。

如下图:目前Python还不支持char和bytePython的类型标准类型●数字●整型●布尔型●长整型●浮点型●复数型●字符串●列表●元组●字典内建类型●类型●Null 对象(None)●文件●集合/固定集合●函数/方法●模块●类现在特殊说下“内建类型”的类型。

通俗一点讲所有的类型都是类型。

不管是整形还是字符串还是列表或者类,要问它们的类型是什么,它们的类型是类型。

不知道这么说你糊涂了,就好像是绕口令似的。

下面大家看看代码可能会明白些。

现在明白了吗,int的类型是type,type的本身的类型还是type,也就是type是Python的根。

Python有一个特殊的类型,被称作Null 对象或者NoneType,它只有一个值,那就是None。

它不支持任何运算也没有任何内建方法。

如果非常熟悉C 语言,和None 类型最接近的 C 类型就是void,None 类型的值和 C 的NULL 值非常相似(其他类似的对象和值包括Perl 的undef 和Java 的void 类型与null 值)。

None 没有什么有用的属性,它的布尔值总是False。

对于Pyth语言所有的对象都可以用布尔值描述所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。

每个对象天生具有布尔True 或False 值。

空对象、值为零的任何数字或者Null 对象None 的布尔值都是False。

下列对象的布尔值是False。

●None●False (布尔类型)●所有的值为零的数:Edit By Vheavens●Edit By Vheavens●0 (整型)●0.0(浮点型)●0L (长整型)●0.0+0.0j (复数)●"" (空字符串)●[] (空列表)●() (空元组)●{} (空字典)值不是上面列出来的任何值的对象的布尔值都是True,例如non-empty、non-zero 等等。

用户创建的类实例如果定义了nonzero(__nonzero__())或length(__len__())且值为0,那么它们的布尔值就是False。

相关主题