本人写了一段时间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(主要是它只能运用于单核机器),原谅渣渣的我

使用比较:

  1. 基础语法篇:

先个来一个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语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。数字类型包括:byteshortintlong,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.集合的应用:

  1. 列表:

Java 的列表声明方法:

List<String> list=new ArrayList<String>(); //此处举了个存储类型为String的列表

Python 的列表:

List = []   #声明是不是很简单,感觉跟java的数组声明有些像

  1. 字典(map):

这里的叫法不一样,python中将键值对 key – value 叫作 字典,而java中叫作Map,但实际的存储方式其实都是键值对

Java 声明办法:

Map<String,String> map = new HashMap<>(); //声明了一个键值都为String类型的map

Python声明办法:

Dic = {}  #依然简单粗暴

  1. set

java 声明方法:

Set<String> set = new HashSet<>();  //声明一个类型为String的set

Python声明办法:

set () 或者 使用大括号 { }  #此处需要记住这里必须得有set 这个单词在,大小写也记住,要不然解释器也不知道你声明的是啥玩意

至此,我的总结暂时完了,总结的都是些很初级的东西,主要说我本身就很初级~ 但是还是怀着互相学习的精神来写了我这篇处女帖,但我真心不知道咋排版。原谅渣渣得我,我也在努力不渣!有谁有啥问题,可以帖子留言~假如真有问题我一定会改的!

java&python使用对比的浅析的更多相关文章

  1. python编辑器对比和推荐

    python编辑器对比和推荐   我先给一个初步的表格吧,大家如果有什么意见,或有补充,欢迎提出.有些我没有用过,先不写了.以下是我使用过的python IDE: 除了PythonWin, Visua ...

  2. java的this static public protected private abstract interface 在python的对应,java python一些区别

    1.因为工作的原因,最近使用了三个多月的java作为主力语言.很早之前在菜鸟教程也看过java文档两遍,但实践少,处于能看懂写出来不流畅的状态(对于java必须要略懂,不能能看到就头疼跳过,因为现在百 ...

  3. Java集合框架之LinkedList浅析

    Java集合框架之LinkedList浅析 一.LinkedList综述: 1.1LinkedList简介 同ArrayList一样,位于java.util包下的LinkedList是Java集合框架 ...

  4. Java集合框架之ArrayList浅析

    Java集合框架之ArrayList浅析 一.ArrayList综述: 位于java.util包下的ArrayList是java集合框架的重要成员,它就是传说中的动态数组,用MSDN中的说法,就是Ar ...

  5. (八)map,filter,flatMap算子-Java&Python版Spark

    map,filter,flatMap算子 视频教程: 1.优酷 2.YouTube 1.map map是将源JavaRDD的一个一个元素的传入call方法,并经过算法后一个一个的返回从而生成一个新的J ...

  6. 芒果TV招聘研发工程师(JAVA PYTHON),地点长沙

    长沙芒果TV招聘高级 JAVA Python 工程师,工作地点:湖南广电   有兴趣的邮件0xmalloc@gmail.com; zealotyin@qq.com 公司有一大批从北京上海一线互联网企业 ...

  7. paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较

    paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较 ##java ----------- 在JDK1.7中,摒弃了Java集合接口的实现类,如:Ar ...

  8. paip.复制文件 文件操作 api的设计uapi java python php 最佳实践

    paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi   copy() =====java的无,要自己写... ====php   copy ...

  9. paip.获取文件名从路径uapi java python php总结...

    paip.获取文件名从路径uapi java python php总结... =====uapi basename_noext($fname); =============java  自己写.. St ...

随机推荐

  1. 【NLP】暑假课作业1 - 中文分词(前向匹配算法实现)

    作业任务: 使用98年人民日报语料库进行中文分词训练及测试. 作业输入: 98年人民日报语料库(1998-01-105-带音.txt),用80%的数据作为训练集,20%的数据作为验证集. 运行环境: ...

  2. ASP.NET MVC自定义Numberic属性的验证信息

    最近在使用MVC4时碰到一个Model验证的问题:整型属性输入非整型字符串时,错误信息总是“字段 XXX 必须是一个数字”,我总觉得这句话读起来很别扭,所以就萌生了要改变这个默认错误提示信息的念头,但 ...

  3. Java出现次数最多的整数

    描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20.然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来.如果有两个元 ...

  4. CSS小记录

    1.图片铺满 background: rgba(12, 100, 129, 1) url('https://images.cnblogs.com/cnblogs_com/yukarin/1639008 ...

  5. Redis缓存数据库(一)

    先导知识:Memcache Memcache是一个高性能的分布式内存对象缓存系统,代码类似于Hash. 已经有了Memcache,为什么还要用Redis呢? 下面Memcache的缺点: 不支持数据持 ...

  6. C语言递归之二叉树的最小深度

    题目描述 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例 输入:[3,9,20,null,null,15,7] ...

  7. openlayers地图显示点

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. 全网VIP视频解析接口

    全网VIP视频在线解析可以免费观看[腾讯vip视频.爱奇艺vip视频.优酷VIP视频.土豆VIP视频.乐视VIP视频.芒果VIP视频]等等...可以vip免费观看.去广告等等. https vip视频 ...

  9. Oracle 中关于 Group By 子句与多行函数嵌套搭配使用的注意事项

    目录 你需要知道的 啥叫单行函数 啥叫多行函数 如何理解这个概念 Group by 子句使用规则 看一道 071 考题 你需要知道的 提到 Group by 子句,你需要先理解一个东西:函数的分类.提 ...

  10. Arcgis runtime sdk .net 二次开发

    前段时间研究了下 arcgis runtime sdk .net 二次开发··这里做个笔记 runtime版本为100.6 基于WPF 开发 命名空间引入 xmlns:esri="http: ...