大多數的程式製作出來的目的就是為了解決終端使用者的問題,
要達到這個目的,通常需要從使用者那裡取得一些資訊。
本篇將學習如何接收使用者的輸入,讓程式能進行其它處理。
若在程式中需要名字時,就提示輸入名字,若需要一份名單時,就提示輸入一系列名字。
這些輸入的運用都要透過 input() 函式來達成。
input() 函式的工作原理
input() 函式會讓程式暫停,等待使用者輸入一些文字。Python 在取得使用者輸入的文字後,會把這些文字存放到一個變數內以方便運用:
1 | message = input("Tell me something, and I will repeat it back to you: ") |
input() 函式中可放入一個引數,此引數為向使用者顯示的文字說明,讓使用者知道要做什麼:
1 | Tell me something, and I will repeat it back to you: Hello everyone! |
編寫清楚的提示
每次在使用 input() 函式時,最好都提供清楚易懂的提示,精確告知使用者您希望他們輸入什麼資訊:
1 | name = input("Please enter your name: ") |
可將提示文字和使用者要輸入的內容分隔開,讓使用者清楚知道其輸入的內容是從哪裡開始:
1 | Please enter your name: Eric |
有時提示的文字可能會超過一行,這些很長的文字可以存放在一個變數內,再把此變數當成 input()的引數:
1 | prompt = "If you tell us who you are, we can personalize the messages you see." |
第一行程式把訊息文字前半部存放在 prompt 變數內,而第二行程式則用 += 運算子在 prompt 變數後新連接上其它字串,
並在問號後多加一格空白,讓提示與輸入清楚分隔開來:
1 | If you tell us who you are, we can personalize the messages you see. |
使用 int() 來取得數值的輸入
使用 input()函式時 Python 會從使用者所取得的輸入是「字串」:
1 | >>> age = input("How old are you? ") |
使用者輸入的是數值21,但 Python 把存放在 age 變數中的值取出時,返回的是 ‘21’,因為輸入的數值是以字串型別來存放。
若想要把輸入的內容當成數字來運算,就會引發錯誤:
1 | >>> age = input("How old are you? ") |
Python會顯示錯誤訊息,因為它不能用字串來和整數進行比較,
要使用 int()函式來解決這個問題,告訴 Python 把字串轉換成數值:
1 | >>> age = input("How old are you? ") |
在實際的程式使用 int() 函式要如何做呢?
用一個判別某個人是否能坐雲霄飛車的身高要求:
1 | height = input("How tall are you, in inches? ") |
這支程式可以讓 height 和 36 進行比較運算,如果輸入的數字大於36,會告知使用者身高多高,可以坐雲霄飛車:
1 | How tall are you, in inches? 71 |
輸入的數字要用來進行數學運算和比較運算之前,記得先要轉換成數值型別。
模數運算子
模數運算子( % )是處理數值資訊的好用工具,它會把兩個數字相除並返回餘數:
1 | >>> 4 % 3 |
模數運算子不會算出某個數是另一個數的幾倍,它只會求出餘數是多少。
如果某個數能被另一個數整除,則餘數為 0,因此模數運算子會返回 0。
我們可以利用這一點來判別某個數是奇數或偶數:
1 | number = input("Enter a number, and I'll tell you if it's even or odd: ") |
偶數能被 2 整除,因此如果某數字和 2 進行模數運算的結果為 0,那麼這個數字就是偶數,若不是則為奇數:
1 | Enter a number, and I'll tell you if it's even or odd: 42 |