Python基本語法元素之溫度轉換
僅憑個人理解自學的筆記
溫度轉換1.0
溫度的刻畫有兩個不同體系:攝氏度(Celsius)和華氏度(Fahrenheit)。
請編寫程序將用戶輸入華氏度轉換爲攝氏度,或將輸入的攝氏度轉換爲華氏度。
轉換算法如下:(C表示攝氏度、F表示華氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 輸入輸出的攝氏度可採用大小寫字母C結尾,溫度可以是整數或小數,如:12.34C指攝氏度12.34度;
(2) 輸入輸出的華氏度可採用大小寫字母F結尾,溫度可以是整數或小數,如:87.65F指華氏度87.65度;
(3) 輸出保留小數點後兩位,輸入格式錯誤時,輸出提示:輸入格式錯誤;
(4) 使用input()獲得測試用例輸入時,不要增加提示字符串。
代碼如下
TempStr = input()
if TempStr[-1] in ['F', 'f']:
C = (eval(TempStr[0:-1]) - 32)/1.8
print("{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:
F = 1.8*eval(TempStr[0:-1]) + 32
print("{:.2f}F".format(F))
else:
print("輸入格式錯誤")
-
input()
輸入函數,讓用戶從控制檯輸入
(似乎輸入默認爲字符串) -
TempStr[-1]
表示輸入字符串的最後一個字符
索引:返回字符串中單個字符 <字符串>[M] -
[‘ F ’,‘ f ’]列表類型
表示兩個元素 F 和 f
由0個或多個數據組成的有序列表,列表中的元素用 “,” 隔開 -
保留字 in
判斷一個元素是否在列表中
第二行整體表示 輸入的字符串的最後一項是否與列表中的兩個元素相同
即 實現判斷輸入的格式是否爲以大小寫字母F結尾的華氏溫度
-
TempStr[0:-1]
表示輸入字符串的第一個字符到倒數第二個字符爲止的一段字符子串
切片:返回字符串中一段字符字串 <字符串>[M:N] -
eval()
去掉參數最外側引號並執行餘下語句的函數
例如 eval(print(“Hello World”)) 輸出結果爲 Hello World
eval(TempStr[0:-1]) 多用於將輸入字符串轉換爲數字
第三行則表示將輸入字符串的除去最後一個字符的字符子串轉換爲數字進行運算,實現了華氏溫度轉換爲攝氏溫度的運算
-
print()
{:. 2f} 表示結果保留小數點後兩位 -
if elif else
均爲分支語句,分支語句後均需要帶 “ :”
溫度轉換2.0
要求如下:
(1) 輸入輸出的攝氏度採用大寫字母C開頭,溫度可以是整數或小數,如:C12.34指攝氏度12.34度;
(2) 輸入輸出的華氏度採用大寫字母F開頭,溫度可以是整數或小數,如:F87.65指華氏度87.65度;
(3) 不考慮異常輸入的問題,輸出保留小數點後兩位;
(4) 使用input()獲得測試用例輸入時,不要增加提示字符串。
代碼如下
TempStr = input()
if TempStr[0] in ['F']:
C = (eval(TempStr[1:]) - 32)/1.8
print("C{:.2f}".format(C))
elif TempStr[0] in ['C']:
F = 1.8*eval(TempStr[1:]) + 32
print("F{:.2f}".format(F))
else:
print()
這道屬於溫度轉換問題的衍生,題目要求有一些改動,所以看到題目後一定一定一定要看清楚要求。1.0已經大致瞭解了python的基本語法元素,根據2.0來寫一下溫度轉換的代碼分析。
代碼分析
第一行使用 input函數 從控制檯獲得輸入的信息,用戶輸入的信息比如“F82”將會保存在變量 TempStr 中,它是一個表達溫度的字符串類型的變量。
第二行 保留字if 表達的是一個分支語句,它會判斷後面的條件,即用戶輸入的字符串的第一個字符,用保留字in判斷第一個字符是不是大寫的F,即判斷第一個字符是否在F組成的列表之中。
若第二行成立則進行第三行第四行 對華氏溫度進行轉換成攝氏溫度,若第二行不成立則跳過第三四行直接執行第五行elif這條分支語句,來進一步判斷TempStr的第一位是否爲大寫的C,即用戶輸入的信息是不是攝氏度,如果成立,則執行第六七行攝氏溫度轉化成華氏溫度的運算,若elif分支語句不成立則跳過執行else分支語句。
第三行我們使用eval函數對TempStr除去第一位之外的其他位進行運算,比如用戶輸入“C82”,此處 TempStr[1:] 表示除去“C82”整個字符串第一位之外的剩餘字符子串即“82”。再用eval函數將字符串“82”轉換成數字類型82進行運算。
第四行輸出結果即可,第六行關於攝氏溫度轉換成華氏溫度的運算與第三行相同,不做解釋。