Python

About Me

  • 王柏凱
  • 海大資工大三
  • 往仙人邁進的大學生
  • 曾參與 ICPC 亞洲區花蓮站獲得佳作
  • 曾參與 ITSA 桂冠賽闖關組獲得佳作
  • Github: https://github.com/adkevin3307

What is Python

學習 Python 需要的東西

  • 練習
  • 找資料的能力
  • 英文很重要,尤其是閱讀

Environment

What is Environment

要來愛護地球ㄌ

Python 3

Python 3

Python 3

Windows

  • 在 Windows 中,基本上就是這兩個擇其一使用
  • 不論是哪一種,安裝時都要注意以下幾點
    • 要是 Python 3.x.x 版本
    • 位元是否和自己電腦相同,大部分都是 64 bits
    • 環境變數的設置
      • 安裝時可以選擇設置環境變數,所以記得勾選

32 Bits or 64 Bits

可在我的電腦的內容中看到

在下載時,查看安裝檔的描述

確認檔名是否出現 64 bits 相關敘述

以下皆以 64 bits 為例

PATH

PATH

Official ​Python

  • 優點
    • 體積小
    • 通常不會跟 Windows 衝突
  • 缺點
    • 安裝完後只有基本的 Package
    • 要自己解決各 Package 之間的衝突

Anaconda

  • 優點
    • 安裝完後就有大部分常用的 Package
    • 有機會幫你解決好 Package 之間的衝突
  • 缺點
    • 體積龐大
    • 有時候會跟 Windows 10 衝突 QQ
    • 有時候也沒辦法解決 Package 之間的衝突
    • 有些 Package 會有 cp950 的問題

Unix-Like

Unix-Like 中,通常會有 Python 3 可以直接安裝

  • Ubuntu
    • apt-get install python3
  • Fedora
    • dnf install python3

Editor

What is Editor

Visual Studio Code

課程中會以 Visual Studio Code 為主要使用的編輯器

目錄名稱

目錄下的檔案會在這邊顯示

CLI

名詞介紹

  • CLI
    • Command Line Interface
    • an interface where the user types a command
  • Terminal
    • text input / output environment
      • cmd on Windows
      • bash on Linux

cmd

當前目錄位置

bash

當前目錄位置

特別目錄對應符號

Command Explain
~ 家目錄
/ 根目錄
. 當前目錄
.. 上一層目錄

目錄操作中,有一些符號代表特定的目錄位置,如以下所示

移動目錄相關指令

Command Explain
cd {dir_path} 移動到 dir_path 目錄
cd, cd ~ 移動到家目錄
cd / 移動到根目錄
cd . 不移動 XD
cd .. 移動到上一層目錄

檔案、目錄相關指令

Command Explain
ls 列出當前目錄下所有東西
pwd 查看當前目錄位置
touch {file_name} 建立 file_name 檔案
rm {file_name} 刪除 file_name 檔案
mkdir {dir_name} 建立 dir_name 目錄
rmdir {dir_name} 刪除 dir_name 目錄

Python 相關的指令

Command Explain
python3 {file_name} 令 Python 執行 file_name 檔
python3 開啟 python shell
code . 在當前目錄開啟 VSCode

Python Shell

Python Shell 是可以執行 Python code 的地方,通常使用在試試簡單的程式碼時。

Python Shell 會有 >>> 的符號,不要和普通的 shell 搞混惹

Python Shell

說過怎麼進入 Python Shell 了,那離開呢?

Ctrl + C

ctrl + c 是甚麼意思?

ctrl + c 是一種中斷信號,稱作 KeyboardInterrupt,可以中斷正在執行的程式

Basic Data Type

Basic Data Type

Python 中的基本資料型態可以分為以下五種

  • int (Integer):整數
  • float:小數
  • str (String):字串
  • bool (Boolean):布林值 (真偽值)
  • complex:複數

為甚麼會有不同的資料型態

在電腦中,所有資料都是由 0、1 組成,不同種類的資料,會有不同的儲存方式,因此有各種不同的資料型態。

sign 1 0 0 0 ... 1 0 0 1

int

sign 0 ... 1 0 1 ... 1 0

exponent

float

fraction

Basic Data Type

Data Type Example
int 1, 2, 3, -1, -2, -3, ...
float 0.1, 0.2, 0.3, -0.1, -0.2, -0.3, ...
str 'abc', "abc", ...
bool True, False
complex 1 + 2j, 3 + 4j, ...

