殼層程式(shell):
- 經由文字介面讓我們與系統溝通的一個工具介面
- Shell具備簡單的功能,例如簡單的邏輯、使用檔案名稱的萬用符號...
- 可以將指令儲存在殼層指令碼(Shell Scripts)裡面,再去執行。
sh example.sh bash example.sh
- 上面這兩行程式其實是一樣的意思
- sh/bash: 以bash程式來執行
- example.sh: shell scripts
- 若是Shell Script超過一百行,速度就會變慢很多。
- Shell Script 主要是使用在 Linux 和 MacOS 等 Unix-like 作業系統的自動化操作指令的程式語言。
- 在Windows中,被稱為命令提示字元(cmd)。
- 可以執行.bat為副檔名的批次(batch)檔。
- 在Linux/Unix-like系統中,被稱為 bash / sh。
靜態語言(Static language): C/C++/JAVA...
- 為什麼叫靜態語言?
- 因為變數的類型永遠無法改變。整數就是整數。
- 必須指定一些低階的細節,才能讓電腦理解
- 需要宣告每一個變數的類型,會在記憶體中佔多少空間,可以用來幹嘛。電腦再將利用這些資訊,將程式編譯為機器語言。
- 宣告的優點是可以提升程式的執行速度以及避免一些錯誤
- 缺點是使得人類需要花更多時間打字
- 電腦會利用上述資訊將程式編譯成機器語言
動態語言(Dynamic language): Perl/Python/Ruby on rails...
- 又稱為指令碼語言(scripting languages)
- 不需要在使用變數前特別宣告變數類型
- 改用 解譯器(interpreter) 取代 編譯器(compiler)
- Python解譯器一般是由C語言所構成
- 通常動態語言的執行速度較靜態語言慢
Python最簡單的內建資料類型
- 布林: 只有 True / False
- 整數 (int): 123 , 10000000000 (可以是任何大小,不像其他語言有32位元的限制,所以可以避免整數溢位的現象)
- 浮點數 (float): 3.14159 , 1.0e8
- 字串: abcdefg
變數、名稱、物件
- Python中,所有東西都是用物件來實作的,使得Python具備其他語言所沒有的一致性與實用的功能。
- Python是強類型(strong typing)的語言,物件的類型是無法變更的,即使值是可變的
- Python中,要用 = 來指派一個值給變數
- 賦值不會將值複製,只會指派一個名稱給含有該資料的物件而已。
- 變數只是個名稱。名稱只是某個東西的參考,不代表那個東西。可以將名稱想像成是一個便利貼
- 變數名稱
- 只能使用:
- 大小寫字母
- 數字
- 底線 ( _ )
- 名稱的第一個字不能用數字
- 底線開頭的名稱會被視為有特殊用途
- 只能使用:
數字
- 除以0會讓Python產生例外
- 基數
- 整數通常被預設為十進位(基數為10)
- 基數為2 = 二進位
0b10
= 2
- 基數為8 = 八進位
0o10
= 8
- 基數為16 = 十六進位 (0~9、a~f)
0x10
= 16
- 要將其它的Python資料類型轉換成整數,可以使用int()函式。
只能轉換像數字的東西,若是打英文字母則會產生錯誤>>> int(True) 1 >>> int(98) 98 >>> int('89') 89 >>> int(98.6) 98 >>> int('98.6') ValueError <ipython-input-12-ae52b9fb3f52> in <module>() ----> 1 int('98.6') ValueError: invalid literal for int() with base 10: '98.6'
可將浮點數或是數字字串轉成整數,但無法處理含有小數點或是指數的字串 - 若是要轉成浮點數,則使用float()函式
字串
- 字元是不可變的
- 製作Python字串需要使用單引號或是雙引號來框住字串。
- 雙引號主要是在建立字串內含有引號的字串時使用
>>> "I am a dog." 'I am a dog' >>> "I'm a dog" 'I'm a dog'
- 若是需要建立多行字串時,則選擇使用三引號
- 雙引號主要是在建立字串內含有引號的字串時使用