Size: 410
Comment:
|
Size: 582
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 6: | Line 6: |
::-- ZoomQuiet [[[DateTime(2007-01-03T13:15:30Z)]]] [[TableOfContents]] |
::-- ZoomQuiet [<<DateTime(2007-01-03T13:15:30Z)>>] <<TableOfContents>> |
Line 9: | Line 9: |
[[Include(CPUGnav)]] | <<Include(CPUGnav)>> |
Line 14: | Line 14: |
[http://groups-beta.google.com/group/python-cn/t/2b73469cf1cfb5cd 林育民(Fred Lin)倡议邮件] [email protected] | [[http://groups-beta.google.com/group/python-cn/t/2b73469cf1cfb5cd|林育民(Fred Lin)倡议邮件]] [email protected] |
Line 16: | Line 16: |
[[Include(FromCtoPython)]] | |
Line 20: | Line 19: |
<<Include(FromCtoPython)>> == 从C++到Python == 给C++程序员的Python初学指南 (Guide to Python for C++ Programmers) == 从 Ruby 语言到Python == <<Include(FromRubytoPython)>> |
从XXX语言到Python ::-- ZoomQuiet [2007-01-03 13:15:30]
Contents
1. 缘起
林育民(Fred Lin)倡议邮件 [email protected]
1.1. 从C语言到Python
[:FromXxxToPython:从XXX语言到Python] 之 From C to Python --從 C 到 Python
::-- ZoomQuiet [DateTime(2007-01-03T13:19:58Z)] TableOfContents
1.2. 從 C 到 Python
C 語言是一門有用的語言, 可以讓你完成你的工作. 如果你已經能運用 C 語言寫作程式, 那麼學習 Python 語言則可以讓你在寫程式的同時還能獲得樂趣.
* 經驗
學習 C 語言的過程並不容易, 但是跨出從 C 語言到 Python 語言轉換的過程卻相當簡單.
我得承認在我剛開始學習 Python 語言時也是拿我熟悉的 C 語言程式來作修改, 在我最初寫作 Python 語言程式時, Python 程式裡那些 C 語言才使用分號都還留著 (python 語言並不需要結束符號, 但仍然可以使用), 得到的結果是一個骨子裡是 C 語言的 Python 程式. 學習 Python 語言的原因只為Python 語言跟 C 語言的語法超像, 貪圖使用 Python 語言時不用預先編譯的方便性. (這些 Python 語言的特性將在文中一一介紹).
後來漸漸深入學習 Python 語言, 才發現原來 Python 語言有它自己的特色與風格: 簡單, 易讀, 可移植性, 高效能.
* 相同點
首先, Python 語言直譯器是用 C 語言撰寫的, 你可以期望 Python 語言與 C 語言的語法有很多相近之處.
雖然 Python 語言是直譯式的語言, 但是 Python 語言也具有很高的執行效能.
Python 語言像 C 語言的近親 C++ 語言一樣是物件導向 (Object-Oriented) 的程式語言, 但是用起來簡單地多. 同時你仍然可以用 C 語言流程式的方式來撰寫程式.
* 一個可以達到的目標
我們從一個實際的例子開始: 將一個接受使用者輸入數字 n , 然後輸出 2 的 n 次方結果的 C 程式改寫成 Python 程式.
執行結果為: 輸入 1 得 2**1 = 2, 輸入 2 得 2**2 = 4, 輸入 3 得 2**3 = 8, 輸入 4 得 2**4 = 16, 輸入 5 得 2*85 = 32, 依次類推。
1.2.1. 程式展示
1.2.1.1. C 語言原程式
/************************* * 計算 2 的 n 次方 *************************/ power.c #include <stdio.h> // 導入IO處理函式庫 /* 計算 n 次方 */ power(int base, int level) // 接受變量 base(基底), level(級數) { // 函式區塊開始 int result; // 宣告輸出使用的變量 if (level != 1): // 判斷: 如果輸入變量值不等於1 { // 判斷區塊開始 result = base**level; // 程式運算 } // 判斷區塊結束 else // 其他情形 { // 判斷區塊開始 result = 1; // 程式運算 } // 判斷區塊結束 // ex: 輸入 2 得 2**2 = 4 printf("輸入 %d 得 %d**%d = %d", &input, &base, &level, &result); // 印出結果至螢幕 return result // 返回結果 } // 函式區塊結束 /* 接受使用者輸入並印出結果 */ main() // 主程式 { // 函式區塊開始 int input; // 宣告輸入使用的變量 scanf("get an input:", %input); // 讀入數值到 input 變量 power(2, input); // 呼叫 power 函式, 以 2 為基底 } // 函式區塊結束
1.2.1.2. 改好的 Python 程式
下面的程式是改寫好的 Python 程式. 後文中會作講解
1 #power.h
2
3 """
4 計算 2 的 n 次方
5 """
6
7 # 計算 n 次方
8 def power(base, level): # 接受變量 base(基底), level(級數)
9 if (level != 1): # 判斷: 如果輸入變量值不等於1
10 result = base**int(level) # 程式運算
11 else: # 其他情形
12 result = 1 # 程式運算
13
14 print "輸入 %d 得 %d**%d = %d"%(input, base,
15 level, result) # 印出結果至螢幕
16 return result # 返回結果
17
18 # 接受使用者輸入並印出結果
19 if __name__ =="__main__": # 運行這個檔案時執行
20 input = raw_input("請輸入數字:")# 讀入數值到 input 變量
21 power(2, input) # 呼叫 power 函式, 以 2 為基底
1.2.2. 1.2 導入 Import
C 語言的輸入與輸出需要使用到IO處理函式庫 stdio.h, 取用其他函式庫的方式是使用 include 語句
Python 中取用其他函式庫的方式則是使用 import 語句. 而在 Python 語言中, 輸入與輸出函式是內建的
參考閱讀:
1.2.3. 1.3 註解 Comment
註解相當的重要, 它可以讓妳在程式中寫下讓閱讀這程式的人更容易瞭解這份程式的註釋. 它也可以幫助妳在六個月後還能快速讀懂妳自己的程式. 所以呀, 請儘量地在妳的程式裡加入註解吧.
C 語言中使用兩個斜線符號 "//" 來為各行加上註解, Python 語言中使用井字符號 "#" 來為各行加上註解.
對於較長的註解, C 語言中使用:
1.3. 从C++到Python
给C++程序员的Python初学指南 (Guide to Python for C++ Programmers)
1.4. 从 Ruby 语言到Python
從 Ruby 语言到 Python (From Ruby to Python)