1. 程式人生 > >Python和Java的語法對比,語法簡潔上python的確完美勝出

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"。

 

   歡迎小夥伴們關注,不定期分享學習心得及學習資料

&n