Basic Data Type

  • str
    • str 要用單引號雙引號包起來
    • 只要被單引號雙引號包起來的型態都是字串
    • 以下這些都是 str 型態
      • 'abc', "abc"
      • '123', "123", '1 + 2j', "1 + 2j", '0.1', "0.1"
      • 'True', "True"
  • bool
    • 第一個字母要大寫

How to Check Data Type

好多型態 RRRRRR~~~~~~~~

有個功能叫做 type(),把想查看型態的資料放在小括號裡面,它就會告訴你資料的型態。

print(type(123))
print(type(0.123))
print(type('123'))
print(type(True))
print(type(1 + 2j))

<class 'int'>

<class 'float'>

<class 'str'>

<class 'bool'>

<class 'complex'>

等等...剛剛有個奇怪的東西...

可能有人有發現,於是我們來偷渡一下 XD

如果要將想看到的資料列印出來,我們會使用 print( ) 這個功能,將想列印的資料放在小括號裡面即可。

print(123)
print(0.123)
print('abcdefghi')
print(True)
print(1 + 2j)

123

0.123

abcdefghi

True

(1+2j)

int

Symbol Explain Example Result
+ addition 1 + 2 3
- subtraction 1 - 2 -1
* multiplication 1 * 2 2
/ division 1 / 2 0.5
// integer division 1 // 2 0
% remainder 1 % 2 1
** power 1 ** 2 1

float

Symbol Explain Example Result
+ addition 0.1 + 0.2 0.3000000000004
- subtraction 0.1 - 0.2 -0.1
* multiplication 0.1 * 0.2 0.0200000000004
/ division 0.1 / 0.2 0.5
// integer division 0.1 // 0.2 0.0
% remainder 0.1 % 0.2 0.1
** power 0.1 ** 0.2 0.6309573448019

因為 float 是以 IEEE754 的方式儲存資料,所以有些運算結果會跟我們想的不一樣。

str and bool

Symbol Explain Example Result
+ 把字串接起來 'abc' + "def" 'abcdef'
Symbol Explain Example Result
and True and False False
or True or False True
not not True False

Different Data Type

顯然 int、float、complex 可以混合運算,但要符合邏輯。

除此之外,str 和 int 之間還有一種運算可以操作。

Symbol Explain Example Result
* 將該字串重複 n 次 'ab' * 3 'ababab'

在不同的資料型態中,有哪些可以混合運算的呢?

More Operations for String

以下黃色的部分都要替換成相對應的值

  • len(str),計算 str 的長度
  • str.format(args1, args2, ...),將 args 放入 str 裡相對應的位置
  • str.split(str1),將 str 以 str1 切割
  • str.replace(str1, str2),將 str 裡的 str1 取代為 str2
  • str.strip(),將 str 前後的空白和換行都清除
  • str.find(str1),找到 str1 在 str 的哪個位置,從 0 開始
  • str.upper(),將 str 全部變為大寫
  • str.lower(),將 str 全部變為小寫
  • str1 in str, str1 not in str,判斷 str1 是否在 str 裡面

More Operations for String

print(len('abc'))

想必剛剛一定沒有人看懂那些奇怪的東西,所以來示範ㄍ

3

len(str),計算 str 的長度

str.format(args1, args2, ...),將 args 放入 str 裡相對應的位置,以大括號決定將 args 放入 str 的位置

More Operations for String

print('abc def'.split(' '))

['abc', 'def']

str.split(str1),將 str 以 str1 當作切割點

print('abc'.replace('a', 'def'))

defbc

str.replace(str1, str2),將 str 裡的 str1 取代為 str2

Change Data Type

如果有一個字串 '123',想要將它變成 int 型態該怎麼辦?

如果有一個整數 123,想要將它變成 str 型態怎麼辦?

'123'
123

'123'
123

Change Data Type

'123'
123
'123'
123
int('123')
str(123)

那還有哪些可以互相轉換型態?

Change Data Type

Origin Target Type Result
123 str '123'
'123' int 123
123.999 int 123
123 bool True
0 bool False
123.123 bool True
0.0 bool False
'abc' bool True
'', "" bool False

Escape Character

Escape Character

說完 str 型態,不知道大家有沒有發現一些問題,如果想要在一個字串中表示換行要怎麼表示?

