Python和Java的語法對比,語法簡潔上python的確完美勝出


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"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM