iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Python

從0開始學習Python-為未來學習AI奠定基礎系列 第 6

從0開始學習Python---format( )函數、input( )函數、eval( )函數

  • 分享至 

  • xImage
  •  

format( )函數

format( )函數的核心概念是以 { } 來作為佔位符,代表即將插入的變數位置。與傳統的 % 格式化不同,使用format( ) 可以針對不同類型的變數進行更精細的控制。

Python 中的佔位符

佔位符是一種預留空間的符號,可以在程式運行時決定輸出的內容,等到實際運行時才用變數來替換它。
在需要動態插入變數時非常有用,尤其是在處理大量數據、生成動態報表、或是根據使用者輸入來決定顯示的內容時。

  • 傳統的 % 佔位符格式:
    這是 Python 中舊式的格式化方式,使用 % 後接一個格式化字符來表示變數類型,並在字串中插入變數。(昨天文章的重點)
  • format( ) 函數佔位符:
    這是 Python 的新式格式化方式,使用 { } 作為佔位符,可以通過 format( ) 函數將變數插入到 { } 的位置。

format( )的使用

上述提到format( ) 函數可以很容易的插入變數,並在輸出時自動替換 { } 的佔位符。這讓程式碼更加易讀和維護,因為變數的位置和含義在一開始就明確了。使用格式如下:

print(“ ··· 輸出格式區 ··· ” .format(變數系列區,  ··· ))
  • 將上篇使用過的例子以format( ) 函數做改良:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994AUtb2CttBo.png

  • 以字串代表輸出格式區:

https://ithelp.ithome.com.tw/upload/images/20240906/201689943lqObnhkYj.png

  • 如果有多個變數,可以給在 { } 中加上數字順序編號(從0開始)來明確其位置。除了有助於理解,還能有效避免變數順序混淆:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994oblGuRZ5yu.png

  • 可以在 format( ) 內使用具名的參數:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994rSZ6kJtt8k.png

格式化輸出

  • 就像我們在傳統格式化中使用 % 來配合不同的格式字元一樣,在 format( ) 函數中,我們使用特定的符號來指定資料的格式。例如,d 表示格式化整數,f 用來格式化浮點數,而 s 則是格式化字串等。這些符號可以被應用在 format( ) 的佔位符 { } 中,從而靈活地插入不同類型的資料。
    以計算圓面積為例:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994JTSdPD54Ip.png

  • 使用 format( ) 函數時,若需要對齊數字或字串輸出,有兩種常用的方法:
  1. 靠左、靠右、置中的對齊方式都能輕鬆控制:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994N6LBbhkYrk.png

  1. 指定填充字元來填補空格,例如用星號等來替換空白區域(要放在 : 後面,在 <、>、^ 或指定格數前):

https://ithelp.ithome.com.tw/upload/images/20240906/20168994VL5qkfFLCX.png

使用 input( ) 進行資料輸入

在 Python 中,input( ) 是一個用來從使用者那裡獲取資料的函數。這個功能相較於 print( ) 更加動態,因為它能讓使用者在程式執行過程中直接進行輸入,這讓程式擁有了更高的互動性。
input( ) 的使用格式如下:

value = input(“prompt: ”)

需要特別注意的是,input( ) 函數無論接收到的是文字還是數字,都會將它視為字串來處理。因此當我們希望對輸入的數字進行運算時,必須將這些資料轉換為數值型態,可以使用 int( ) 或 float( ) 函數。以下用簡單例子來看看 input( ) 輸入的資料類型:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994fs0keUsKcn.png

結合字串操作的應用

除了單純的資料輸入,input( ) 還可以與字串操作結合起來,讓使用者輸入的資料更加實用。

  • 假設要求使用者分別輸入姓氏(last name)和名字(fist name),可以使用下列字串連接方式:
    中文名字:fullName = lastName + firstName
    英文名字:fullName = firstName + " " + lastName

  • 接下來做出一支程式能將使用者名字組在一起,並輸出問候語:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994bZuxSE5zOU.png

輸出結果:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994xb00fCZdAd.png

使用 eval() 處理字串的數學運算

在前面我們提到,透過 input( ) 函數接收的資料形式都是字串,因此若要進行數值計算時,通常我們會使用 int( ) 將接收到的字串轉換為整數。
除了使用 int( ),我們還可以利用 eval( ) 函數來處理更複雜的運算,它能直接計算字串形式的數學表達式,並直接回傳其結果,而不用再自己解析這些表達式。
eval( )的使用格式如下:

result = eval(expression)               #expression是字串

實際應用

當我們將 eval( ) 與 input( ) 結合時,可以更方便的將使用者輸入的內容轉換為數值,並直接取得計算結果。接下來做一些練習~

  • 設計一個能在輸入數值公式後,列出計算結果的程式:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994ahzVqLbx9J.png

輸出結果:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994xFMvNCBRK7.png

  • 以下例子是讓使用者輸入成績,並且使用 eval( ) 直接計算總成績:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994lbYDjBoaMK.png

最後輸出的結果確實為art、math兩變數內容轉為整數後相加的結果:

https://ithelp.ithome.com.tw/upload/images/20240906/20168994RKuwiWhXTU.png

結語

在 Python 中,format( )、input( ) 和 eval( ) 都是非常實用的輸出工具,它們各自解決了格式化輸出、使用者輸入與動態運算的需求。尤其我覺得 eval() 是最神奇的,竟然可以直接把字串型態轉成數值型態,然後直接丟答案出來,超級方便!
今天就結束了關於基本資料輸出的文章,明天開始就會進入 if 敘述了!感覺跟前面學過的東西性質很不同,要開始訓練邏輯思考了><


上一篇
從0開始學習Python---print() 函數的使用與格式化輸出
下一篇
從0開始學習Python---關係運算子、if 條件判斷
系列文
從0開始學習Python-為未來學習AI奠定基礎27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言