「Python 數據分析」學習筆記(二)

前言

本文為「成為 Python 數據分析達人的第一堂課」課程的學習筆記。

條件判斷

使用比較運算子進行條件判斷。

1
2
3
4
5
6
7
8
9
>>> a = 6
>>> a < 3 # 小於
False
>>> a > 3 # 大於
True
>>> a == 6 # 等於
True
>>> a != 6 # 不等於
False

使用邏輯運算子進行條件判斷。

1
2
3
4
>>> (a > 3) and (a < 9)
True
>>> (a > 12) or (a < 15)
True

while 迴圈

使用 while 迴圈。

1
2
3
4
5
6
7
8
9
>>> s = 0
while s <= 5:
print("*" * s)
s += 1
*
**
***
****
*****

改進拍拍機器人,讓它持續問候。

1
2
3
4
5
6
7
8
9
10
11
12
message = ""
>>> while message != "夠了":
message = input(">> ")
print("拍拍")
# 輸入"空虛"
拍拍
# 輸入"寂寞"
拍拍
# 輸入"覺得冷"
拍拍
# 輸入"夠了"
拍拍

字串格式化

使用 format() 函數和 {} 占位符進行格式化。

1
2
3
4
5
>>> name = "阿威"
place = "新竹"
>>> message = "你好, 來自{}的{}!".format(place, name)
print(message)
你好, 來自新竹的阿威!

可以不用擔心資料型態的問題。

1
2
3
>>> m = 270
>>> print("美金 {} 合新台幣 {} 元".format(m, m * 30.5))
美金 270 合新台幣 8235.0

定義函數

使用 def 關鍵字定義函數。

1
2
3
4
5
6
7
8
9
10
>>> def square():
return x ** 2
>>> square(3)
9

>>> def say_hi(name, place):
message = "你好,來自{}的{}!".format(name, place)
return message
>>> say_hi("阿威", "新竹")
'你好,來自阿威的新竹!'

串列切割

使用「:」字元進行串列的切割。

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> l = [3, 97, 12, -5, -4]
>>> l[0]
3
>>> l[1:3]
[97, 12]
>>> l[2:]
[12, -5, -4]
>>> l[:4]
[3, 97, 12, -5]
>>> l[-1]
-4
>>> l[-2:]
[-5, -4]

串列生成

使用 range() 函數建立整數列表。

1
2
3
4
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(3, 15))
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

for 迴圈

使用 for 迴圈。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> l = [1, 2, 3]
>>> for i in l:
print(i)
1
2
3
>>> for i in range(4, 8):
print(i * 3)
12
15
18
21
>>> for i in range(1, 6):
print('*' * i)
*
**
***
****
*****

尋找元素

判斷關鍵字是否在字串當中。

1
2
3
4
5
6
7
>>> keyword = "悲傷"
>>> message = "我今天覺得很悲傷。"
>>> keyword in message
True
>>> message = "我今天覺得很開心。"
>>> keyword in message
False

判斷關鍵字是否在串列當中。

1
2
3
4
5
>>> L = [2, 88, 64, -66, -4]
>>> 29 in L
False
>>> 88 in L
True

流程控制

使用 ifelif 以及 else 進行條件判斷。

1
2
3
4
>>> a = 3
if a < 7:
print("OK")
OK

改進拍拍機器人,讓它根據使用者的輸入是否包含關鍵字來回應。

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> message = input(">> ")
if ("悲傷" in message):
print("拍拍")
elif ("開心" in message):
print("不就好棒")
else:
print("知道了")
# 輸入"今天很悲傷"
拍拍
# 輸入"今天很開心"
不就好棒
# 輸入"今天天氣很好"
知道了

生成亂數

使用 randint() 函數生成亂數。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> %pylab inline
>>> randint(3, 21)
>>> for i in range(10):
k = randint(3, 21)
print(" " * k + "*")
*
*
*
*
*
*
*
*
*
*