Python的多重指定特性簡化了變數交換等操作,無需使用臨時變數。input() 函式能讀取使用者輸入,但需注意預設輸入型別為字串,必要時需轉換為數值型別。使用 format() 函式能有效格式化數字和字串輸出,提升程式碼可讀性。除了基本的浮點數格式化,format() 也支援科學記號、十六進位等格式,並可控制輸出寬度和對齊方式。Python 提供豐富的內建函式,例如數學函式 abs()、max()、min()、pow()、round(),以及 math 模組中的 ceil()、floor()、exp()、log()、sqrt() 等,方便進行數值計算。此外,ord() 和 chr() 函式能處理字元及其 ASCII 碼,例如計算大小寫字母 ASCII 碼的差異。
Python 程式設計基礎
多重指定
Python 支援同時對多個變數進行指定。多重指定的語法如下: Var1, Var2, Var3, … = Exp1, Exp2, Exp3, … ExpN
在上述語法中,Python 同時評估右邊的所有表示式,並將它們指定給左邊的相應變數。
考慮以下陳述式來交換兩個變數 P 和 Q 的值。一般的交換方法是:
P = 20
Q = 30
Temp = P # 將 P 的值儲存到 Temp
P = Q # 將 Q 的值賦給 P
Q = Temp # 將 Temp 的值賦給 Q
使用多重指定,可以簡化交換兩個數字的任務:
P, Q = Q, P # 交換 P 和 Q 的值
完整的程式碼如下:
P = 20 # P 和 Q 的初始值
Q = 30
print(P) # 輸出:20
print(Q) # 輸出:30
P, Q = Q, P # 交換 P 和 Q 的值
print(P) # 輸出:30
print(Q) # 輸出:20
內容解密:
P, Q = Q, P是多重指定的典型應用,Python 先評估右邊的表示式,然後同時指定給左邊的變數。- 這種寫法簡潔且高效,避免了使用臨時變數的麻煩。
- 多重指定在需要交換變數值或同時更新多個變數時非常有用。
編寫簡單的 Python 程式
要計算矩形的面積,可以按照以下步驟編寫 Python 程式:
步驟一:設計演算法
演算法描述瞭解決問題所需的步驟和順序。例如,計算矩形面積的演算法如下:
- 取得矩形的長度和寬度。
- 使用公式計算面積:
Area = Length * Breadth。 - 輸出矩形的面積。
步驟二:將演算法轉換為程式碼
# 程式 2.3:計算矩形面積
Length = 10
breadth = 20
print('Length =', Length, 'Breadth =', breadth)
area = Length * breadth
print('Area of Rectangle is =', area)
輸出結果:
Length = 10 Breadth = 20
Area of Rectangle is = 200
內容解密:
- 程式中初始化了兩個變數
Length和breadth。 - 使用
area = Length * breadth計算矩形面積。 print()函式用於輸出變數的值和計算結果。
使用 input() 函式讀取使用者輸入
input() 函式用於從使用者那裡接受輸入。語法如下:
Variable_Name = input()
或
Variable_Name = input('提示字串')
範例程式 2.4:讀取字串
Str1 = input('Enter String1: ')
Str2 = input('Enter String2: ')
print('String1 =', Str1)
print('String2 =', Str2)
輸出結果:
Enter String1: Hello
Enter String2: Welcome to Python Programming
String1 = Hello
String2 = Welcome to Python Programming
內容解密:
input()用於讀取使用者輸入的字串。- 輸入的值儲存在變數
Str1和Str2中。 - 使用
print()輸出這些變數的值。
程式 2.5:輸入數字
print('Please Enter the Number:')
X = input()
print('Entered Number is:', X)
print('Type of X is:')
print(type(X))
內容解密:
- 即讓使用者輸入數字,
input()傳回的也是字串型別。 - 可以使用
type()函式檢查變數的型別。 - 如果需要進行數值運算,需要將輸入的字串轉換為數字型別。
Python 程式設計基礎:使用者輸入處理
在 Python 程式設計中,處理使用者輸入是一項基本且重要的技能。Python 提供了多種方式來讀取和處理使用者輸入,包括 input() 和 eval() 函式。
使用 input() 函式讀取使用者輸入
input() 函式用於讀取使用者的輸入,預設情況下,它將所有輸入視為字串。
程式範例 2.6:示範 input() 和 int() 的使用
print('請輸入數字:')
Num1 = input() # 從使用者取得輸入
print('Num1 = ', Num1) # 列印 Num1 的值
print(type(Num1)) # 檢查 Num1 的型別
print('將 Num1 的型別轉換為 int')
Num1 = int(Num1) # 將 Num1 的型別從 str 轉換為 int
print(Num1) # 列印 Num1 的值
print(type(Num1)) # 檢查 Num1 的型別
內容解密:
input()函式讀取使用者的輸入,並將其儲存為字串。- 使用
int()函式將字串轉換為整數。 type()函式用於檢查變數的型別。
使用 int() 和 float() 轉換輸入型別
為了處理不同型別的輸入,可以在 input() 前使用 int() 或 float() 將輸入轉換為相應的型別。
程式範例 2.7:簡化版的整數輸入
Num1 = int(input('請輸入數字:'))
print('Num1 = ', Num1) # 列印 Num1 的值
print(type(Num1)) # 檢查 Num1 的型別
內容解密:
- 直接在
input()前使用int()將輸入轉換為整數。 - 省略了中間的型別轉換步驟,使程式碼更加簡潔。
使用 eval() 函式處理多種型別的輸入
eval() 函式可以評估一個字串作為 Python 表示式,並傳回相應的型別。
程式範例 2.10:使用 eval() 處理多種型別的輸入
Name = input('請輸入姓名:')
Age = eval(input('請輸入年齡:')) # eval() 自動判斷輸入型別
Gender = input('請輸入性別:')
Height = eval(input('請輸入身高:')) # eval() 自動判斷輸入型別
print('使用者詳細資訊如下:')
print('姓名:', Name)
print('年齡:', Age)
print('性別:', Gender)
print('身高:', Height)
內容解密:
eval()函式根據輸入自動判斷並轉換為適當的型別,如整數、浮點數等。- 使用者無需指定輸入的型別,增加了程式的彈性。
Python 程式設計基礎:數字與字串格式化
在 Python 程式設計中,格式化數字和字串是使輸出更具可讀性和專業性的重要技術。本章節將探討如何使用 format() 函式來格式化數字和字串,使其符合特定的輸出需求。
使用 format() 函式格式化輸出
format() 函式是 Python 中用於格式化字串和數字的強大工具。它的基本語法是 format(item, format-specifier),其中 item 是要格式化的物件,可以是數字或字串,而 format-specifier 則是一個字串,指定了如何格式化 item。
格式化浮點數
當需要格式化浮點數時,可以使用 width.precisionf 的格式。其中,width 指定了輸出的總寬度,precision 指定了小數點後的位數,而 f 則是浮點數的轉換碼。
# 格式化浮點數的範例
print(format(10.345, "10.2f")) # 輸出: 10.35
print(format(10, "10.2f")) # 輸出: 10.00
print(format(10.32245, "10.2f")) # 輸出: 10.32
對齊方式
預設情況下,數字是右對齊的。若要指定左對齊,可以在格式說明符中使用 < 符號。
# 對齊方式的範例
print(format(10.234566, "10.2f")) # 右對齊,輸出: 10.23
print(format(10.234566, "<10.2f")) # 左對齊,輸出:10.23
整數格式化
對於整數,可以使用 d 或 x 作為轉換碼,分別表示十進位制和十六進位制輸出。
# 整數格式化的範例
print(format(20, "10x")) # 十六進位制輸出,輸出: 14
print(format(20, "<10x")) # 左對齊十六進位制輸出,輸出:14
print(format(1234, "10d")) # 十進位制輸出,輸出: 1234
字串格式化
字串可以使用 s 作為轉換碼進行格式化。預設情況下,字串是左對齊的。
# 字串格式化的範例
print(format("Hello World!", "25s")) # 左對齊,輸出:Hello World!
print(format("HELLO WORLD!", ">20s")) # 右對齊,輸出: HELLO WORLD!
以百分比形式格式化
可以使用 % 作為轉換碼,將數字格式化為百分比形式。
# 百分比格式化的範例
print(format(0.31456, "10.2%")) # 輸出: 31.46%
print(format(3.1, "10.2%")) # 輸出: 310.00%
print(format(1.765, "10.2%")) # 輸出: 176.50%
程式範例:計算圓的面積並格式化輸出
下面是一個綜合範例,展示瞭如何計算圓的面積並使用 format() 函式格式化輸出結果。
# 計算圓的面積並格式化輸出的範例程式
radius = int(input('請輸入圓的半徑:'))
print('半徑 = ', radius)
PI = 3.1428
Area = PI * radius * radius
print('圓的面積是:', format(Area, '.2f'))
程式碼解密:
radius = int(input('請輸入圓的半徑:')):此行程式碼提示使用者輸入圓的半徑,並將輸入的值轉換為整數後儲存在radius變數中。PI = 3.1428:定義圓周率的值為 3.1428。Area = PI * radius * radius:計算圓的面積,使用公式 ( \pi r^2 )。print('圓的面積是:', format(Area, '.2f')):輸出圓的面積,並使用format()函式將面積格式化為小數點後兩位。
本章節介紹了 Python 中使用 format() 函式進行數字和字串格式化的方法,並提供了多個範例來說明不同的格式化選項和技巧。透過這些知識,您可以使程式的輸出更加美觀和專業。
Python 程式設計基礎:科學記號格式化與內建函式詳解
在 Python 程式設計中,格式化浮點數是一個常見的需求。除了使用 f 轉換碼來格式化浮點數外,我們還可以使用 e 轉換碼將浮點數格式化為科學記號。
科學記號格式化
科學記號是一種用來表示非常大或非常小的數字的方法。在 Python 中,我們可以使用 format() 函式並指定 e 轉換碼來將浮點數格式化為科學記號。例如:
print(format(31.2345, "10.2e"))
print(format(131.2345, "10.2e"))
輸出結果分別為 3.12e+01 和 1.31e+02。
內容解密:
format()函式用於格式化數字。"10.2e"是格式規範,指定輸出寬度為 10,小數點後保留 2 位,並使用科學記號表示。e轉換碼表示將數字格式化為科學記號。
常用的格式規範
下表列出了常用的格式規範:
| 規範 | 格式 |
|---|---|
10.2f | 將浮點數格式化為寬度 10,小數點後保留 2 位。 |
<10.2f | 將浮點數左對齊,寬度 10,小數點後保留 2 位。 |
>10.2f | 將浮點數右對齊,寬度 10,小數點後保留 2 位。 |
10X | 將整數格式化為十六進位制,寬度 10。 |
20s | 將字串格式化為寬度 20。 |
10.2% | 將數字格式化為百分比,寬度 10,小數點後保留 2 位。 |
Python 的內建函式
Python 提供了一系列內建函式,可以用於執行各種任務。以下是一些常用的內建函式:
數學相關函式
| 函式 | 描述 | 範例 |
|---|---|---|
abs(x) | 傳回 x 的絕對值。 | abs(-2) 傳回 2。 |
max(x1, x2, ..., xn) | 傳回 x1, x2, ..., xn 中的最大值。 | max(10, 20, 30) 傳回 30。 |
min(x1, x2, ..., xn) | 傳回 x1, x2, ..., xn 中的最小值。 | min(10, 20, 30) 傳回 10。 |
pow(x, y) | 傳回 x 的 y 次方。 | pow(2, 3) 傳回 8。 |
round(x) | 傳回最接近 x 的整數。 | round(10.34) 傳回 10,round(10.89) 傳回 11。 |
使用 math 模組的數學函式
要使用以下函式,需要先匯入 math 模組。
import math
| 函式 | 範例 | 描述 |
|---|---|---|
ceil(x) | math.ceil(10.23) 傳回 11。 | 將 x 無條件進位到最接近的整數。 |
floor(x) | math.floor(18.9) 傳回 18。 | 傳回不大於 x 的最大整數。 |
exp(x) | math.exp(1) 傳回 2.718281828459045。 | 傳回 e 的 x 次方。 |
log(x) | math.log(2.71828) 傳回接近 1 的值。 | 傳回 x 的自然對數(以 e 為底)。 |
log(x, base) | math.log(8, 2) 傳回 3.0。 | 傳回以指定底數的 x 的對數。 |
sqrt(x) | math.sqrt(9) 傳回 3.0。 | 傳回 x 的平方根。 |
直角三角形斜邊計算範例
以下是一個計算直角三角形斜邊的程式範例:
import math
base = int(input('輸入直角三角形的底邊長度:'))
height = int(input('輸入直角三角形的高:'))
print('三角形資訊如下:')
print('底邊 =', base)
print('高 =', height)
hypotenuse = math.sqrt(base * base + height * height)
print('斜邊 =', hypotenuse)
內容解密:
- 程式首先匯入了必要的
math模組,以便使用數學函式。 - 使用者被提示輸入直角三角形的底邊和高。
- 程式計算並顯示三角形的斜邊,使用公式 $\sqrt{base^2 + height^2}$。
ord 和 chr 函式
Python 中的內建函式還包括用於處理字元和其 ASCII 碼的函式,如下所示:
ord(ch):傳回字元的 ASCII 碼。chr(code):傳回對應於給定 ASCII 碼的字元。
例如:
print(ord('A')) # 輸出:65
print(chr(65)) # 輸出:'A'
程式範例:計算小寫字母和對應大寫字母的 ASCII 碼差異
char1 = 'b'
char2 = 'B'
print('字母\tASCII 值')
print(char1, '\t', ord(char1))
print(char2, '\t', ord(char2))
difference = ord(char1) - ord(char2)
print('ASCII 碼差異:', difference)
內容解密:
- 程式定義兩個字元變數,分別代表一個小寫字母和其對應的大寫字母。
- 使用
ord()函式取得這些字母的 ASCII 碼,並計算它們之間的差異。 - 最後,列印出結果,展示小寫字母和大寫字母 ASCII 碼之間的差異。
綜上所述,本章節介紹了 Python 中有關科學記號的格式化、內建數學函式的使用,以及如何利用這些功能進行實際的程式設計。同時,也探討瞭如何操作字元和其 ASCII 碼,以進一步豐富 Python 程式設計的能力。