print("abc
def")

Escape Character

在程式語言中,為了表示某些特定的符號,會使用特別的表達方式,例如說換行,就會以 \n 來表示,以下列一些常見的跳脫字元。

Symbol Meaning
\n newline
\\ literal backslash
\' single quote
\" double quote
\t tab

Escape Character

print('abc\'def"ghi')
print('123\n456')

abc'def"ghi

123

456

稍微示範一下~

為甚麼單引號和雙引號也需要特殊的表示方式?

Escape Character

'abc'def"ghi'

'abc\'def"ghi'

如果單引號沒有特殊表達方式,程式會找到最近可以配對成一對的地方就當成一個字串了。

None

The None Value

在 Python 中,還有一種資料值是 None,代表 nothing,也就是甚麼都沒有。

None 轉成 bool 型態時,結果會是 False。

print(bool(None))

False

0 vs None

Problem

來看個問題

不知道大家記不記得複利這個東西,現在要使用 Python 來幫我們算複利。

如果本金是 10000,年利率是 2%,然後存 10 年,我們會獲得多少錢呢?

複利

複利是一種計算利息的方式,如果每年為一期,利息除了根據本金計算外,同時也將新得到的利息一併計算。

時間 利息 總金額
一年 10000 * 0.02 = 200 10000 + 200 = 10200
二年 10200 * 0.02 = 204 10200 + 204 = 10404
三年 10404 * 0.02 = 208.08 10404 + 208.08 = 10612.08
... ... ...

複利

藉由觀察,第 n 年所擁有的總金額為

10000 \times (1 + 0.02)^n
print(10000 * ((1 + 0.02) ** 10))

所以在 Python 中,可以寫成下面這個樣子

Variable

What is Variable

在 Python 中,變數像是容器一般,將各種型態的資料裝起來,方便之後使用。

Why Need Variable

  • 變數可以將資料命名,方便辨認資料的功用
    • 增加可讀性
  • 可以在程式執行過程中,根據程式碼變更資料值
    • 自由度變高
    • 能做的事情更多

How to Use Variable

a = 10
b = 0.1
c = True
d = 'abc'
e = 1 + 2j
ouo = '你好'
  • 使用 = 將資料放進變數裡
  • = 代表 assign (指派),而不是數學上的等於
  • = 右邊的資料給左邊的變數保存
  • 變數可以任意命名,通常以小寫英文字母和底線來命名
    • 不能使用 Python 的保留字
    • 變數中不能包含 -, /, \, = 及其他運算符號

Multiple Assign

如果要一次 assign 多個變數,可以這樣寫

Keywords

False, class, finally, is, return, None, continue, for, lambda, try, True, def, from, nonlocal, while, and, del, global, not, with, as, elif, if, or, yield, assert, else, import, pass, break, except, in, raise

以下都是 Python 的保留字,不能拿來當變數名稱

How to Use Variable

a = 10
b = 100

print(a + b)

對變數所做的運算,就是對變數裡的內容物做運算,也就是操作容器裡的內容物。

110

Operation for Variable

a = 1
b = 2
c = a + b

print(c)
a = 1
b = 2
a = a + b

print(a)

Operation for Variable

a = a + b
a += b

Equal

以此類推,也有 -=、*=、/=、//=、%=、**= 這些運算,但是比較不建議使用。

Use Variable in Problem

money = 10000
rate = 0.02
year = 10
earning = money * ((1 + rate) ** year)

print(earning)

根據以上這些,我們可以把前面複利的問題寫成這樣。

藉由好的變數命名,可以幫助我們更容易閱讀程式碼。

Constants

在寫程式時,有些資料不想被改變,就像重力或圓周率,但是 Python 沒有常數的語法,因此習慣以全大寫和底線的方式命名變數,以此代表常數。

PI = 3.1415926535
GRAVITATIONAL_ACCELERATION = 9.8

Input and Output

Output

Python 的 output 部分,在前面已經偷講了一些,我們會使用 print() 來輸出想輸出的資訊。

a = 10
b = 20

print(a)
print(b)

Output

不知道有沒有人注意到,在每次輸出完資訊之後,Python 都自動換行了,這是因為 print() 有一個屬性 end,會決定在結尾應該是甚麼東西。

而 print() 中的 end 預設是 '\n',也就是換行。

print('abc', end = ',')
print('def')
print('ghi')

abc,def

ghi

Output

剛剛可能有人有注意到,print() 裡面可以使用 , 隔開兩個東西,那 , 會產生甚麼效果呢?

print('abc', 'def')

abc def

Output

與 print() 搭配的東西還有 str.format(args1, args2, ...),我們會藉由這個功能來格式化輸出,也就是讓輸出長成我們想像中的形狀 (X

a = 10
b = 20
print('show a and b: {}, {}'.format(a, b))

show a and b: 10, 20

Input

終於要讓程式和使用者互動ㄌ~~~

在 Python 中,如果想要讀取使用者輸入的資料,我們會使用 input() 這個功能,input() 有幾個重點

  • input() 讀入的資料需要使用一個變數記起來
  • input() 讀入的資料一定是 str 型態
  • input() 小括號裡的資料不影響輸入

Input

a = input()

print(type(a))

使用變數 a 將讀入的資料記住,並查看 a 的型態。

<class 'str'>

Input

input() 有一個小括號ㄝ,裡面可以放甚麼?

a = input('hello everyone: ')

print('variable a: {}'.format(a))

以字串為例,input() 小括號裡放的資料會直接被輸出到螢幕上,當作輸入的提示,不會影響變數讀到的值。

使用者輸入的 123 assign 到 a 這個變數

將 hello everyone 直接輸出到螢幕上

hello everyone: 123

variable a: 123

Input

= 是 assign

= 是 assign

= 是 assign

不是數學上的等於

Comment

Comment

如果想要有敘述在程式中不被當作程式碼,要怎麼寫呢?

print('hello NTOU') # This is a comment
# This is a comment

註解是寫給人看的敘述,幫助增加程式的可讀性。

  • 井字號之後的所有敘述都是註解

Comment

那如果有很多行的註解要怎麼辦?

'''
This is a comment.
This is a comment.
'''

"""
This is a comment.
This is a comment.
"""

print('hello NTOU')

Problem

複利

還記得前面那題複利嗎?現在題目增加一點難度,要讓使用者輸入本金、年利率、存的年份,之後幫忙算出最後會獲得多少錢?

輸入

本金: 10000

年利率: 0.02

存幾年: 10

輸出

獲得: 12189.944199947573 元

小提醒

提醒大家幾件事

  • 要幫變數取個好名字 (推薦英文
  • 可以的話試著寫寫註解 (推薦英文
  • 輸入的部分使用 input()
  • input() 獲得的資料一定是 str 型態
    • 只有 int 或 float 型態可以做這些運算ㄛ~
  • 輸出的部分可以用 str.format(args1, args2, ...) 來完成
  • 這個練習可以開始使用 editor 來寫 Python 囉~
    • 一個題目 (專案) 一個資料夾

Python with Editor

  • 針對這個問題建立新的目錄,並開啟 Terminal 且移動當前目錄位置到新建立的目錄

當前目錄位置要正確

Python with Editor

  • 在 Terminal 中輸入 code . 開啟 VSCode

Python with Editor

  • 新增檔案並給適當的檔名,檔名格式 {filename}.py

檔名要是 .py 結尾

新增檔案

Python with Editor

  • 寫完程式碼後存檔

檔名旁邊的符號變成 x 才有成功存檔

Python with Editor

  • 回到剛剛的 Terminal 並輸入 python3 {filename}.py 執行該 Python 檔案

執行結果

If-Else

if-else statement

有時候,我們在思考一件事情時,腦中會浮現這樣的句子

如果 現在放棄:
    比賽就結束了 # by 安西教練
    暑假就開始了
不然:
    會很累
如果 你闖黃燈:
    那你不一定會出車禍
但是如果 你不闖黃燈:
    那你不一定不會出車禍
但是如果 你要闖不闖的:
    那你就會出車禍
如果 不去上課:
    如果 不去考試:
        就會被當

巢狀

if-else statement

蘋果數量 = 1
如果 他們有雞蛋:
    蘋果數量 = 6
買蘋果

判斷式 vs 陳述式

  • 判斷式
    • 判斷事物的式子,判斷結果以 bool 型態表示
  • 陳述式
    • 陳述事物的式子,除了判斷式外都是陳述式

Compare

Symbol Explain
== equal to
!= not equal to
> greater than
< less than
>= greater than or equal to
<= less than or equal to

== 和 = 兩個意思不同,= 是 assign,== 為檢查是否相等

Compare

print(1 == 1)
print(1 != 3)
print(3 > 2)
print('Z' > 'B')
print(3 < 2)
print(4 >= 4)
print(5 <= 7)

True

True

True

True

False

True

True

來看一些例子吧~

a = 'abc'

print(a == 'abc')

True

and vs or vs not

因為判斷式的判斷結果是以 bool 型態表示,因此可以使用 and、or、not 這些運算。

a = 90
print((a > 50) and (a < 100))
print((a > 50) or (a < 3))
print(not(a > 50))

True

True

False

判斷式

在 str 型態中,有一個運算是 in、not in,而 in 就是檢查是否在該字串裡面,所以這個一樣可以運用在判斷式上。

有沒有人發現,之前還有一個好像可以當判斷式的語法

print('a' in 'abc')
print('d' not in 'abc')

True

True

哪些東西可以當作 False

  • False
  • None
  • 0, 0.0, 0+0j, 0j
  • '', ""
  • ( ), [ ], { }

if-else

終於要說 if-else 啦~~~~~~~

  • if-else 和前面的例子對應
    • if,如果
    • elif,但是如果
    • else,不然
  • 以下是 if-else 的一些規則
    • 每個 else 都需要有 if 或 elif 在它之前
    • elif 前面至少需要一個 if
    • if、elif 後面都需要有判斷式,else 後則不能有
    • if、elif、else 該行結束時都要加冒號
      • 執行區塊需要縮排

執行區塊 and 縮排

  • 執行區塊
    • 當判斷式成立時,會執行某些程式碼的地方
  • 縮排
    • 表示是同一執行區塊的程式碼
if 判斷式:
    blabalbla...
    blabalbla...
    blabalbla...
else:
    blabalbla...
    blabalbla...
    blabalbla...

if 的執行區塊,全部都是同一層級的縮排

else 的執行區塊,全部都是同一層級的縮排

要縮排多少

程式語言中,2、4、8 格空白都可以當作縮排,最多人使用的是 4 個空白,使用一格 tab 通常也是 4 格空白。

  • 整份程式碼需要使用相同的標準當作縮排。
  • 縮排是相對於進入該執行區塊的程式碼,是從該程式碼往後縮排一定距離。

if-else

if 判斷式:
    blablabla...
elif 判斷式:
    blablabla...
else:
    blablabla...
if 判斷式:
    blablabla...
else:
    blablabla...
if 判斷式:
    blablabla...
elif 判斷式:
    blablabla...
elif 判斷式:
    blablabla...

if-else

if 溫度 >= 25:
    if 溫度 < 33:
        print("穿短袖")
    else:
        print("不出門 XD")
else:
    print("穿長袖")

下面來看一個巢狀的 if-else。

如果溫度大於等於 25 度且小於 33 度則穿短袖出門,如果超過 33 度那就太熱了,所以待在家吹冷氣比較好。不然 (溫度小於 25 度) 就穿長袖。

縮排

if-else

稍微來練習看看吧~

if 下雨:
    撐雨傘
if 天氣冷:
    穿長袖
else:
    穿短袖
if 下雨:
    撐雨傘
elif 天氣冷:
    穿長袖
elif 天氣不冷:
    穿短袖
else:
    blablabla...
if 下雨:
    if 天氣冷:
        撐雨傘 + 穿長袖
    else:
        撐雨傘 + 穿短袖

下雨又天氣冷

沒下雨

if-else and pass

if 判斷式:
    pass
else:
    blablabla...

如果你希望在 if-else 的該執行區塊中甚麼事都不做,就要使用 pass,但不推薦使用,盡量以判斷式來解決。

if 判斷式:
    blablabla...
else:
    pass

One Line if-else

如果只有一個 if 和一個 else,而且兩個都執行區塊都只有一行時,在 Python 中可以簡寫成一行。

Operators Priority Order

Operators
( )
**
*, /, //, %
+, -
<, <=, >, >=
==, !=
=, +=, -=, *=, /=, //=, %=, **=
in, not in
not
and
or

highest

lowest

Problem

Common or Leap Year

我們都知道一年通常有 365 天,但是當今年是閏年時,一年便會有 366 天,也就是二月份會變成 29 天而不是 28 天。

現在來試試使用 Python 找出輸入的年份是不是閏年。

Common or Leap Year

閏年的規則

  • 如果西元年可以被 4 整除,那就是閏年
  • 但如果又被 100 整除了,那就是平年
  • 又如果可以被 400 整除,那就是閏年
  • 其他都是平年

Common or Leap Year

輸入

4

5

100

101

400

500

800

1000

輸出

Leap Year

Common Year

Common Year

Common Year

Leap Year

Common Year

Leap Year

Common Year

小提醒

  • 關於整除這件事
  • input() 讀入的資料是 str 型態
    • 年份應該是 int 型態吧~
  • 想清楚邏輯再開始使用 if-else 試試看

For-While

Loops

程式語言中,還有一個很重要的東西是迴圈,迴圈可以允許我們執行一段程式碼多次。

  • Python 的迴圈有兩種
    • for
    • while
  • 迴圈中還有三種 Control Condition (控制語句)
    • break
    • continue
    • pass

for loop

for loop

來看看 for loop 的語法長甚麼樣子~~

  • for loop 會一個一個將 range 裡的東西拿出來使用
  • variable 是一個變數,會依序記住 range 中的每個數字
  • range 可以想像成一個數列
  • for loop 最後一樣要加冒號
  • for loop 的執行區塊一樣要縮排

range

range() 的語法如下

range(start, stop[, step])
  • start:計數從 start 開始 (包含 start),預設從 0 開始
  • stop:計數到 stop 結束 (不包含 stop)
  • step:每次改變量,預設為 1
  • 三個參數中只有 stop 是必填
  • 如果要設定 step 就必須設定 start,不然 (stop, step) 會被認為成 (start, stop)
  • range() 可以想成重複 (stop - start) 次

for loop

來看一些例子吧~~~~

for i in range(10): # range(0, 10, 1)
    print(i)
for ouo in range(-10, 10, 2):
    print(ouo)
for oxo in range(-10, 10): # range(-10, 10, 1)
    print(oxo)
for ovo in range(10, 0, -1):
    print(ovo)

for loop Practice

使用 Python 畫出給定層數的三角形

輸入

3

輸出

-

--

---

使用 Python 算出 1 加到輸入的數字總和 (輸入數字大於 1)

輸入

100

500

輸出

5050

125250

for loop Practice

使用 Python 畫出給定層數的三角形

使用 Python 算出 1 加到輸入的數字總和 (輸入數字大於 1)

n = int(input())
for i in range(n):
    print('-' * (i + 1))
n = int(input())
sum = 0
for i in range(n):
    sum = sum + (i + 1)

Control Condition

break

break 的功用是強制離開自己所屬的迴圈區塊,先來看個簡單的小例子。

for i in range(10):
    print(i)
    if i == 5:
        break

0

1

2

3

4

5

break

來看一個例子,下面的程式碼判斷一個數字是不是質數。

number = int(input('輸入數字:'))
# isPrime == True => 質數, isPrime == False => 非質數
isPrime = True
for i in range(2, number):
    if (number % i) == 0:
        isPrime = False
        break # 這個 break 會跳出 line 4 的迴圈
if isPrime:
    print("{} 是質數".format(number))
else:
    print("{} 不是質數".format(number))

break

如果是巢狀迴圈,break 會離開哪一個迴圈呢?

for i in range(10): # for-loop 1
    for j in range(20): # for-loop 2
        code...
        break # 這個 break 會離開 for-loop 2
    break # 這個 break 會離開 for-loop 1

for-loop 1 的執行區塊

for-loop 2 的執行區塊

continue

continue 可以忽略這一次 loop 中,continue 之後,與自己相同迴圈區塊的程式碼,並繼續執行下一次的迴圈。

如果要輸出 100 除以 -10 到 10 之間的整數,該怎麼寫?

Let's Try It

continue

a = 100
for i in range(-10, 11):
    if i == 0:
        continue
    print('100 / {} = {}'.format(i, a / i))
print("Done")

當 i 等於 0 時,不能當除數,所以使用 continue 跳過它。

pass

pass 可以讓執行區塊甚麼事都不做,通常用在建立程式架構時,如果不知道執行區塊要寫甚麼,一定要記得要 pass。

if a == 1:
    pass
for i in range(10):
    pass

Why Need Pass

for i in range(10):



print('Done')

如果沒有使用 pass,Python 會往下尋找執行區塊,因為找不到所以會出錯。

...

While Loop

while 判斷式:
    blablabla...
    blablabla...

來看看 while 的語法吧~

While Loop

n = int(input())
temp_n = n
count = 0

while temp_n > 1:
    temp_n //= 2
    count += 1

print('{} => 2 ** {}'.format(n, count))

While Loop

while True:
    blablabla...

Python 3

By adkevin3307