Python初學總整理 第3講:Python資料型態和運算子

哈囉,大家好,我是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 = 1 x = 1

+=

x += 2 x = x + 2

-=

x -= 3 x = 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

兩者皆真才為真

or 1 > 2 or 1 > 0

其中一真便為真

not not( 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就到這裡告一個段落了~感謝大家閱讀,歡迎大家留言和我互動,分享心得,我們下次見~下集討論Python的條件、迴圈和函數的部分,敬請期待!

Python初學總整理 全系列:

Python初學總整理 第1講:Python簡介

Python初學總整理 第2講:Python開發環境

Python初學總整理 第3講:Python資料型態和運算子 (本篇)

Python初學總整理 第4講:Python條件、迴圈與函數

Python初學總整理 第5講:爬蟲應用(上)

Python初學總整理 第6講:爬蟲應用(下)

Python初學總整理 第7講:爬蟲實例解析 – 以爬取臉書社團為案例,使用 Selenium 來進行網頁模擬爬蟲

Python初學總整理 第8講:Matplotlib套件

Python初學總整理 第9講:Numpy函式庫


文章看完還是不知道該從哪裡下手?

就從線上課程開始吧!不讓你獨自摸索好幾個月,用8小時帶你走完基礎與精華,培養你基礎的Python概念,讓自學下一步不是煩惱!

全新Python 課程上架,8小時基礎實戰!,限時優惠只要NT 600 (HDK 120 起)!

不讓妳浪費一整天,只要你8小時,就能讓你學會基礎!

如果你的入門還在單打獨鬥,歡迎來到快樂學程式找到志同道合的夥伴,你的自學之路不孤單。

參考資料:

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

Teresa

Recent Posts

三個你不能錯過的教學資訊

疫情之下,原本實體活動全都改成線上,活動分享全都在網路上很容易錯過,這邊整理了幾個跟數位教學相關的活動資訊給大家參考,分享順序為活動時間⏰ 1. Google Workspace技術整合術 Google Workspace for Education (原 G Suite 教育版) 能透過 Gmail、Google Drive、Google Calender、Google Meet 和 Classroom 等通訊與協作應用程式創造輕鬆與順暢的學習環境,並促進協同合作以提升數位學習與教學成效,而且還會為學校資料提供雲端安全性防護…

3 years ago

線上教學沒有臨場感?Gather來幫你解決

實體的教室變成一格一格的畫面,原本吵雜的下課時間也變成掛斷通話的系統聲。原本在班級中的歸屬感慢慢消失了,久而久之,孩子的對於學習,不再有群體的感覺,只是孤軍一人學習、複習、考試,甚至是畢業典禮都少了一份臨場感。因此,今天要和大家介紹一款現在在教育界還很少被提到的軟體-Gather。 Gather 如果你還不知道Gather,或是直覺的把Gather與虛擬會議室連結在一起,不妨先看看Gather裡的特色: 介面是像素型RPG 每個人自由創建一個角色 上下左右輕易控制角色 走道其他角色旁邊能互相討論 小遊戲battle 光是這五點特色,就足以推派它成為遠距教學的工具,除了打造不同空間的地圖外,最特別的是Gahter打造前所未有的臨場感,人與人之間只有靠近到一定距離,才能聽到彼此說話聲音,而相對應的,離開後聲音就會漸漸聽不到,就連白噪音的設計也是如此,非常的逼真。 不知道老師們會不會因為搭建地圖覺得麻煩,或是看到2D介面怕學生當遊戲在玩而不考慮這款軟體,換個角度思考,藉由不同地區的老師們集思廣益,打造出最適合學生學習的環境,像是不同學科的教室、戶外自然生態區、操場、籃球場等等....都可以更貼近真實校園,而像素的介面正好提高學生的學習意願,老師們擔心學生過於沉迷時,也能用全體廣播放上課鐘聲,或是讓學生們聚集在同一區,鏡頭站起來動一動 (另外推薦Active Arcade -> 趣味運動的APP ),就像早操一樣很真實。 線上教學缺乏臨場感,Gather可以創造了讓大家「一起在一個遊戲世界」的凝聚力。縱使Google Meet、Teams 雖然也可以進行討論,但若要每堂課要穿梭在不同會議間,節奏不流暢,使用Gather可以讓學生更自由地移動,相對應的老師也可以神出鬼沒地到處「旁聽」。 教孩子用科技解決問題,如果老師們也努力著示範給孩子看,創造出獨一無二的學習空間,相信對於孩子學習的歷程中,有莫大收穫。但到底怎麼開始使用?別擔心,這次快樂學程式邀請到Gahter界的大神 阿岳,要來和大家分享Gather的6大應用技巧,限名額唷~…

3 years ago

HTML入門系列:基本觀念介紹!

HTML入門&基本觀念介紹!         構成一個網頁,最重要的就是他的結構,而HTML就像是他的骨架,而CSS就是像是我們身體上的肌肉一般,而JS則像是人體的神經、血管般調整著我們身體、傳遞訊息,那麼HTML究竟是指哪些語法呢?   什麼是HTML?       HTML全文又稱為HyperText Markup language ,也就是所謂的超文本標記語言,是網頁構成的基本要素,換言之,網頁就是由一堆html所構成,透過瀏覽器,顯示文字、圖片、以及其他相關我們可以在網頁上看見的基本元素。而對於剛學程式的朋友來說,HTML有以下幾個重點: HTML的基本架構: HTML的基本觀念與優點1.容易學習-HTML的文檔製作非常簡單易懂﹐功能強大之餘還支持不同格式的文件鑲入。2.製作門檻低-HTML是文本﹐它需要瀏覽器的解釋。只要你學會了HTML﹐你就可以直接在Windows的記事本或寫字版上進行製作和編輯﹐當然你也可以用WPS來編寫﹐只要注意在存檔的時候用.htm或.html來做檔名就可以了3.有利於搜尋引擎理解你的內容,透過HTML所構成的頁面被稱作所謂的”靜態頁面”﹐而Google爬蟲會優先收錄靜態網頁﹐所以HTML對於Google來說就像是鯊魚聞到血腥味一樣﹐有利於吸引Google爬蟲。4.加快瀏覽速度-因為靜態網頁無需連接數據庫﹐因此比打開動態網頁的速度較快﹐對於消費者體驗來說有所幫助。5.網站更安全-因為HTML頁面不會受Asp相關漏洞所影響。 HTML的缺點與限制 1.太簡單﹐不能適應現在越來越發達的網路世界和應用的需要﹐比如手機﹑PDA﹑信息家電等都不能直接顯示HTML2.太龐大﹐由於HTML代碼不規范﹑臃腫﹐瀏覽器需要足夠智能和龐大才能夠正確顯示HTML。顯然在你的PDA上裝一個IE6是不可能的。空間不夠﹐運算也跟不上3.數據與表現混雜。這樣你的頁面要改變顯示﹐就必須重新制作HTML。對不同的網路設備顯示同樣的數據都需要制作不同的HTML4.只能對文本進行排版﹐而且HTML樣式使用標準文本標識﹐不能創建一些特殊效果 所以我該如何學習HTML? 有什麼比較快的方法嗎?       答案是沒有的﹐學習程式語言就像是學習廚藝一樣﹐只有透過不停的嘗試﹑嘗試和嘗試才能讓自己有所成長﹐並且慢慢強大。過程中你會一直遇上困難和失敗﹐但你在不斷解決困難的過程中能夠不斷發掘新的知識﹐從失敗中發才能不停的成長。無論你是學習那一種程式語言﹐都需要經歷困難和失敗才能讓自己更加強大﹐正所謂:不經一番寒徹骨,怎得梅花撲鼻香呢?對吧﹐我們能做的不是要找捷徑﹐而是透過不同的媒介和平台去不斷學習﹐那麼下面快樂學程式會為大家介紹一些很棒的程式教學網站﹐讓大家可以不斷提升自己。 1.w3schools.com- 語法練習的好地方這個網站是目前全球訪問量最大的網頁開發教程網站﹐網站裡有多種程式語言的教學﹐而且每種程式語言由淺到深的解說﹐從語言的介紹到不同的功能和方法都會分章節說明。所以無論你是從零開始學的白紙﹐還是已經在學習但遇到困難的新手都可以在這個網站上找到相關資訊﹐是個非常不錯的網站。那麼網址我們當然要雙手奉上﹐請慢用https://www.w3schools.com/ 2.CodeAcademy- 免費的教學網站這是全球其中一個最受歡迎的免費coding教學網站﹐已經有超過2400萬人透過這個網站學習到了如何去coding。這個網站是非常適合新手入門的同學去學習的﹐網站會一步一步仔細的教導而且還有實作﹐所以學習起來非常的快速! 3.StackOverflow- 實際案例與疑難雜症的解決處  這個網站比較適合一些已經有在嘗試動手實作的同學﹐當你在coding的時候遇上困難了﹐那麼你可以在這個可以解決超過80種程式語言問題的網站上找到答案﹐讓你的coding之路更加順暢。  如果你覺得爬網站麻煩又費時,不妨直接點擊快樂學程式的網頁前端課程,老師直接手把手帶你入門HTML !完整的基礎入門課程省下你獨自摸索花費的時間!   課程上架Udemy ! 準備一個輕鬆的週末,只要一天的時間,帶你建置靜態網頁。從實作中打開靜態網頁的大門,讓你的研究之路不是只有自己,有我們跟你一起努力!課程中你可以瞭解網站建置的世界觀與網站版型掌握HTML5的使用方式掌握 CSS3的使用方式使用Bootstrap處理前端UI框架現在開始上課!如果你的入門還在單打獨鬥,歡迎來到快樂學程式找到志同道合的夥伴,你的自學之路不孤單。快樂學程式

4 years ago

HTML語法整理! 3分鐘快速弄懂常用語法!

什麼是HTML?         HTML全名是HyperText Markup Language,是一種描述超文件的註記語言SGML(Standard Generalized Markup Language)所制訂出的一種網頁語言,是編寫網頁的基本語言,基本上現行的瀏覽器都可以讀取HTML,使用HTML可以編輯設計出網頁,也可以在網頁中加入所有HTML語言可支援的方式,例如表格、表單、圖片、文字、連結、程式等等。 HTML介紹與基本語法整理   不管你是小時候從撰寫無名小站為了要修改你的樣式,而開始瞭解HTML和CSS為何物,或是長大因為介面設計或前端工程開始踏入網頁的世界。HTML和CSS對於網站的重要性經過多年依然歷久不衰。在本篇會對HTML進行基礎的介紹並幫你整理出基本語法提供你在寫網頁時的快速參考!   編寫基本的HTML: 先讓大家看一下一個基本的HTML文件格式為: <HTML> <HEAD> <TITLE>網頁主題</TITLE> <Meta> </HEAD> <BODY>…

4 years ago

PHP是什麼?3分鐘PHP基本介紹!

PHP是什麼?3分鐘PHP基本介紹!       大家安安﹐快樂學程式這一次要跟大家分享PHP這種程式語言。希望幫助對於PHP有興趣的新手們可以透過我們的文章對這種語言有初步認識。一如以往﹐我們會分享以下幾項有關PHP的知識。 PHP是什麼?       PHP語言的全名是(PHP: Hypertext Preprocessor),和ASP、JSP等都是動態網頁開發語言,不過,PHP擁有跨平台的能力,無論是在Linux(最適合)、Unix、 Windows都可以執行運作,不像微軟 的ASP只能在Windows平台上執行,而且PHP是免費的,並可結合多種資料庫伺服器,如:MySQL、PostgreSQL、dBase、mSQL、Informix、ODBC、Oracle等。      PHP語言是伺服器端(Server)執行的網頁,不像一般HTML網頁,只要單機下開啟檔案就可以檢視網頁,PHP必須先在伺服器端執行完後,再將結果傳至使用者端(Client)的瀏覽器中檢視結果,所以必須使用網站伺 服器,且伺服器要支援PHP。 如何學好PHP?       要學好PHP,要有目的,要有一個想寫的東西,寫個學校網站,寫個校友系統,寫個簡單的新聞區或相簿...等,都可以,盡可能的和工作和生活結合,利用程式來簡化繁瑣的人工步驟,或者提昇工作效率,有目標,才會有動力,才會有想法。      學PHP不需要背,背不完的,只要懂就好了。像函數就不用背,常用的打久了你就背起來了,不常用的,等到要用時,知道去哪裡找就好。換言之,函數懂越多,功力越高強。      程式碼可以複製貼上,但一定要知道為什麼要這麼寫,不要傻傻的照著打,可以的話,自己打一遍最好,最上乘就是可以說出每一行程式碼的作用和前因後果。或者,故意打錯,看看會怎樣。錯誤訊息看久了,功力也就提昇了。 PHP程式碼執行方式 透過 Web Server 方式:例如利用 Apache…

4 years ago

PHP是什麼?基本介紹與語法整理

Sildenafil citrate oral jelly Combiné avec les données de départs 2, on leur a demandé de type 5 de tadalafil…

4 years ago