林德恩、陳睿倬Sep 24,2021
python
tcirc39th
社課
臺中一中電研社
社網:tcirc.tw
online judge:judge.tcirc.tw
IG:TCIRC_39th
Python是一種廣泛使用的直譯式、進階和通用的程式語言。Python支援多種程式設計範式,包括函數式、指令式、結構化、物件導向和反射式程式。它擁有動態型別系統和垃圾回收功能,能夠自動管理記憶體使用,並且其本身擁有一個巨大而廣泛的標準庫。…維基百科
只要有安裝python就能使用python,使用python的最簡單的方法就是用cmd或power shell這種殼層軟體(shell)來執行,但一般來說都使用編譯器來執行。
本次為使用python3來教學。
cd指令:
dir指令:
切D槽/C槽指令
一個一個開
C:\>cd users
C:\Users>
一次開
C:\>cd \users
C:\Users>
python沒有IDE,只有IDE
可以編輯python的直譯器有很多,不過本次選用IDLE進行教學,因為它在APCS可使用,而且介面較簡單。
如果想要顯示出一些文字或數字這類資料的話,那其中最簡單的方法就是用print這個程式碼了。
程式
print(變數1, 變數2...)
print(字串1, 字串2...)
print(1) print("Hello world!")
output
1
Hello world!
在python中,只要不式從外部輸入的"\",都有跳脫字元的功能,而跳脫字元就是將其後原本有特殊功能的字元轉成單純的字元,將部分普通字元轉成特殊功能的字元。
幾個常用的跳脫字元
\\ = \
\' = '
\" = "
\0 = 空字元
\t = Tab
\n = 換行
\b = 刪除前一個字元(在最後一個字不會起作用)
\r = 將後面的文字覆蓋最前面的數個
\a = 警示音
\加三位數(可000)的8進位ascii碼 = 指定字元
\x加兩位數(可00)的16進位ascii碼 = 指定字元
\u加四位數(可0000)的16進位Unicode = 指定字元
程式
print('\\','\'',"\0a\tb",'\n','\124','\x43','\u0046',"S H") print("123456","4567\rabcde")
output
\ ' a b
T C F S H
abcde6 4567
題目
b004: 串串的強迫症
變數有很多種,它們都是用來儲存單一資料的容器。
變數基本種類如下:
程式
word = "Hello world" print(word) number = 1 print(number) logic = True print(logic)
範例程式碼
output
Hello world
1
True
如果要將10進位的數字轉成2進位/8進位/16進位顯示的話,可以用:
程式
a = 7 b = 9 c = 18 print("2進位:",bin(a)) print("8進位:",oct(b)) print("16進位:",hex(c))
output
2進位: 0b111
8進位: 0o11
16進位: 0x12
如果要將資料型別轉換的話,可以用:
程式
a = 123 print("int ", a) a = float(a) print("float", a) a = int(a) print("int ", a) a = bool(a) print("bool ", a)
output
int 123
float 123.0
int 123
bool True
我們可以藉由type()函式來確認變數的資料型態
a = 1 b = 0.5 txt = "string" boolean = True print(type(a)) print(type(b)) print(type(txt)) print(type(boolean))
output
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
輸入的其中最簡單快速的一個方法就是input,它可以從鍵盤輸入資料進去變數。
程式
output = "NAME" output = input("What's your name? ") print("Hello", output)
output
What's your name?
TSJ #輸入 TSJ
Hello TSJ
題目
所有運算式同時也是資料,所以可以用在定義變數內的值或直接輸出,這次先教部分對人類來說較基礎的算數運算子和字串編輯的運算子。
用來執行加法運算
程式:數值 + 數值
如 1+1:
1+1
串接
也可以用在字串的連接
程式:文字 + 文字
如 "1234554321":
"12345"+"54321"
但注意,不能將文字型別跟其他的型別的變數相加,因為數值和文字的「+」不同,一個是相加,一個是串接,但可以將整數、浮點數跟邏輯互相運算。
錯誤範例
1+'1'
用來執行乘法運算
程式:數值 * 數值
如 2×3:
2*3
重複文字
程式:文字 * 數值
如 "aaaaa":
'a'*5
用來執行減法運算
程式:數值 - 數值
如 6-2:
6-2
用來執行除法運算
程式:數值 / 數值
如 6÷3:
6/3
用來執行次方運算
程式:數值(底數) ** 數值(指數)
如 2⁵:
2**5
除法運算時取餘數
程式:數值 % 數值
如 7÷5的餘數:
7%5
除法運算時的整數商
程式:數值 // 數值
如 7÷5的整數商:
7//5
()運算子
括號內的數字會先運算
先乘除後加減
如果沒括號就優先進行先乘除後加減
程式
a = int(input("a:")) b = int(input("b:")) print("print a + b = ", a+b) print("print b - a = ", b-a) print("print a * b = ", b*a) print("print a / b = ", a/b) print("print a % b = ", a%b) print("print a ^ b = ", a**b) # a的b次方 print("print a / b = (取整數)", a//b) # a除以b取整數
input
a:2
b:3
output
print a + b = 5
print b - a = 1
print a * b = 6
print a / b = 0.6666666666666666
print a % b = 2
print a ^ b = 8
print a / b = (取整數) 0
如果是用變數儲存不同型別的計算結果的話,變數型別會更改,如:布林值+整數會變整數、整數×小數變小數,以此類推,如果將變數資料改成其他型別的資料,將會變成新的資料的資料型別。
程式
n = False print(n + 1) n = n + 2 print(n) print(n + 1.0) n = n +1.1 print(n) n = True print(n) n = n + 2.3 print(n)
output
1
2
3.0
3.1
True
3.3
變數+=數值和變數 = 變數 + 數值相同
變數 -=數值和變數 = 變數 - 數值相同
變數 *=數值和變數 = 變數 * 數值相同
變數 /=數值和變數 = 變數 / 數值相同
b006: 電電的梯形
※python 依目前所教的方法沒辦法同行輸入,所以沒辦法過,更改測試執行來執行。
在讀寫程式時,我們常會需要用到註解來標示此段程式碼在做什麼,以便之後寫程式時,或他人觀看你的程式碼時,能快速知道你的程式在做什麼。程式執行時不會執行註解的部分。
註解有兩種寫法
print("hello") # 輸出 Hello """ 我是註解 """
如果程式語法上有錯誤,那電腦就看不懂我們在寫什麼。
n = 0 n + 1 = n #沒有這種寫法 n++ #c/c++的語法 print(a) #沒設定變數a prin(n) #沒設定prin函式(之後會教自訂函式),也不是print()
我們寫的程式和預期的不同,但語法正確,電腦會執行,不過結果和預期不同
如:要n但寫成m
n = 1 m = 2 print(m)
output
2
因為n寫成m,所以輸出2。