Python 3 有三種 Number 型態:
int:整數,例如 5 。
float:浮點數 (小數),例如 3.2 。
complex:複數,例如 3.14j。
long:Python 2 有 long 型態,但 Python 3 就沒有了
r=5
print(r)
area = r * r * 3.14
print(area)
輸出結果
5
78.5
只有兩個值,「真」(true) 與「偽」(false)
A=True
B=True
C=True
print(A and B and C)
print(A or B or C)
print('\n')
print(not A and B)
print(not A or B)
print('\n')
print(not A or B and C)
print(not A or B or C)
print('\n')
print(not not A and B and C)
print(not A or not B or not C)
輸出結果
True
True
False
True
True
True
True
False
成對 ' 單引號或 " 雙引號來表示,如果字串內容必須跨越數行,可使用連續三個 ' 單引號或 " 雙引號
print('o')
print('re')
print("o")
print("\n")
print('''o
re
o
re
o''')
print("\n")
print("""o
re
o
o""")
輸出結果
o
re
o
o
re
o
re
o
o
re
o
o
字串串接使用 + 加號,字串重複:使用 * 星號
str = 'Weichen'
print(str + str)
print(str * 3)
輸出結果
WeichenWeichen
WeichenWeichenWeichen
字串長度:使用 len() 內建函式來取得字串的長度:
str = 'Weichen'
print(len(str))
輸出結果
7
Python 的 String 是由字元序列所組成,它可以使用 [] 索引的方式來取值與切片。
取值法
[index]:取得指定的 index 字元。
切片法
[start_index : end_index]:取得 start_index 至 end_index 範圍內的字串
[start_index : end_index : step]:取得 start_index 至 end_index 範圍內,再以每 step 個間隔字元的方式,來取得字串。
取值前至後: 0 1 2 3 4 5
取值後至前: -6 -5 -4 -3 -2 -1
| A | B | C | D | E | F |
切片前至後: 0 1 2 3 4 5
切片後至前: -6 -5 -4 -3 -2 -1
str = 'ABCDEF'
print('\n# [index] 取值')
print('str[2] ' + str[2])
print('str[-1] ' + str[-1]) # 取得最後一個值
print('\n# [start_index:end_index] 切片')
print('str[2:5] ' + str[2:5])
print('str[-2:] ' + str[-2:])
print('str[-2:-5] ' + str[-5:-2])
print('\n# [start_index:end_index:step] step切片')
print('str[::2] ' + str[::2]) # 從前面開始,取得每 2 個間隔字元的字串
print('str[::-2] ' + str[::-2]) # 從後面開始,取得每 2 個間隔字元的字串
print('str[::-1] ' + str[::-1]) # 從後面開始,取得每 1 個間隔字元的字串 (就是將字串反轉)
輸出結果
# [index] 取值
str[2] C
str[-1] F
# [start_index:end_index] 切片
str[2:5] CDE
str[-2:] EF
str[-2:-5] BCD
# [start_index:end_index:step] step切片
str[::2] ACE
str[::-2] FDB
str[::-1] FEDCBA
使用 { } 和 : 來進行字串格式化
{ } 無類型碼:指定索引位置或關鍵字,也可混合使用。
{ : } 可使用類型碼:左邊為索引位置或關鍵字。右邊可指定 %s、%d ... 類型碼,例如 {索引位置 : %s}
{ } 內的其它符號:^ 置中、< 置左、> 置右。+ 在正數前顯示 + 符號;- 在負數前顯示 - 負號。
使用連續兩個 { { 或 } } 來顯示 { 或 }。
類型碼
d:10 進制整數
f:10 進制浮點數,可指定整數與小數位數,例如 5.2f
e, E:10 進制浮點數,並使用科學符號
o:8 進制整數
x, X:16 進制整數
s:str( ) 方式
c:字元
# 不指定索引位置,依順序
print('{} {} {} {}'.format('A', 'B', 1, 2))
# 指定索引位置
print('{2} {3} {0} {1}'.format('A', 'B', 1, 2))
# 指定關鍵字
print('{str1} {num1} {str2} {num2}'.format(str1 = 'A', str2 = 'B', num1 = 1, num2 = 2))
# 混合指定索引位置與關鍵字
print('{1} {0} {num1} {num2}'.format('A', 'B', num1 = 1, num2 = 2))
# 使用連續兩個 {{ 或 }} 來顯示 { 或 }
print('{} {{ }}'.format('A'))
# 靠左顯示10進制
print('{:<+5d}{:<5d}{:<5d}'.format(3+5, 7+8, 1-9))
# 靠右顯示16,8進制與符點數
print('{:5x}{:5o}{:7.2f}'.format(3+5, 7+8, 1-9))
# 顯示符點數與科學符號
print('{:<+7.2f}{:>e}'.format(3.3, 3.14159))
# 指定索引位置顯示字串
print('{1:10s}{0:3s}'.format('Weichen', 'Wu'))
輸出結果
A B 1 2
1 2 A B
A 1 B 2
B A 1 2
A { }
+8 15 -8
8 17 -8.00
+3.30 3.141590e+00
Wu Weichen
使用 [ ] 建立 list,類似陣列(資料型態需一致),它是有序的元素集合,元素可以包含各種資料型態,具有索引,長度可變動。
len(list):傳回元素數量
max(list):傳回最大元素值
min(list):傳回最小元素值
list.append(元素):在未尾增加一個元素
list.extend(另一個list):在未尾連接另一個 List
list.insert(index, 元素):插入一個元素在index位置
list.pop(index): 移除第index 元素
list.remove(元素):移除元素值
# 建立一個空 List
list = []
print(list)
# 無法這樣新增元素,但如果該 index 已設值,可這樣更改值
# list[0] = 1
# 在未尾增加一個元素
list.append(1)
print(list)
# List 可存放各種元素
list = [1, 'one', True, 3.14159j]
print(list)
list1 = ['A', 'B', 'C']
list2 = ['D', 'E', 'F']
list1.extend(list2)
print(list1)
list1.insert(2, 'G')
print(list1)
list1.pop(-1)
print(list1)
list1.remove('A')
print(list1)
print(max(list1))
print(min(list1))
# 也可以使用字串取值,切片,重複,串接
listStr = ['A', 'B', 'C', 'D', 'E', 'F']
listNum = [1, 2, 3, 4, 5, 6]
print(listStr[0])
print(listStr[1:3])
print(listStr[0] * 5)
print(listStr + listNum)
# 使用 del 來刪除元素或整個List
del listStr[0]
print(listStr)
del listStr
#print(listStr) 刪除整個List後,就無法使用
輸出結果
[]
[1]
[1, 'one', True, 3.14159j]
['A', 'B', 'C', 'D', 'E', 'F']
['A', 'B', 'G', 'C', 'D', 'E', 'F']
['A', 'B', 'G', 'C', 'D', 'E']
['B', 'G', 'C', 'D', 'E']
G
B
A
['B', 'C']
AAAAA
['A', 'B', 'C', 'D', 'E', 'F', 1, 2, 3, 4, 5, 6]
['B', 'C', 'D', 'E', 'F']
使用 { } 建立 Set,與 List 不同,它是無序、不重複元素的集合,所以沒有索引。
運算子"|":聯集,合併 set1 與 set2 不重複的值
運算子"&":交集,set1 與 set2 相同的值
運算子"-":差集,在 set1 但不存在 set2 的值
運算子"^":互次或,排除相同的值
set1 = {'A', 'B', 'C'}
set2 = {1, 2, 'A'}
# 測試元素是否在 Set 中
print('A' in set1)
# 聯集
print(set1 | set2)
# 交集
print(set1 & set2)
# 差集
print(set1 - set2)
# 互次或
print(set1 ^ set2)
輸出結果
True
{'A', 'C', 1, 2, 'B'}
{'A'}
{'C', 'B'}
{1, 2, 'B', 'C'}
使用 { } 建立 Dictionary (與 Set 一樣),它是 Key (鍵) / Value (值) 對應的集合,也就是關聯式陣列:
dict = {'name': 'Weichen', 'sex': 'M', 'age': 18, 'weight': 72}
print(dict)
print(dict['name'])
輸出結果
{'name': 'Weichen', 'sex': 'M', 'age': 18, 'weight': 72}
Weichen