Try   HackMD

FDCSC110 Sep17 Handout - Hello, Python!


Syntax 語法

Python 是一種強縮排語言,意思是它的縮排就是它語法的一部份。

縮排是什麼?

縮排是把程式碼依照一定的格式用換行、Tab、Space來做排版
弱縮排語言中,這個動作只是讓程式碼更好閱讀而已

Python 是以Tab或是Space加上換行來作為主要縮排語法。
縮排的時機原則上只要上一行的最後一個字元是「:」,就要縮排。

範例程式碼

def main(): try: print(input()) except EOFError: return if __name__ == '__main__': main()

在上面的程式碼中,採用Tab加上換行來縮排,這也是大部分的人的縮排方法。

Comments 註解

註解在程式語言中是不可或缺的一部份,因為當你需要分享你的程式碼,或是程式碼比較複雜時就會需要用到。
Python 的註解是用 # 來表示

範例程式碼

print('hello, world.') # output "hello, world."

很可惜的是 Python 沒有多行註解,但可以用多行字串宣告來代替。

print('hello, world.') ''' This is a Program that output "hello, world.". '''

Variables 變數

變數,是在程式中儲存數值的方法。
Python 中,因為是弱型別語言,所以不需要宣告變數就可以使用。

範例程式碼

a = 1.0 b = '1.0' c = 1 print(b)

這裡要注意,雖然不需要宣告,但在賦予一個變數值之前,是不能使用的。

print(FDCSC) # 這是非法的

User Input 輸入

Python 中,輸入是用 input() 函數來達成的。
input() 函數一次輸入一行,如果要輸入多行,可以用迴圈來達成。
這時就會有個問題產生,如果要在一行之內輸入兩個變數時怎麼辦?
這裡的知識就有點超出範圍了,如果不懂的話怎麼辦? 背起來就對了
基本上,如果有超過一個變數的話要用 split() 函數。

範例程式碼

a, b, c = map(int, input().split()) # 輸入 "1 2 3" print(a+b+c) # 輸出 6

Boolean 布林值

Boolean 其實就是電腦裡面的邏輯,也就是0跟1。
Python 裡,True 代表的是1,False 代表的是 0。
在這裡要給大家一個概念,只要一個物件(變數)的值是「0」、「空」等代表沒有的概念,
轉換成 Boolean 幾乎都是 False,反之就是 True

If..Else 判斷語句

邏輯運算

在了解 判斷語句 前,必須了解甚麼是程式裡的邏輯。
因為這種語句在寫的時候必須要用邏輯來實現。
下面的表格呈現的是 TrueFalse 經過邏輯運算子運算後的結果。

and運算子

True False
True True False
False False False

or運算子

True False
True True True
False True False

not運算子

True False
False True

範例程式碼

print(True and False) # False print(not True) # False print(True or False) # True

語法

if [Boolean]: pass elif [Boolean]: pass else: pass
  • if 是每個判斷句個開頭。只能有一個。
  • elif 的意思是else if,也就是如果還有第二個條件的話,就可以用。可以有個。
  • else 就是除了 ifelif 條件以外的東西。只能有一個。
  • pass 需要再在一個縮排後,沒有程式碼時使用,目的是保持語法的正確性。

範例程式碼

a, b = map(int, input().split()) if a > b: print(a) elif a < b: print(b) else: print(a+b)

在上面的程式碼中,
如果輸入「1 2」會輸出「2」(第五行)
如果輸入「5 3」會輸出「5」(第三行)
如果輸入「4 4」會輸出「8」(第七行)

TryExcept 偵錯

try: pass except [Exception]: pass finally: pass

概念跟 判斷語句 很像,
只要找到 [Exception] 就執行該 except 底下的東西,
如果都沒錯就執行 try 底下的東西,
如果有意料之外的錯誤,就執行 finally 底下的東西。
其中 [Exception] 可以是 ExceptionEOFErrorTypeError 等。
建議要明確找出是哪一種錯誤,不要都用 Exception,不然會提高除錯難度。