JAVA&PYTHON使用对比的浅析 本人写了一段时间java了,最近半年在写python,遂想将其使用中的共同点和异同点整理出来,方便自己和大家学习。

两者的本质区别,请参考如下别人写的帖子: https://blog.csdn.net/sinat_30603081/article/details/78489261?locationNum=1&fps=1 https://blog.csdn.net/qq_17635843/article/details/77880694 本人不是特别清楚,只大概知道java 是强类型语言,python是弱类型语言,java 的运行速度和效率高于python(主要是它只能运用于单核机器),原谅渣渣的我 使用比较: 基础语法篇: 先个来一个hello world 镇镇楼: public class HelloWorld { public static void main(String []args) { System.out.println("Hello World"); } } if __name__ == '__main__': print("Hello World") 此处大家已经明显感觉到了 java是通过花括号({ })和分号来区分代码的,而python通过代码缩进来保障这一点的,所以大家在写python代码时一定得注意行缩进,要不然后期代码会报错的,这点也是python异于别的语言的一个特点。 2.修饰符: Java的: public , protected, private Python的:双下划线“__” 表示私有 3.数据类型: Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。数字类型包括:byte,short,int,long,float,double, Python:Number(数字),String(字符串),List(列表),Tuple(元组),Set(集合),Dictionary(字典) 这里python语言比起java 有些特殊,如List ,Tuple,Set等在java为内置的集合类,而在python却是一种数据类型,python的数字类型支持: int、float、bool、complex(复数)这四种类型,此处大家需要注意一些东东:python3 和 python2在int类型上有个区别,那就是python2 支持支持整形和长整型两种数字类型,而python3 只有整形,还有一个问题很重要很重要的,那就是python2 本身是没有布尔类型的,它用0表示False,用1表示True,到了python3,把True,和Fale作为了关键字,但是它们的值还是0和1,仍然可以进行加减。剩下的String 字符串类型和java中的String 类相似,至于 List(列表),Tuple(元组),Set(集合),Dictionary(字典) 我会在后续的java 集合类内会做对比的。 4.运算符: 算数运算符: Java 和python 支持基本的 + - * / 以及 % 运算,特殊的是java 还支持 自增 ++ 以及自减 – 运算,而python还支持一些幂运算 ** ,以及取整除运算 //,这些运算java只能通过调用内置大的一些方法和api才能达到对应的效果 比较运算符: 二者均支持:== != > < >= <= 这6个运算符 位运算符: 二者均支持:& | ^ ~ >> << 这6个运算符 逻辑运算符: Java支持的逻辑运算符为: && || ! Python支持的逻辑运算符为:and or not 特有篇: 最后 python还支持成员运算符 :in 以及 not in这是java所没有的 和身份成员运算符:is 和 is not 运算优先级请看如下截图(出自菜鸟教程): Python篇: Java篇: 5.循环篇: Java篇: 支持如下三种循环用法: while 循环 do…while 循环 for 循环 其中 while的用法: while( 布尔表达式 ) { //循环内容 } do……while 用法为: do { //代码语句 }while(布尔表达式); for 的用法: for(初始化; 布尔表达式; 更新) { //代码语句 } python篇: while 循环 for 循环 其中 while的用法: while 判断条件: 语句 for 的用法: for 变量 in 序列: 语句 总结:在日常使用中for是使用最多的循环,此处java 和 python 中都有很多很经典的用法,大家需要很好的掌握,请自行学习别的帖子,此处我不做过多陈述。 条件控制: Java与python都支持if……else…… 语句,还有同时支持 if...else if...else 语句,只不过 python的这个语句表达式是这样的 if...elif...else ,逻辑判断结构都是一样的只是python的这个表达式较java 比较特殊罢了。 当然 java除了支持if……else 这样类似的结构外还支持 switch …… case结构,此处我也不做过多陈述了 6.异常处理: Java 篇: try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 } 抛出异常方法: throw/ throws 异常名 Python篇: try: <语句> #运行别的代码 except <名字>: <语句> #如果在try部份引发了'name'异常 except <名字>,<数据>: <语句> #如果引发了'name'异常,获得附加的数据 else: <语句> #如果没有异常发生 抛出异常方法:raise [Exception [, args [, traceback]]] 此处java 与 python的捕获异常方法类似,只不过一个捕获异常使用 catch,一个使用except罢了。此处python更灵活点,多了个else语句。 7.面向对象: 类的声明: Java: public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } } Python: class Dog: breed = "" age = 0 color = "" def barking () : pass def hungry () : pass def sleeping () : pass 此处我为了找个对应的例子然后写了个很挫的例子,就是为了让大家可以更清晰python的举例 构造方法: Java的: public class Puppy{ public Puppy(){ } public Puppy(String name){ // 这个构造器仅有一个参数:name } } Python的: class Puppy: def __init__(self,name): pass 其中的 __init__ 就是python的构造方法 创建对象: Java 篇: public class Puppy{ public Puppy(String name){ //这个构造器仅有一个参数:name System.out.println("小狗的名字是 : " + name ); } public static void main(String []args){ // 下面的语句将创建一个Puppy对象 Puppy myPuppy = new Puppy( "tommy" ); } } Python 篇: class Puppy: def __init__(self,name): print ("小狗的名字是 : %s" % name) if __name__ == '__main__': puppy = Puppy("tommy ") 权限修饰符: 这个时候大家会问,java 有 public ,private 等权限修饰符,python有吗,我得郑重说有呀,必须有呀,只不过python 跟java 类似假如不显示声明的话默认都是公共的,假如在属性和方法面前加上”__”(此处是两个下划线) 时表示的就是私有属性或者私有方法了。 方法&函数: Java 中的方法对应python中叫函数,别问我为啥,我就看别的文档都这么写的,声明方法: Java 篇: public /private/protected 返回类型 方法名(参数){ 方法体 } Python 篇: def __ 或者此处啥都不写 方法名(参数与): 方法体 基本上与java的类似就是多了个 def 罢了 继承: Java 篇: class 父类 { } class 子类 extends 父类 { } python篇: class 派生类 (父类) 这里你会发现其实java 和 python就是省略了一个 extends ,此处我大概点拨一下一个东东,那就是java 只能支持一个一个的继承,而python 很牛逼呀,支持多重继承,这点简直碉堡了 8.集合的应用: 列表: Java 的列表声明方法: List list=new ArrayList(); //此处举了个存储类型为String的列表 Python 的列表: List = [] #声明是不是很简单,感觉跟java的数组声明有些像 字典(map): 这里的叫法不一样,python中将键值对 key – value 叫作 字典,而java中叫作Map,但实际的存储方式其实都是键值对 Java 声明办法: Map map = new HashMap<>(); //声明了一个键值都为String类型的map Python声明办法: Dic = {} #依然简单粗暴 set java 声明方法: Set set = new HashSet<>(); //声明一个类型为String的set Python声明办法: set () #此处需要记住这里必须得有set 这个单词在,大小写也记住,要不然解释器也不知道你声明的是啥玩意 至此,我的总结暂时完了,总结的都是些很初级的东西,主要说我本身就很初级~ 但是还是怀着互相学习的精神来写了我这篇处女帖,但我真心不知道咋排版。原谅渣渣得我,我也在努力不渣!有谁有啥问题,可以帖子留言~假如真有问题我一定会改的!https://www.cnblogs.com/Solomon-Kane-zm/p/10092243.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信