iT邦幫忙

2021 iThome 鐵人賽

DAY 3
1
自我挑戰組

終極大數據地獄系列 第 3

#3 Python教學2

基本運算子

最最基本的運算子-賦值運算子

「=」 是最基本的運算子,它的作用是將 「=」 右方的數值或是算式的結果給予左方的變數,操作如下:

#將 數值101 放到變數a
a = 101
print(a)
# 印出 101

算數運算子-俗稱「運算式」

a = 3 + 2 # 加法運算子
print(a)
# 印出 5

a = 3 - 2 # 減法運算子
print(a)
# 印出 1

a = 3 * 2 # 乘法運算子
print(a)
# 印出 6

a = 3 / 2 # 除法運算子
print(a)
# 印出 1.5

a = 3 // 2 # 除法取整數運算子
print(a)
# 印出 1

a = 3 % 2 # 除法取餘數運算子
print(a)
# 印出 1

a = 3 ** 2 # 指數運算子
print(a)
# 印出 9

結合以上兩種-複合型運算子

a = a + 1
# 可簡寫為以下敘述
a += 1

a = a - 1
# 可簡寫為以下敘述
a -= 1

a = a * 1
# 可簡寫為以下敘述
a *= 1

a = a / 1
# 可簡寫為以下敘述
a /= 1

打破先乘除後加減的規矩-小括號

a = 1 + 2 * 3
print(a)
# 印出 7

a = (1 + 2) * 3
print(a)
# 印出 9

比較運算子-俗稱「判斷式」

比較運算子算出的答案均為布林值,不是True就是False

a = 5
b = 5
c = 7
# 等於
print(a == b)
# 印出 True

# 大於
print(a > b)
# 印出 False

# 大於等於
print(a >= b)
# 印出 True

# 小於
print(a < c)
# 印出 True

# 小於等於
print(a <= c)
# 印出 True

# 不等於
print(a != b)
# 印出 False

邏輯運算子

這種運算子都是針對布林值做運算,輸出的結果亦為布林值
and 運算子,用法如下

x = a and b
a b x
False False False
True False False
False True False
True True True

or 運算子,用法如下

x = a or b
a b x
False False False
True False True
False True True
True True True

not 運算子最簡單,真變假、假變真,用法如下

x = not a
a x
True False
False True

特殊的運算子

in,not in 成員運算子

in 用來判斷某個數值或變數是否存在於一個列表裡

a = 3
l = [1, 2, 3]
print(a in l)
# 印出 True

not in 用來判斷某個數值或變數是否 存在於一個列表裡

a = 3
l = [1, 2, 3]
print(a not in l)
# 印出 False

選擇結構

選擇結構就是從數個程式區塊中選一個區塊來執行,所使用的保留字為if,所屬if區塊的程式碼都要縮排,結構如下:

符合條件就執行 if...

程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就不執行if區塊內程式碼
if 判斷式:
    # 在以下的程式碼都屬於if區塊,皆要縮排
    程式碼...
    程式碼...
    程式碼...
# 在以下的程式碼沒有縮排,if區塊到此結束
程式碼...
程式碼...

實際操做如下:

score = 75
if score < 60:
    print("不及格")
if score >= 60:
    print("及格")
    
# 印出 "及格"

二選一的情況 if ... else ...

if區塊不執行,就執行else區塊,兩個區塊必定會執行一塊

程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就執行else區塊內程式碼
if 判斷式:
    # 在以下的程式碼都屬於if區塊,皆要縮排
    程式碼...
    # if區塊到此結束
else:
    # 在以下的程式碼都屬於else區塊,皆要縮排
    程式碼...
    # else區塊到此結束
程式碼...

實際操做如下:

score = 75
if score < 60:
    print("不及格")
else:
    print("及格")
    
# 印出 "及格"

多選一的情況 if ... elif ...else...

if的判斷式為True,則只執行if區塊的程式碼,要是if的判斷式為False,就判斷下個elif的判斷式,當elif的判斷式為True,則只執行elif區塊的程式碼,要是所有判斷式False,最後就執行else區塊

程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就往下接著判斷elif
if 判斷式:
    # 在以下的程式碼都屬於if區塊,皆要縮排
    程式碼...
    # if區塊到此結束
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就往下接著判斷elif
elif 判斷式:
    # 在以下的程式碼都屬於elif區塊,皆要縮排
    程式碼...
    # elif區塊到此結束
# 當所有判斷皆為False,則執行else區塊
else:
    # 在以下的程式碼都屬於else區塊,皆要縮排
    程式碼...
    # else區塊到此結束
程式碼...

實際操做如下:

score = 55
if score >= 80:
    print("優等")
elif score < 80 and score >= 60:
    print("及格")
elif score < 60 and score >= 40:
    print("補考")
else:
    print("當掉")
    
# 印出 "補考"

重複結構

需要重複執行的程式區塊,俗稱迴圈用法如下

不知道要明確執行次數的迴圈 while loop

while 布林值:
	#若布林值為True則執行
	程式碼...
	程式碼…
	#回到迴圈上方,若布林值為True,則再往下執行
    #若布林值為False,則離開迴圈

實際操做如下

a = 0
while a<10:
    a = a + 1
# 當a被加1加到不再小於10的時候離開迴圈

知道要執行幾次的迴圈 for loop

for 變數 in 列表:
	將列表中的項目
   逐一放到變數中
   逐一往下處理

實際操做如下

s = 0
for i in [1, 10, 100, 1000, 10000]:
   s += i
print(s)
# 印出 11111

用來控制迴圈的保留字 break、continue

break 用來強制離開迴圈

當迴圈執行到break時,直接離開迴圈,用法如下

for 變數 in 列表
	…	
	break
	…
   
while 布林值:
	…
	break
	…

實際操做如下

s = 0
for i in [1, 10, 100, 1000, 10000]:
   if i > 100:
       break
   s += i
print(s)
# 因為當1000被放入i並執行迴圈時,i大於1000,因此進入if區塊,在if區塊內遇到break,所以離開迴圈,印出 111

continue 強制進入下一圈

當迴圈執行到continue時,直接進入下一圈迴圈,用法如下

for 變數 in 列表:
	…
	continue
	…

while 布林值:
	…
	continue
	…

實際操做如下

s = 0
for i in [1, 10, 100, 1000, 10000]:
   if i == 100:
       continue
   s += i
print(s)
# 因為當100被放入i並執行迴圈時,i等於100,因此進入if區塊,在if區塊內遇到continue,所以停止往下執行,直接進入下一圈迴圈,印出 11011

上一篇
#2 Python教學1
下一篇
#4 Python進階教學1
系列文
終極大數據地獄24

尚未有邦友留言

立即登入留言