Python是一種廣泛使用的解釋型、高級編程、通用型編程語言,由吉多·範羅蘇姆創造,第一版發佈於1991年。可以視之為一種改良(加入一些其他編程語言的優點,如面向對象)的LISP。Python的設計哲學強調代碼的可讀性和簡潔的語法(尤其是使用空格縮進劃分代碼塊,而非使用大括弧或者關鍵詞)。相比於C+ ...
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"。