因為考慮到才第三篇就開始飆車直接上 Flask 會不會太快,加上這系列有一小部分原因(大約50%?)是要寫給以後完全忘掉這些的自己,再加上 Python 跟其他程式語言有一點點不太一樣,有一些眉角需要注意(像是下圖的波動拳縮排,不小心少縮了一個就會出大事),所以就先來回憶一下 Python 了。下一篇就會說到比較進階,需要挖比較深才會碰到的東西。
開始講之前先講一下寫好要怎麼存好了,就是寫完存成.py
檔,然後在 CMD (檔案總管中你存的位置上面那條輸入 CMD,大小寫都可),再輸入 python <name>.py
就 OK 了。
Python 中主要有十幾種資料型態
Type | Name |
---|---|
字串 | str |
數字 | int, float, complex |
序列 | list, tuple, range |
字典 | dict |
集合 | set, frozenset |
布林 | bool |
位元 | bytes, bytearray, memoryview |
雖然有這麼多種,但是最常用還是 str, int, float, list, range, dict, bool
這7種。
使用方式為
''' Input '''
# 賦值
string = 'Hello'
num1 = 10
num2 = 20
l = ['a', 'b', 'c']
d = {'apple': 'red', 1: 'banana'} # or d = dict(apple='red')
# 沒錯 dict 的 key 可以用 str 或 int
# 取值
print(string)
print(num1 + num2)
print(l[1])
print(d['apple'])
print(d[1])
''' Output '''
Hello
30
b
red
banana
Python 雖然有 PEP8 可以統一 Coding Style,但是 PEP8 並不會管到變數、函數及類別的名稱。不過有關這些名稱也有一些命名規則,雖然不按規則也不會怎樣,但是按照規則的話以後在維護時會更容易解讀。
我不知道該怎麼解釋,所以算了,直接看範例吧。主要注意一下縮排跟冒號是必不可少的就好了。
''' Input '''
age = int(input('Input a number: ')) # 可以執行起來後輸入數字,如果輸入 20
if age >= 20:
print('You are an adult.')
elif age >= 12:
print('You are a teenager.')
else:
print('You are a child.')
''' Output '''
You are an adult.
需要注意的點跟前面的條件選擇一樣,然後就沒有然後了,一樣直接看範例吧。
''' Input '''
for i in range(1, 10, 2):
mes = ""
for j in range(i):
mes += "*"
print('{:^9}'.format(mes))
''' Output '''
*
***
*****
*******
*********
''' Input '''
i = 1
while i < 10:
print(i, end=', ')
i = i + 1
''' Output '''
1, 2, 3, 4, 5, 6, 7, 8, 9,
需要注意的點基本上跟前面兩個一樣,然後再加個小括號,小括號中間填要帶入的參數就好了。
# J個是前面那個星星金字塔的函式版本
def star_triangle(times):
for i in range(1, times+1, 2):
step = ""
for j in range((times-i)//2):
step += " "
for j in range(i):
step += "*"
print(step)
''' Input '''
class Car():
_manufacturer = ""
def __init__(self, manufacturer, color):
self._manufacturer = manufacturer
self.color = color
def get_manufacturer(self):
return self._manufacturer
def change_color(self, color):
self.color = color
def get_color(self):
return self.color
# SUVCar 繼承 Car
class SUVCar (Car):
_car_type = "SUV"
def __init__(self, manufacturer, color):
super().__init__(manufacturer, color)
def get_car_type(self):
return self._car_type
new_car = SUVCar("BMW", "Black")
new_car.get_manufacturer()
new_car.get_color()
new_car.get_car_type()
new_car.change_color("White")
new_car.get_color()
''' Output '''
BMW
Black
SUV
White
好了,基礎的就大概這樣子而已。
那麼就先到這邊,實際再寫的時候,有 80% 都是上面這些東西。
大家掰~掰~