昨日練習詳解:
習題回顧:溫度刻畫共有兩個不同的體系:攝氏度(C)和華氏度(F)。請編寫程序將用戶輸入的華氏度轉化為攝氏度或者將輸入的攝氏度轉化為華氏度。轉化算法如下:
C = (F-32) / 1.8,F = C*1.8 + 32。
具體要求如下:
(1)輸入輸出的攝氏度採用大寫字母C開頭,溫度可以是整數或小數,如:C12.34指的是攝氏度12.34度;
(2)輸入輸出的華氏度採用大寫字母F開頭,溫度可以是整數或小數,如:F87.65表示的是華氏度87.65度;
(3)不考慮異常輸入的問題,輸出保留小數點後兩位;
(4)使用input獲得測試用例輸入。
示例:輸入:C12.34 輸出:F54.21;輸入:F87.65 輸出:C30.92
首先我們嘗試著能不能用自己的語言來寫出這段代碼:
用戶從控制臺輸入一個溫度(華氏度或者攝氏度,華氏度用F開頭,攝氏度用C開頭),輸入的可以是小數或者整數。Python讀取我們輸入的數據,當讀到第一個字符為F時,就意味著我們需要將華氏度轉化為攝氏度,這時候我們採用算法:C = (F-32)/1.8;當讀到第一個字符為C的時候,就意味著我們需要將攝氏度轉化為華氏度,這時候我們採用算法:F = C*1.8+32。需要注意的是輸出保留小數點後兩位。現在,讓我們嘗試著看看能夠使用什麼語句來寫這些代碼吧:
我們要從控制臺輸入一個溫度的值:所以這邊我們採用python中的input( )方法,使用戶能夠從控制臺輸入。python讀取字符可以採用我們剛剛學習的if條件測試語句,如果讀到F就怎麼樣,讀到C就怎麼樣。進行格式控制,我們可以使用format進行格式化輸出。讓我們嘗試著看看能不能用代碼寫出來吧:

因為我們知道計算的時候,不可能將字母也帶進公式中進行計算,所以我們將temp進行切片處理,除了首字母以外的都是數值,所以我們只需要提取其中的數值即可。elif語句也是表示的條件測試,功能同if類似。eval( )方法是自動判別數字是整數還是小數,而format( )方法是控制格式輸出的,前面的{:.2f}表示的就是以兩位小數的形式輸出。讓我們來看看我們的代碼能不能運行吧:

我們輸入一個攝氏溫度,從而能夠正確的轉化為華氏溫度。
本節練習:其實我們的代碼中,還存在著缺陷,如果遇到了首字母輸入既不是C也不是F時,那麼python會怎麼樣呢?大家可以想想,請試著解決這個問題吧!下一章我們將會講解這個問題。