Java 与 Python对比:简单的代码示例

Tags: java python

有些人声称 Python 是比 Java 更有效率。这种说法是危险的,因为可能要花几天时间才彻底证明。从高层次来看,Java 是静态类型的这意味着所有变量名称必须显式声明。与此相反的是,Python 是动态类型,这意味着声明不是必需。动态类型编程语言和静态类型编程语言之间的争论很大。这篇文章不会谈论这些。然而,可以确定的一件事 — Python 是一种解释的语言,并且具有优雅的语法,应用在在许多领域,它是脚本和快速应用程序开发的一个非常好的选择。
在这里,我会涵盖一些基本的语言部分,如字符串、 控制流、类、继承、文件 i/o 等。他们都将通过使用相似的例子进行比较。我希望这可以向java程序员大致描述,Python和Java在做同样的事情时有何不同。粗略看下下面的代码,我们可以发现 Python 代码是要短得多,尽管一些Java”class shell"(在 Java 一切始于一个类定义) 未列出。这可能是为什么 Python 会更有成效的原因之一。

1. Hello World 

用最简单的程序开始。Java 仅仅打印一个字符串需要大量的代码。第一个示例显示 Python 更简洁。

JAVA

public class Main {
  public static void main(String[] args) {
     System.out.println("hello world");
   }
}

Python

print "hello world";

首先,我们在 Java 中无论做什么都需要首先编写一个类,然后在类中实现我们所需的方法。有时,这是非常令人讨厌,它会浪费时间。在 Python 中,您可以简单地开始编写代码,然后运行它。

2. 字符串操作

JAVA

public static void main(String[] args) {

    String test = "compare Java with Python";

    for(String a : test.split(" "))
        System.out.print(a);
}

Python

a="compare Python with Java";
print a.split();

 Python中有很多的字符串方法比 Java更好更简便,例如,lstrip()、 rstrip() 等。

3. 控制流

JAVA

int condition=10; 

//if
if(condition>10)
    System.out.println("> 10");
else
    System.out.println("<= 10"); 
    
//while
while(condition>1){
    System.out.println(condition);
    condition--;
} 

//switch
switch(condition){
    case 1: 
        System.out.println("is 1"); 
        break;
    case 2: 
        System.out.println("is 2"); 
        break;
} 

//for
for(int i=0; i<10; i++){
    System.out.println(i);
}

Python

condition=10; 

# if

if condition > 10:    
    print ">10"
elif condition == 10:
    print "=10"
else:
    print "<10"

#while
while condition > 1:
    print condition
    condition = condition-1
    
#switch
def f(x):    
    return {
        1 : 1,
        2 : 2,
    }[x]
    
    print f(condition); 
    
#for    
for x in range(1,10):
    print x;

4. 类和继承

JAVA

class Animal{
    private String name;
    public Animal(String name){
        this.name = name;
    }
    public void saySomething(){
        System.out.println("I am " + name);
    }
}
 
class Dog extends Animal{
    public Dog(String name) {
        super(name);
    }    
    public void saySomething(){
        System.out.println("I can bark");
    }
}
 
public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Chiwawa");
        dog.saySomething();
 
    }
}

Python

class Animal():
 
        def __init__(self, name):
            self.name = name
 
        def saySomething(self):
            print "I am " + self.name    
 
class Dog(Animal):
        def saySomething(self):
            print "I am "+ self.name \
            + ", and I can bark"
 
dog = Dog("Chiwawa") 
dog.saySomething()

5. 文件与 I/O

Java

File dir = new File(".");// get current directory

File fin = new File(dir.getCanonicalPath() + File.separator
                + "Code.txt");
FileInputStream fis = new FileInputStream(fin);

//Construct the BufferedReader object
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String aLine = null;
while ((aLine = in.readLine()) != null) {
    // //Process each line, here we count empty lines
    if (aLine.trim().length() == 0) {
    }
}
 
// do not forget to close the buffer reader
in.close();

Python

with open(“/home/xiaoran/Desktop/test.txt”) as myFile:
     print myFile.read();

正如我们可以看到在JAVA中为了读取一个文件,我们需要import很多的类,而且,我们还要处理方法可能引发的异常。在 Python中只需要两行。

6. Collections

JAVA

import java.util.ArrayList;
 
public class Main {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();
        al.add("a");
        al.add("b");
        al.add("c");
        System.out.println(al);
    }
}

Python

aList = []
aList.append("a");
aList.append("b");
aList.append("c");
print aList;

Java 与 Python对比:简单的代码示例这篇文章只是粗浅的比较, 在实际的编程过程中,Python文档仍然是最好参考方式。

   

   

本文链接:http://www.4byte.cn/learning/120039/java-yu-python-dui-bi-jian-dan-de-dai-ma-shi-li.html