官术网_书友最值得收藏!

與其他語言相比,Python如何呢?在何時何地你會優先選擇某一種語言呢?本節會展示一些其他語言的樣例代碼,以便讓你見識一下Python的競爭對象是什么樣子。沒有使用過這些語言也不必擔心,因為你不需要看懂所有代碼。(讀完本書之后,你會發現也沒必要非得使用某些語言。)

下面的每個程序都會打印出一個數字和一句自我介紹。

如果你使用的是終端或者終端窗口,則讀取你輸入的命令、運行并顯示結果的程序稱為shell程序。Windows的shell叫作cmd,它會運行后綴為.bat的批處理文件。Linux和其他類Unix系統(包括macOS)則擁有很多shell程序,其中最流行的是bash或者sh。shell提供了各種簡單的功能,比如簡單的邏輯判斷以及把*等通配符擴展為文件名。你可以把命令保存到文件(shell腳本)中隨后運行。shell可能是程序員接觸到的第一個程序。不過shell腳本在規模超過數百行之后就難以很好地擴展了,而且運行速度遠不如其他語言。下面就是一段shell程序:

#!/bin/sh
language=0
echo "Language $language: I am the shell. So there."

如果將其保存為文件test.sh并與sh test.sh一起運行,你會看到以下輸出:

Language 0: I am the shell. So there.

老而彌堅的C和C++屬于相當低層的語言,在速度至上時才會使用。你使用的操作系統以及很多相關程序(包括python程序)可能就是用C或C++編寫的。

這兩種語言不易學習和掌握。你需要跟蹤內存管理等很多細節,稍有不慎,就會導致程序崩潰。在診斷問題時也是困難重重。下面是一個短小的C程序:

#include <stdio.h>
int main(int argc, char *argv[]) {
    int language = 1;
    printf("Language %d: I am C! See? Si!\n", language);
    return 0;
}

C++和C有相似之處,但演化出了一些獨特的功能:

#include <iostream>
using namespace std;
int main() {
    int language = 2;
    cout << "Language " << language << \
        ": I am C++! Pay no attention to my little brother!" << \
        endl;
    return(0);
}

作為C和C++的“接班人”,Java和C#避免了“前輩們”的一些問題,尤其是內存管理,但多少變得有些煩瑣。下面是一段Java代碼:

public class Anecdote {
    public static void main (String[] args) {
        int language = 3;
        System.out.format("Language %d: I am Java! So there!\n", language);
    }
}

如果沒有使用過這些語言,你可能會覺得奇怪:這都是什么東西?我們只想打印幾行簡單的文本啊。有些語言身背很重的語法“包袱”。第2章會介紹更多的細節。

C、C++和Java都屬于靜態語言,需要你指定數據類型等一些低層細節。附錄A展示了像整數這樣的數據類型在計算機中占據了多少位(bit),以及只能執行哪些整數操作。相比之下,動態語言(也稱腳本語言)不會強迫你在使用變量之前聲明其類型。

多年以來,通用動態語言一直都是Perl。Perl的功能極其強大并擁有豐富的庫。不過,其語法實在讓人不忍直視,而且在過去幾年中,Perl的勢頭看起來已經被Python和Rudy蓋過了。下面這個例子會輸出一句Perl的俏皮話:

my $language = 4;
print "Language $language: I am Perl, the camel of languages.\n";

Ruby是一種比較新的語言。它些許借鑒了Perl,其流行主要歸結于Web開發框架Ruby on Rails。Ruby的很多應用領域和Python一樣,究竟選擇哪個更多屬于個人品位問題,或是取決于特定應用所需的庫。下面是一段Ruby代碼:

language = 5
puts "Language #{language}: I am Ruby, ready and aglow."

由于方便與HTML結合,PHP在Web開發領域非常流行。但是,PHP自身有不少陷阱,并不適合作為Web之外的通用語言。下面是一段PHP代碼:

<?PHP
$language = 6;
echo "Language $language: I am PHP, a language and palindrome.\n";
?>

Go(或者Golang,如果你打算用谷歌搜索的話)是一種嘗試兼顧效率和易用性的新生語言:

package main
import "fmt"
func main() {
  language := 7
  fmt.Printf("Language %d: Hey, ho, let's Go!\n", language)
}

時下C和C++的另一種替代語言是Rust:

fn main() {
    println!("Language {}: Rust here!", 8)

還有哪種語言沒有提到?沒錯,Python。

language = 9
print(f"Language {language}: I am Python. What's for supper?")
主站蜘蛛池模板: 大关县| 郯城县| 盐边县| 辽阳市| 含山县| 潍坊市| 沈丘县| 西林县| 浦北县| 周口市| 芜湖县| 屯留县| 梧州市| 静安区| 安阳市| 石台县| 息烽县| 徐州市| 桃园市| 成武县| 桐乡市| 阳东县| 峡江县| 新平| 天峨县| 天峻县| 临武县| 开远市| 博客| 浪卡子县| 龙井市| 应用必备| 伊川县| 沙雅县| 武安市| 乐平市| 黄梅县| 邛崃市| 巨鹿县| 阿图什市| 利津县|