Python和Java的语法对比分析语法简洁上python的确完美胜出
作者:成杭君 发布时间:2023-08-10 17:06:54
Python是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”。
那么Python和Java在语法上有什么区别呢,让我们通过几个生动的例子来一探究竟。
目标1:输出hello,world
Python版
print("hello,world")
Java版
public class HelloWorld { //这里的HelloWorld需要与文件名相同
public static void main(String[] args) {
System.out.println("hello,world");
}
}
目标2:获取键盘输入,并输出
Python版
name = input("请输入您的名字:")
print(name)
Java版
import java.util.Scanner;
public class inputstr {
public static void main(String[] args) {
System.out.println("请输入您的名字:");
String name = new Scanner(System.in).next();
System.out.println(name);
}
}
目标3:输出1到10的随机一个数字
Python版
import random
print(random.randint(1,10))
Java版
import java.util.Random;
public class prandom {
public static void main(String[] args) {
System.out.println(new Random().nextInt(10)+1)
}
}
目标4:指定一个列表或数组,[51, 22, 93, 17, 77, 31, 44, 55, 20],请对其快速排序
Python版
def quicksort(lis):
if len(lis) < 2:
return lis
mid = lis[len(lis)//2]
lis.remove(mid)
left, right = [], []
for li in lis:
if li >= mid:
right.append(li)
else:
left.append(li)
return quicksort(left) + [mid] + quicksort(right)
if __name__ == "__main__":
li = [51, 22, 93, 17, 77, 31, 44, 55, 20]
newl = quicksort(li)
print(newl)
Java版
import java.util.ArrayList;
public class quickpractise {
public static void main(String[] args) {
int list[] = {51, 22, 93, 17, 77, 31, 44, 55, 20};
ArrayList<Integer> lis = new ArrayList<>();
for (int i=0;i<list.length;i++){
lis.add(list[i]);
}
ArrayList<Integer> newl = quicksort(lis);
System.out.println(newl);
}
public static ArrayList<Integer> quicksort(ArrayList<Integer> lis) {
if (lis.size() < 2) {
return lis;
}
int len = lis.size()/2;
int mid = lis.get(len);
lis.remove(len);
ArrayList<Integer> left = new ArrayList<>();
ArrayList<Integer> right = new ArrayList<>();
for (int i=0;i<lis.size();i++){
int a = lis.get(i);
if (a>=mid){
right.add(a);
}
else{
left.add(a);
}
}
ArrayList<Integer> left1 = quicksort(left);
ArrayList<Integer> right1 = quicksort(right);
left1.add(mid);
for (int i=0;i<right1.size();i++){
left1.add(right1.get(i));
}
return left1;
}
}
最后总结一下,在Java中每使用一个变量都要定义类型,函数定义的时候如果有返回值还要把返回类型也要写上。python中定义列表很简洁不需要通过指定个数和内容来定义,Java中定义了个数以后是不能变的,如果需要可以变需要通过ArrayList<>来定义,类型也需要指定。总体感觉在同样的思路下,去完成一个代码,python的确完美胜出,正应了那句话:"Life is short,I use python"。
总结
以上所述是小编给大家介绍的Python和Java的语法对比分析语法简洁上python的确完美胜出,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.cnblogs.com/spiderc/archive/2019/05/09/10841891.html


猜你喜欢
- Java线程的生命周期的详解对于多线程编程而言,理解线程的生命周期非常重要,本文就针对这一点进行讲解。一、线程的状态线程的存在有几种不同的状
- 苹果上的UI基本上都是这个效果,然而Android机上的顶部状态栏总是和app的主题颜色不搭。还好如今的api19以上的版本,我们也能做出这
- 苹果的iphone 有语音识别用的是Google 的技术,做为Google 力推的Android 自然会将其核心技术往Android 系统里
- 一、添加插件apply plugin: 'maven-publish'二、添加如下配置//打包源码task sourceJa
- 目录场景介绍自动填充处理器Mybatis-Plus配置类配置实体类中相关字段的自动填充策略在阿里开发手册的建表规约中有说明,数据库表中应该都
- 本文实例讲述了C#实现功能强大的中国农历日历操作类。分享给大家供大家参考。具体如下:这个C#类定义了中国农历日历,除了可以输入正常的日历外还
- 今天无意中发现一个圆形进度,想想自己实现一个,如下图:基本思路是这样的:1.首先绘制一个实心圆2.绘制一个白色实心的正方形,遮住实心圆3.在
- 一、注解@PostConstruct使用注解@PostConstruct是最常见的一种方式,存在的问题是如果执行的方法耗时过长,会导致项目在
- 一、为基本数据类型起别名typedef int myint;myint x = 5;"myint"是"int&
- 前言在使用maven配置Mybatis generator插件时报以下错误,generator插件一直无法使用,查询资料说和eclipse版
- 目录Future -> 代表的是未来的一个凭据AsynFuture -> Future具体实现类FutureService -&
- 直接调用Math里面的random即可,简单方便int i = (int)(Math.random()*100+1);
- 介绍众所周知,AOP(面向切面编程)是Spring框架的特色功能之一。通过设置横切关注点(cross cutting concerns),A
- 概述模板方法模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。那么什么是模板方法呢?我们看下模板方法的定义。一个具体方法而非
- 本文是利用ZXing.Net在WinForm中生成条形码,二维码的小例子,仅供学习分享使用,如有不足之处,还请指正。什么是ZXing.Net
- 0x00:前言参考之前的《MyBatis 中 SqlMapConfig 配置文件详解》记了一下 MyBatis 中的核心配置文件各个标签的作
- 1. * 在 Spring Boot 可以可以在以下情况执行操作:在将请求发送到控制器之前在将响应发送给客户端之前2. * 使用下面实现
- 堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉
- 配置文件形式pom.xml<?xml version="1.0" encoding="UTF-8&quo
- 目录第一种第二种第三种随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:第一种:new Rand