对比介绍Java和Python

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录1.简介2.语言特点3.版本介绍4.代码书写格式5.注释6.标识符7.变量定义和赋值8.数据类型9.字符串10.输入和输出11.数学运算12.控制流13.函数(方法)14.全局和局部变量15.列表16.元组和字典(PythonOnly)17.模块和包18.异常和文件处理19.面向对象编程20.接口和多重继承21.多线程编程22.图形用户界面编程2013年10月编程语言排行榜Java的特点编译型语言:编译器会生成由字节码组成的.class文件,然后由Java虚拟机来运行静态类型语言:在编译期间就确定数据类型,即要求在使用任意变量前声明数据类型强类型语言:一旦一个变量被指定了某个数据类型,如果不经过强制转换,则它就永远是这个数据类型了面向对象语言:必须面向对象编程,Java中的所有东西都会属于某个类Python的特点解释型语言:解释型语言程序不需要编译,运行时才翻译成机器语言,但Python程序在运行过程中会自动生成字节码文件.pyc或.pyo,改善了Python的性能动态类型语言:使用任意变量前无需声明数据类型,确定一个变量的类型是在第一次给它赋值的时候强类型语言:同Java面向对象语言:不强求以面向对象的方式编程,可以以独立的函数模块来处理逻辑而不需要放到类中Python的特点HighLevelObjectOrientedScalableExtensiblePortableEasytoLearnEasytoReadEasytoMaintainRobustEffectiveasaRapidPrototypingToolAMemoryManagerInterpretedand(Byte-)Compiled版本介绍Java的版本顺序是Java1.02、Java1.1、Java2(1.2、1.3、1.4)、Java5.0(1.5)、Java6.0(1.6),现在已有Java7.0。这里IDE使用EclipsePython的版本分为2.x和3.x两大系列,而2008年底推出Python3.0不向下兼容2.x版本。这里使用的是ActiveState公司提供的免费Python开发集成支持包ActivePython2.7,2.x的最后一个版本,IDE使用Eclipse+Pydev代码书写格式Java:使用分号来分割语句,花括号来分割代码块(类似C)字符串只能用双引号(“”)括起来当一个字符串在一行表示不下,在行尾加一个加号(+),表示字符串在下一行继续Python:使用硬回车来分割语句,冒号和四个空格(Tab)缩进来分割代码块字符串用单引号、双引号或三重引号都可以括起来当表达式在一行表示不下,在行尾加一个反斜杠(\),表示继续上一行分号将两个语句连接在一行中注释Java:/*多行注释*/inta=1;//单行注释/***文档注释*/Python:#注释1a=1#注释2'''注释3'''标识符Java:标识符以字母、下划线(_)或美元符($)开头标识符区分大小写,长度没有限制类和接口名的每个字的首字母大写(MyClass);变量名和方法名的首字的首字母小写其余首字母大写(myName),都限制使用下划线,变量名限制使用$;常量名全部使用大写字母(SIZE_NAME),Python中没有常量Python:标识符以字母或下划线(_)或开头标识符区分大小写以单下划线开头的表示不能直接访问的类属性(_foo),在模块或类外不可以使用,不能用fromxxximport*而导入,但可通过类提供的接口进行访问;以双下划线开头的表示类的私有属性或方法(__foo),只有类对象自己能访问,连子类对象也不能访问;以双下划线开头和结尾的表示内置属性或专用方法(__foo__),普通变量应当避免这种命名风格变量定义和赋值Java的变量分为primitive主数据类型和引用变量inta=1;//在栈内存(stack)中创建一个变量为a的引用,然后查找栈中是否有1这个值,如果没找到就将1存放进来,然后将a指向1。栈的存取速度比堆内存(heap)要快,仅次于寄存器,栈数据可以共享charb=“s”;booleanc=true;//boolean类型与整数类型不相容Stringstr=“shopping”;//String不是原始的数据类型,而是一个类(class),str是引用变量int[]nums=newint[7];//nums是引用变量,创建大小为7的数组,并将它赋值给声明为int[]的变量numsPython的变量在使用前无需声明数据类型,变量在第一次被赋值时自动声明。赋值时不管这个对象是新建的还是已经存在的,都是将该对象的引用(并不是值)赋值给变量a=1#将变量a绑定到了值(或对象)1上面b=“shopping”或b=“shop”+“ping”c=Truex=y=z=1#多重赋值x,y,z=1,2,“Hello”#多元赋值a=b=[1,2,3]#a和b都指向同一个对象a.append(4)printb[1,2,3,4]数据类型Java的primitive主数据类型分为:字符型char(16bit)布尔型boolean(true或false)数值型byte(8bit)、short(16bit)、int(32bit)、long(64bit)、float(32bit)、double(64bit)Python的数字类型分为:整型长整型布尔型(True或False)双精度浮点数复数下列对象的布尔值是False:NoneFalse所有值为0的数“”空字符串[]空列表()空元组{}空字典字符串Java:使用String这个类来表示多个字符,只能用双引号(“”)括起来Stringstr=abc;//先在栈中创建一个对String类的对象引用变量str,然后查找栈中有没有存放abc,如果没有,则将abc存放进栈,并令str指向abc,如果已经有abc则直接令str指向abcStringstr=newString(abc);//用new()来新建对象,它会在存放于堆中,每调用一次就会创建一个新的对象Python:没有字符这个类型,字符串为引号之间的字符集合str=“abc”或str=“a”+“bc”str*2=“abcabc”str[0]=“a”#第一个字符的索引是0str[-1]=“c”#最后一个字符的索引是-1str[:2]=“ab”str[1:]=“bc”“bc”instr=True输入Java:importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){System.out.println(Enterloginname:);Scannersca=newScanner(System.in);Strings=sca.next();System.out.println(Yourloginis:+s);}}Python:user=raw_input(‘Enterloginname:’)print“Yourloginis:”,user输出Java:system.out.println=(“helloworld”);Stringstr=“helloworld”;system.out.println=(str);intnum=1;system.out.println=(“Pythonisnumber”+num);Python:print“helloworld”str=“helloworld”;printstrnum=1print“%sisnumber%d”%(“Python”,num)print“Pythonisnumber”+str(num)数学运算Java:/表示除法,5/3得1,-2/4得0&&,||,!表示逻辑与,逻辑或,逻辑非++表示自增,--表示自减a+=b等价于a=a+b,同Pythonintx=(int)22.5+(int)34.7;强制转型,可能引起精度丢失Python:**表示幂符号,如x**y表示x的y次//表示地板除,即比商小的最大整数,如-2//4和-2/4都得-1,-2.0//4得-1.0,-2.0/4得-0.5,round(-0.5)得-1.0,int(-0.5)得0~按位翻转,~x就是-(x+1)and,or,not表示逻辑与,逻辑或,逻辑非没有自增(++)和自减(--)运算符,可以写成x+=1控制流—if,elseJava:booleanlove=false;if(love==true){System.out.println(Iloveyou);}elseif(love==false){System.out.println(Idon'tloveyou);}else{System.out.println(Idon'tknowyou);}Python:love=Falseiflove==True:printIloveyoueliflove==False:printIdon'tloveyouelse:printIdon'tknowyou控制流程—switch(JavaOnly)intresult=2;switch(result){case1:System.out.println(True);break;case2:System.out.println(False);break;default:System.out.println(Unknown);break;}控制流—whileJava:intnumber=23;intguess=47;booleanrunning=true;while(running==true){if(guess==number){System.out.println(Congratulations,youguessedit.);break;}if(guessnumber){System.out.println(Sorry,numberistoosmall.);guess++;continue;}System.out.println(Sorry,numberistoobig.);guess--;}Python:number=23guess=0running=Truewhilerunning:ifguess==number:print'Congratulations,youguessedit.'breakifguessnumber:print'Sorry,numberistoosmall.'guess+=1continueprint'Sorry,numberistoobig.'guess-=1控制流—forJava:for(inti=0;i5;i++){System.out.println(i);}或int[]integers={0,1,2,3,4};//建立一个数组for(inti:integers){//for(循环变量类型循环变量名称:要被遍历的对象){循环体}System.out.println(i);}Python:foriinrange(5):#range起始缺省是0,步长缺省是1,这里给出序列[0,1,2,3,4]printi方法(类里的函数)Java:方法必须声明返回类型publicclasstest{publicstaticvoidmain(String[]args){testa=newtest();a.MyPet(5,cat);}//不能给Java的方法参数赋默认值publicvoidMyPet(intx,Stringy){System.out.println(Ihave+x++y+s);System.out.format(Ihave%d%ss,x,y);}}方法(类里的函数)Python:defMyPet(pet,number=1):#number缺省值为1'''printthenu

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功