fbpx

哈囉,大家好,我是Teresa,EP. 2統整了如何建置Anaconda開發環境、簡介Jupyter Notebook介面,也以簡單的程式碼示範了Python在執行語法的注意事項:縮排、變數以及註解。EP. 3 要整理的是資料型態以及運算子,讓我們一起看下去吧~同樣也可以跟著簡單範例操作看看哦~

資料型態

為什麼了解資料型態很重要?在程式語言中,變數可以儲存不同類型的資料型態,不同類型的變數可以處理不同的事情。雖然Python沒有宣告變數的指令,但在預設的情境下,Python還是會默認變數的資料型態。如果想要知道某變數的資料型態是什麼的話,可以用 type( ) 函數。

a = “ Teresa”
print(type( a ))

雖然Python會默認變數的資料型態,但還是可以用函數指定資料型態,舉例如下:

以函數建立變數資料型態直接將值給變數
x = str(“ My name is Teresa”)str  字串x = “My name is Teresa”
x = int(520)int  整數x = 520
x = float(37.5)float  浮點數x = 37.5
x = complex(1j)complex  複數x = 1j
x = list((a , 1 , “two” ))list  列表x = [ a, 1, “two”]
x = tuple((1, a, “three”))tuple  元組x = (1, a , ”three”)
x = range(6)range  生成整數的函數x = range(6)
x = dict(name = “Teresa”, gender = “female”)dict  字典x = {name = “Teresa”, gender = “female”}
x = bool(2)bool  布林x = True

數字

Python有三種數字型態:int、float、complex,建立的方式請參考上方表格。

int 整數

int 是(長度無限的)整數,包含自然數(正數)、負數、0 以及不帶小數部分的數字

float 浮點數

float 是帶有小數部分的數字,包含正數、負數、可以以科學記號 e / E 表示

complex 複數

複數可以分為實部與虛部,虛部結尾以 j / J 結尾

random 模組

Python沒有產生隨機數字的函數,但可以匯入random模組,產生隨機數

import	random
print(random.randrange(1, 20))	#隨機產生介於1到20之間的隨機數

以上是random模組中的其中一個函數,還想知道更多用法的話請參考:https://www.w3schools.com/python/module_random.asp

指定變數類型

int、float、str 可以直接轉換類型,舉例如下:

a = int(1)	# a 會是 1

b = int(2.7)	# b 會是 2 (無條件捨去到前一個整數)

c = int(“3”)		# c 會是 3
a = float(1)		# a 會是 1.0
b = float(2.7)		# b 會是 2.7
c = float(“3”)		# c 會是 3.0
d = float(“5.2”)		# d 會是 5.2
x = str(“python3”)	# x 會是 ‘python3’

y = str(“2”)		# y 會是 ‘2’

z = str(“3.0”)		# z 會是 ‘3.0’

字串

Python中的文字是由單個引號( ‘ )或雙引號( ” )包圍,但必須成對

多行字串可以使用( “””)或是(”’)

a = “ This is Python's note for beginners.”

b = “”” Hello, my name is Teresa,

I am learning Python.

Learning Python is interesting.”””

print(a)

print(b)

[ ]可用於取得字串中的元素,每個字元長度都為1,但第一個字元的位置為0,該數字被稱為索引號

x = “Hello world!”

print(x[0])       # H

print(x[3])       # l

切片

切片語法可以取得某個字串範圍,可以指定開始索引和結束索引(不包含),並以冒號分隔

a = “Hello world!”

print(a[6:11])		

#會得到world,從第6個字元~第10個字元(不包含第11個字元)

負索引

使用負索引,可以從字串末端開始切片,-1 代表最後一個字元

a = “ Hello world!”

print(a[-3:-5]) 

#會得到or,從倒數第5個字元~倒數第4個字元(不包含倒數第3個字元)

字串函數

以下是字串的相關函數,如果還想知道更多用法的話,可以參考以下網址:https://www.w3schools.com/python/python_ref_string.asp

函數

功能程式碼範例

結果

len( )

可以獲得字串的長度

a = “ Hello world!”

print(len(a))

13

strip( )

從開頭或結尾刪除空白

a = “  Hello world!  ”

print(a.strip( ))

“Hello world!”

lower( )

可將字串轉為小寫

a = “Hello World!”

print(a.lower( ))

“hello world!”

upper( )

可將字串轉為大寫

a = “Hello World!”

print(a.upper( ))

“HELLO WORLD!”

replace( )

將字串取代為另一個字串

a = “Hello, World!”

print(a.replace(“H”, “K”))

“Kello, World!”

split( )

將字串拆分為子字串

a = “Hello, World!”

print(a.split(“,”))

[Hello”, “ World!”]

檢查字串

要檢查字串中是否存在某個字詞或字元,可以使用關鍵字: in / not in

text = “ Hello, this is Python’s note for beginners.”

