Java、Python语法区别(不断更新)
基本语句、文件方面
- Java中的字符是单引号,字符串是双引号;Python则是单双都可以
- Java语句结束有分号;,Python没有(写分号也正确)
- Java中程序执行需要有main函数,Python可以不写出来(程序执行时仍是执行main函数)
- Java语句都是在类中进行的(Java是完全面向对象)
- 源文件后缀分别是.java和.py
- Java的缩进不是必须的,只是为了格式好看;Python中的缩进则是必须且重要的
- Java文件名必须保存为与main方法所在类的类名相同,Python则不用
- Java用大括号区分处于同一个块的语句,而Python用缩进区分
- 条件、循环语句,Java没有冒号:,Python有冒号:
- 条件、循环语句,对于条件表达式,Java需要用括号括起来;Python不需要
- 条件、循环语句,条件表达式,Java必须是boolean类型;Python还可以是null和整型
- for循环
//Java for ( n : arr ){ //循环体 } //python for n in arr: //循环体
- 同理 if条件判断:
//Java if (条件1){ //执行语句1 } else if (条件2){ //执行语句2 } else { //执行语句3 } //Python if 条件1: //执行语句1 elif 条件2: //执行语句2 else //执行语句3
- 异常抛出的句式:Java用try...catch...finally ;Python用try...except..else...finally;
//Java try { //可能出错的语句 } catch(Exception1 e){ //捕获到1类错误时的后续处理 } catch(Exception2 e){ //捕获到2类错误时的后续处理 } .... finally{ //不管是否捕获,都会执行的语句 } //Python try: //可能出错的语句 except xxxError: //捕获异常时的后续处理
- 异常抛出的写法:
//Java throw new 异常类("报错语句"); //Python raise 异常类("报错语句");
- 正则表达式:Java转义字符双斜杠"\\";Python的转义字符都是单斜杠'\';
- 或与非:Java——&&、||、!;Python——and、or、not;
- 如果要判断变量A是否为null,Java中不能用 !A,Python中可以用 not A
//Java if(A == null){ ... } //Python if not A: ...
数据类型方面
- 定义变量时,不写初始值,Java中,普通类型默认为0,引用类型默认为null;Python会出错
- 定义变量时,Java必须指定变量类型,Python不需要
- 布尔类型,Java是true、false;Python是True、False
- Java空值null;Python空值Null
- 强制类型转换时,Java需要将转换函数用括号括起来,像这样 (int)42.7,如果需要对某个表达式的结果进行类型转换,需要同时把类型和表达式括起来,比如(int)(12.0/1.4);Python则是将需要转换的数据括起来,像这样int(42.7);
- 初始化,Java中所有数据在定义时即使没有初始化数值,仍会被自动赋予一初始值;Python则不会;所以Java中的数据,基本不会出现由于没赋值而产生的错误;
- 类型检查:
//Java:instanceof //用法:变量 instanceof 类型 //返回true或false; boolean isDouble = n instanceof Double; //Python:isinstance //用法:isinstance(变量,类型) //返回True或False isDouble = isinstance(n,double)
数组
- Java数组定义方式与C++动态数组定义方式类似;Python直接用中括号[]赋值就可以
- Java数组大小固定,不可更改;Python可通过append方法向其中加数据
- 表示时,Java数组边界为大括号{};Python是中括号;
Java_arr={1,2,3}; Py_arr=[1,2,3]
类
- 类方法中表示当前实例的变量:
Java——this.xxx
C++——this->xxx
Python——self.xxx
- 继承
//Java class A extends B{} //python class A(B){}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性