Python程式語言的基礎包含資料型別與變數。常見的數值型別有整數和浮點數,用於儲存不同精確度的數值。變數如同容器,用於儲存資料,並可透過指定運算元更改其值。字串則用於表示文字,並支援多種操作,例如連線和重複。理解這些基本概念是Python程式設計的第一步。
# This program says hello and asks for my name.
print('Hello world!')
print('What is your name?')
myName = input()
print('It is good to meet you, ' + myName)
資料型別與變數指定
在程式設計中,每個值都有其特定的資料型別。常見的資料型別包括整數(int)和浮點數(float)。整數是不帶小數點的數字,例如42,而浮點數則是帶有小數點的數字,例如7.5或42.0。
變數指定
程式設計中經常需要儲存運算結果以便後續使用,這可以透過變數來實作。變數就像一個帶有名稱的盒子,可以用來儲存值。在Python中,使用指定運算元(=)將值儲存到變數中。例如:
spam = 15
內容解密:
spam是變數名稱,可以視為一個盒子的標籤。=是指定運算元,用於將右邊的值儲存到左邊的變數中。15是被儲存的值,是一個整數(int)。
當你按下Enter鍵後,不會看到任何回應,除非出現錯誤訊息。這表示指令已成功執行。
變數的操作
變數可以用來儲存單一值,而非運算式。例如:
spam = 10 + 5
內容解密:
- 首先,運算式
10 + 5被評估為15。 - 然後,值
15被儲存到變數spam中。
你可以透過輸入變數名稱來檢視其目前的值:
>>> spam = 15
>>> spam
15
覆寫變數
變數的值可以被改變,只需輸入另一個指定陳述式即可。例如:
>>> spam = 15
>>> spam + 5
20
>>> spam = 3
>>> spam + 5
8
內容解密:
- 第一次執行
spam + 5時,spam的值是15,所以結果是20。 - 當執行
spam = 3後,spam的原值15被覆寫為3。 - 第二次執行
spam + 5時,結果是8,因為spam現在的值是3。
使用多個變數
程式可以根據需要使用多個變數。例如:
>>> fizz = 10
>>> eggs = 15
>>> spam = fizz + eggs
>>> spam
25
內容解密:
fizz和eggs是兩個不同的變數,分別儲存了值10和15。spam = fizz + eggs將fizz和eggs的值相加後儲存到spam中。- 因此,
spam的值為25。
變數命名
雖然電腦不介意變數的名稱,但良好的命名習慣可以使程式更容易理解。變數名稱應該反映其所儲存的資料型別或用途。Python中的變數名稱是區分大小寫的,也就是說,spam、SPAM、Spam和sPAM被視為四個不同的變數。
此圖示展示了Python中變數名稱的大小寫敏感性質。節點A代表變數名稱,箭頭表示區分大小寫的特性,導致不同的變數名稱(節點B),進而各自儲存獨立的值(節點C)。
字串與程式撰寫基礎
在前一章中,我們學習了Python的基本運算和變數使用。本章將探討字串的操作以及如何撰寫簡單的程式。
字串的基本概念
在Python中,字串是用來表示文字的一系列字元。字串值(或簡稱字串)可以儲存在變數中,就像整數和浮點數一樣。當我們輸入字串時,需要用單引號(’)標示字串的開始和結束。
>>> spam = 'hello'
>>> spam
'hello'
單引號不是字串的一部分,而是用來告訴Python這是一個字串。字串可以包含幾乎任何鍵盤字元,包括字母、數字和符號。
字串的連線與重複
可以使用 + 運算元將兩個字串連線成一個新的字串,這個過程稱為字串連線(string concatenation)。
>>> 'Hello' + 'World!'
'HelloWorld!'
>>> 'Hello ' + 'World!'
'Hello World!'
內容解密:
'Hello' + 'World!'將兩個字串直接連線,因為沒有空格,結果是'HelloWorld!'。- 在
'Hello '後面加上一個空格,然後與'World!'連線,結果就是'Hello World!'。 - Python 根據資料型別決定
+運算元的作用:對於字串是連線,對於整數是加法。
字串與整數的混合運算
嘗試將字串和整數一起使用 + 運算元會導致錯誤,因為Python不知道如何將整數隱式轉換為字串。
>>> 'Hello' + 42
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> 'Hello' + '42'
'Hello42'
內容解密:
'Hello' + 42導致錯誤,因為不能直接將整數42與字串'Hello'連線。'Hello' + '42'是合法的,因為兩個都是字串,結果是'Hello42'。- 這個錯誤告訴我們,在混合使用不同資料型別時需要注意相容性。
使用IDLE撰寫原始碼
IDLE是一個Python開發環境,可以用來編寫和執行Python程式。透過IDLE,我們可以儲存和執行我們的程式碼。
列印與輸入函式
print()函式用於在螢幕上顯示文字。input()函式允許使用者輸入文字。
>>> print('Hello World!')
Hello World!
>>> input('What is your name? ')
What is your name?
內容解密:
print('Hello World!')直接在螢幕上顯示'Hello World!'。input('What is your name? ')顯示提示訊息,並等待使用者輸入。- 這些函式是互動式程式設計的基本工具。
程式的註解
註解是用來解釋程式碼的文字,不會被Python執行。註解以 # 符號開始,直到該行結束。
# 這是一個註解
print('Hello') # 這也是註解
內容解密:
#符號後面的文字都是註解,用於解釋程式碼。- 註解幫助開發者理解程式碼的功能和邏輯。
- 良好的註解習慣使程式碼更易於維護。
在下一章中,我們將繼續探索更多的Python基礎知識,包括控制流程和函式,這些將使我們能夠編寫更複雜和強大的程式。透過不斷的練習和學習,我們將能夠建立出更具互動性和功能性的程式。
字串操作與程式撰寫基礎
字串複製:使用 * 運算元
在 Python 中,* 運算元不僅可以用於數字之間的乘法運算,也可以對字串和整數進行操作,實作字串的複製。這意味著你可以根據整數的值重複某個字串。舉例來說,在互動式命令列中輸入以下內容:
>>> 'Hello' * 3
'HelloHelloHello'
>>> spam = 'Abcdef'
>>> spam = spam * 3
>>> spam
'AbcdefAbcdefAbcdef'
>>> spam = spam * 2
>>> spam
'AbcdefAbcdefAbcdefAbcdefAbcdefAbcdef'
內容解密:
'Hello' * 3將字串'Hello'重複三次,得到'HelloHelloHello'。spam = 'Abcdef'將字串'Abcdef'指定給變數spam。spam = spam * 3將spam的值重複三次並重新指定給spam,得到'AbcdefAbcdefAbcdef'。spam = spam * 2將新的spam值再次重複兩次,得到最終結果'AbcdefAbcdefAbcdefAbcdefAbcdefAbcdef'。
這裡需要注意的是,* 運算元可以作用於整數和字串,但不能作用於兩個字串,否則會引發錯誤。
使用 print() 函式輸出值
Python 中的 print() 函式用於將值輸出到螢幕上。呼叫 print() 函式時,可以傳遞一個或多個引數給它。例如:
>>> print('Hello!')
Hello!
>>> print(42)
42
內容解密:
print('Hello!')將字串'Hello!'輸出到螢幕。print(42)將整數42輸出到螢幕。
你也可以傳遞一個運算式給 print() 函式,例如:
>>> spam = 'Al'
>>> print('Hello, ' + spam)
Hello, Al
內容解密:
'Hello, ' + spam首先計算運算式,將'Hello, '和spam的值(即'Al')連線起來,得到'Hello, Al'。print()函式輸出最終的字串結果。
跳脫字元
在某些情況下,你可能需要在字串中使用一些特殊的字元,例如單引號。為瞭解決這個問題,Python 提供了跳脫字元。跳脫字元由反斜線 \ 和另一個字元組成,例如 \t、\" 或 \'。例如:
>>> print('Al\'s cat is named Zophie.')
Al's cat is named Zophie.
內容解密:
- 在字串中使用單引號時,為避免與起始引號混淆,使用跳脫字元
\'表示單引號本身。 - 反斜線
\用於指示後面的字元具有特殊含義。
常見的跳脫字元包括:
\\:反斜線本身\':單引號\":雙引號\n:換行符號\t:水平定位符號(相當於按 Tab 鍵)
索引:取得字串中的單一字元
在 Python 中,可以使用索引來取得字串中的某個特定字元。索引是透過在字串後面加上方括號 [],並在括號內填入索引值來實作的。索引值從 0 開始,表示第一個字元。例如:
>>> spam = 'Hello'
>>> spam[0]
'H'
>>> spam[1]
'e'
內容解密:
spam[0]表示取得spam字串的第一個字元,即'H'。spam[1]表示取得第二個字元,即'e'。
這種索引機制使得我們能夠精確地控制和操作字串中的每個字元。
字串的參照與雙引號使用規範
在 Python 中,字串可以用單引號或雙引號表示。兩種方式在本質上是相同的,但在使用時需要注意匹配。例如:
>>> print('Hello world')
Hello world
>>> print("Hello world")
Hello world
但不能混合使用不同型別的引號:
>>> print('Hello world")
SyntaxError: EOL while scanning single-quoted string
內容解密:
- 在使用單引號或雙引號時,應保持起始和結束引號的一致性。
- 為了避免跳脫字元的使用,可以根據需要選擇合適的引號型別。例如,在單引號內可以直接使用雙引號,而無需轉義。
字串與程式編寫
在 Python 中,字串是一種基本且重要的資料型態。字串可以用來表示文字訊息,並且可以進行各種操作,如索引、切片等。
索引
索引是一種用來存取字串中特定字元的方法。在 Python 中,索引從 0 開始,也就是說第一個字元的索引是 0,第二個字元的索引是 1,以此類別推。
索引範例
>>> spam = 'Hello'
>>> spam[0]
'H'
>>> spam[1]
'e'
>>> spam[2]
'l'
負索引
負索引則是從字串的末尾開始計算,第一個字元的索引是 -1,第二個字元的索引是 -2,以此類別推。
>>> 'Hello'[-1]
'o'
>>> 'Hello'[-2]
'l'
>>> 'Hello'[-3]
'l'
索引錯誤
如果嘗試存取超出字串範圍的索引,Python 會丟擲 IndexError 例外。
>>> 'Hello'[10]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
切片
切片是一種用來取得字串中一部分的方法。切片使用兩個索引,中間以冒號隔開,表示要取得的字串範圍。
切片範例
>>> 'Howdy'[0:3]
'How'
>>> 'Hello world!'[0:5]
'Hello'
>>> 'Hello world!'[6:12]
'world!'
省略索引
如果省略第一個索引,Python 會預設為 0。如果省略第二個索引,Python 會預設為字串的末尾。
>>> 'Howdy'[:3]
'How'
>>> 'Howdy'[2:]
'wdy'
切片應用
切片可以用來取得字串中的特定部分,例如取得檔案副檔名。
>>> myName = 'Zophie the Fat Cat'
>>> myName[-7:]
'Fat Cat'
>>> myName[:10]
'Zophie the'
使用 IDLE 編寫程式
IDLE 是 Python 的整合開發環境(IDE),提供了互動式 Shell 和檔案編輯器。我們可以使用 IDLE 編寫和執行 Python 程式。
建立新檔案
在 IDLE 中,可以透過點選 File > New Window 建立新的檔案編輯器視窗。
輸入程式碼
在檔案編輯器視窗中,可以輸入 Python 程式碼。例如,以下是一個簡單的 Hello World 程式:
# This program says hello and asks for my name.
print('Hello world!')
print('What is your name?')
myName = input()
print('It is good to meet you, ' + myName)
儲存程式
輸入完程式碼後,可以透過點選 File > Save As 儲存程式。建議定期儲存程式,以避免程式碼遺失。
儲存範例
儲存檔案時,可以選擇適當的檔案名稱和位置。例如,將上述程式儲存為 hello.py。
執行程式
儲存程式後,可以透過點選 Run > Run Module 或按下 F5 鍵執行程式。程式將在互動式 Shell 中執行,並輸出結果。
使用Python撰寫第一個程式:Hello World
撰寫程式的第一步是瞭解如何執行簡單的指令,而「Hello World」是最經典的入門程式。本章將介紹如何使用Python建立並執行第一個程式,同時解析程式碼的工作原理。
執行你的程式
完成程式碼的撰寫後,點選「Run」選單中的「Run Module」或直接按下F5鍵來執行程式。程式將在IDLE的Shell視窗中執行。當程式要求輸入名字時,請依照指示輸入,如圖4-5所示。
圖4-5:執行「Hello World」程式時的互動式Shell畫面
輸入名字後按下Enter鍵,程式將會以名字稱呼使用者。恭喜你!你已經成功撰寫並執行了第一個程式,正式邁入程式設計的世界。
常見錯誤排除
如果執行時出現類別似以下的錯誤訊息:
Traceback (most recent call last):
File "C:/Python27/hello.py", line 4, in <module>
myName = input()
File "<string>", line 1, in <module>
NameError: name 'Albert' is not defined
這表示你正在使用Python 2而非Python 3。為避免此問題,請至http://python.org/getit下載並安裝Python 3。
開啟已儲存的程式
關閉檔案編輯器後,可以透過「File」選單中的「Open」來重新載入已儲存的程式。選擇hello.py並按下「Open」按鈕,程式將再次出現在檔案編輯器視窗中。
「Hello World」程式解析
每行程式碼都是一條指令,告訴Python該做什麼。程式就像食譜一樣,按照順序一步步執行。
註解(Comments)
# This program says hello and asks for my name.
此行是註解,用於提醒程式設計師程式的功能。註解以#符號開頭,電腦會忽略這些內容。
函式(Functions)
函式是程式中的小型子程式,用於執行特定任務。Python內建多個函式,例如print()函式用於在螢幕上顯示文字。
print('Hello world!')
print('What is your name?')
上述兩行呼叫了print()函式,分別顯示「Hello world!」和「What is your name?」。
input()函式
myName = input()
此行使用input()函式等待使用者輸入文字並按下Enter鍵。輸入的文字將儲存於變數myName中。
函式呼叫與回傳值
函式呼叫會回傳一個值。在myName = input()中,input()函式的回傳值(使用者輸入的文字)被賦予變數myName。
重點整理
- 註解:用於解釋程式碼,不被電腦執行。
- 函式:用於執行特定任務,例如
print()和input()。 - 函式呼叫:用於執行函式內的程式碼,並可回傳特定值。
藉由理解「Hello World」程式的工作原理,我們能夠更深入地掌握Python程式設計的基礎概念。接下來,我們將進一步探索更多Python的進階功能與應用。
Plantuml 圖表說明
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title Python資料型別變數與字串操作
package "Python 應用架構" {
package "應用層" {
component [主程式] as main
component [模組/套件] as modules
component [設定檔] as config
}
package "框架層" {
component [Web 框架] as web
component [ORM] as orm
component [非同步處理] as async
}
package "資料層" {
database [資料庫] as db
component [快取] as cache
component [檔案系統] as fs
}
}
main --> modules : 匯入模組
main --> config : 載入設定
modules --> web : HTTP 處理
web --> orm : 資料操作
orm --> db : 持久化
web --> cache : 快取查詢
web --> async : 背景任務
async --> fs : 檔案處理
note right of web
Flask / FastAPI / Django
end note
@enduml此圖示展示了「Hello World」程式的執行流程,從開始到結束的每一步驟都清晰地標示出來。