a = “note” in text

b = “Python” not in text

print(a) #回傳True

print(b) #回傳False

字串串聯

EP. 2 的時候,有提到 + 可以用來串聯字串,且字串與數字間不能串聯,但我們可以透過 format( ) 來達到此目的,這個函數是用傳遞參數的形式,可以設定它們的格式與位置,而且可以放置無限個參數到佔位符{ }中。

為了確保參數放置正確,可使用索引號明確定義參數位置。

month = 3

text = “ My name is Teresa, and I have been learning Python for { } months.”

print(text.format(month))

轉義字元

當字串文字包含雙引號或單引號時可使用轉義字元:反斜槓( \ ),後面直接加入字元。

#以下是錯誤的程式碼

text = “ We are learning “ Python”.” 

print(text)

#因為雙引號必須成對,因此程式碼會被判定斷在"We are learning “
#正確的程式碼如下:

text = “ We are learning \“ Python\”.”

print(text)

Python中還有其他轉義字元,請參考:https://www.w3schools.com/python/python_strings.asp

布林值

在程式語言中,布林值表示 True 或是 False

輸入表示式,Python可回傳 bool 值或依照 bool 值做相對應的指令,因此自己可以建立返回布林值的函數或是根據布林值的答案執行程式

#比較兩個值

print( 1 > 0)      # True

print( 1 == 0)     # False

print( 1 < 0)      # False
#判斷條件式

a = 520

b = 37

if  b > a:

print("b is greater than a")

else:

print("b is not greater than a")
#b is not greater than a,因為b > a的 bool值為False所以執行else的語句
#評估變數和值
a = “Python”

print(bool(“Teresa”)) # True

print(bool(37)) # True

print(a) # True

我們可以發現大多數的值的bool值都是True,那什麼時候會出現 False呢?有以下幾種情況:

  1. bool(False)
  2. bool(none) #none = 空值
  3. bool(0) #數字為0時
  4. bool(” “) #字串為空時
  5. bool(( )) #列表為空時
  6. bool([ ]) #元組為空時
  7. bool({ }) #字典為空時

運算子

運算子可以對變數和值進行操作,可區分為以下幾種類別:

算術運算子

算術運算符可以運用在數值上以執行常見的數學運算

符號

功能範例

+

Addition(加)1 + 2  # 3

Subtraction(減)1 – 2  # -1

*

Multiplication(乘)1 * 2  # 2
/Division(除)

12 / 3  #  4.0

%Modulus(求餘)

11 / 2  # 1

**Exponentiation(冪次方)

2 ** 5  #  32

//Floor division

(忽略小數點後的數字)

11 // 2  # 5

分配運算子

符號

範例等同於

=

x = 1x = 1

+=

x += 2x = x + 2

-=

x -= 3x = x – 3

*=

x *= 5

x = x * 5

/=x /= 6

x = x / 6

%=x %= 7

x = x % 7

//=x //= 8

x = x // 8

**=x **= 9

x = x ** 9

比較運算子

比較運算子用於比較兩個值,可回傳布林值或是依據布林值做相對應的指令

符號

名稱範例

==

等於

a == b

!=

不等於

a != b

>

大於

a > b

<

小於

a < b

>=大於”或”等於

a >= b

<=小於”或”等於

a <= b

邏輯運算子

邏輯運算子用於組合條件語句,並回傳對應的布林值,或依據布林值執行相對應的指令

符號

範例判斷

and

1 < 2 and 1 > 0

兩者皆真才為真

or1 > 2 or 1 > 0

其中一真便為真

notnot( 3 < 5 and 3 < 10)

真回傳假,假回傳真

識別運算子

識別兩個物件是否具有相同的記憶體位置

符號

判斷

is

兩者同物件時為真

is not

兩者非同物件時為真

x = [ “apple”, “banana”]

y = [ “apple”, “banana”]

z = x

print( x is y)        # False,因兩物件綁定的記憶體位置不同

print( x is not z)    # False,因兩物件綁定的記憶體位置相同

成員資格運算子

符號

判斷

in

當特定的值在序列中回傳真

not in

當特定的值不在序列中回傳真

x =  [ “apple”, “banana”]

print(“apple” in x)             #True

print(“cherry” not in x)        #True

EP. 3就到這裡告一個段落了~感謝大家閱讀,歡迎大家留言和我互動,分享心得,我們下次見~

如果想追蹤我更多文章的話,可以加入程式小白的 JS Python 學習群的社團,和我還有其他學習夥伴一起討論、交流、互動哦~我們下次見~

 

補充~想和大家分享10月底有一場舉辦的線上小聚有聊機器學習!這也是我在Python中會感興趣的主題之一,Teresa已經報名了也推薦給大家~

活動資訊:https://pse.is/vjqz8

參考資料:

  1. https://www.w3schools.com/python/default.asp

 

Leave a Reply