Python實(shí)現(xiàn)簡單的單位轉(zhuǎn)換器(英里轉(zhuǎn)公里)
1. 導(dǎo)入模塊
代碼中沒有導(dǎo)入任何模塊,只使用了Python內(nèi)置函數(shù)。
2. 轉(zhuǎn)換函數(shù)
這兩個函數(shù)分別實(shí)現(xiàn)了英里到公里和公里到英里的轉(zhuǎn)換。轉(zhuǎn)換系數(shù)為1英里等于1.60934公里。
3. 主函數(shù) main()
主函數(shù)實(shí)現(xiàn)了與用戶的交互邏輯。
3.1 打印歡迎信息
print("單位轉(zhuǎn)換器 (英里/公里)")
print("=" * 30)
3.2 主循環(huán)
使用while True循環(huán)持續(xù)接收用戶輸入,直到用戶通過鍵盤中斷(Ctrl+C)退出。
3.2.1 獲取用戶輸入
value = float(input("\n請輸入數(shù)值: "))
unit = input("輸入單位 (英里/公里): ").lower()
- 第一行:嘗試將用戶輸入的字符串轉(zhuǎn)換成浮點(diǎn)數(shù)。
- 第二行:獲取單位字符串,并轉(zhuǎn)換為小寫以便統(tǒng)一比較。
3.2.2 執(zhí)行轉(zhuǎn)換
if unit in ["英里", "mi", "m"]:
result = miles_to_km(value)
print(f"{value} 英里 = {result:.2f} 公里")
elif unit in ["公里", "km", "k"]:
result = km_to_miles(value)
print(f"{value} 公里 = {result:.2f} 英里")
else:
print("錯誤:請使用'英里'或'公里'作為單位")
- 如果單位是英里(支持“英里”、“mi”或“m”),則調(diào)用miles_to_km函數(shù)進(jìn)行轉(zhuǎn)換,并打印結(jié)果(保留兩位小數(shù))。
- 如果單位是公里(支持“公里”、“km”或“k”),則調(diào)用km_to_miles函數(shù)進(jìn)行轉(zhuǎn)換,并打印結(jié)果。
- 如果單位不在支持列表中,則提示錯誤。
3.2.3 異常處理
except ValueError:
print("錯誤:請輸入有效的數(shù)字")
except KeyboardInterrupt:
print("\n\n程序已退出")
break
- ValueError:當(dāng)用戶輸入無法轉(zhuǎn)換成浮點(diǎn)數(shù)時觸發(fā),提示輸入有效數(shù)字。
- KeyboardInterrupt:當(dāng)用戶按下Ctrl+C時觸發(fā),打印退出信息并跳出循環(huán)(退出程序)。
4. 程序入口
if __name__ == "__main__":
main()
確保當(dāng)該腳本作為主程序運(yùn)行時才執(zhí)行main()函數(shù)。
5.完整代碼
def miles_to_km(miles):
"""英里轉(zhuǎn)公里"""
return miles * 1.60934
def km_to_miles(km):
"""公里轉(zhuǎn)英里"""
return km / 1.60934
def main():
print("單位轉(zhuǎn)換器 (英里/公里)")
print("=" * 30)
while True:
try:
# 獲取用戶輸入
value = float(input("\n請輸入數(shù)值: "))
unit = input("輸入單位 (英里/公里): ").lower()
# 執(zhí)行轉(zhuǎn)換
if unit in ["英里", "mi", "m"]:
result = miles_to_km(value)
print(f"{value} 英里 = {result:.2f} 公里")
elif unit in ["公里", "km", "k"]:
result = km_to_miles(value)
print(f"{value} 公里 = {result:.2f} 英里")
else:
print("錯誤:請使用'英里'或'公里'作為單位")
except ValueError:
print("錯誤:請輸入有效的數(shù)字")
except KeyboardInterrupt:
print("\n\n程序已退出")
break
if __name__ == "__main__":
main()
在運(yùn)行過程中,發(fā)現(xiàn)它不能關(guān)閉,會一直循環(huán),所以針對這些問題,我做出了修改。
6.修改
def miles_to_km(miles):
# 英里轉(zhuǎn)公里
return miles * 1.60934
def km_to_miles(km):
# 公里轉(zhuǎn)英里
return km / 1.60934
def main():
print("單位轉(zhuǎn)換器(英里/公里)")
print("=" * 30)
while True:
try:
# 獲取用戶輸入
value_str = input("\n請輸入數(shù)值(或者'退出'結(jié)束程序): ")
if value_str.lower() == "退出":
print("程序已退出")
break
value = float(value_str)
unit = input("請輸入單位(公里/英里): ").lower()
# 執(zhí)行轉(zhuǎn)換
if unit in ["英里", "mi", "m"]:
result = miles_to_km(value)
print(f"{value} 英里 = {result:.2f} 公里")
elif unit in ["公里", "km", "k"]:
result = km_to_miles(value)
print(f"{value} 公里 = {result:.2f} 英里")
else:
print("錯誤:請使用'英里'或'公里'作為單位")
except ValueError:
print("錯誤:請輸入有效的數(shù)字")
except KeyboardInterrupt:
print("\n\n程序已退出")
break
if __name__ == "__main__":
main()到此這篇關(guān)于Python實(shí)現(xiàn)簡單的單位轉(zhuǎn)換器(英里轉(zhuǎn)公里)的文章就介紹到這了,更多相關(guān)Python單位轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python處理multipart/form-data的請求方法
今天小編就為大家分享一篇python處理multipart/form-data的請求方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
tensorflow 模型權(quán)重導(dǎo)出實(shí)例
今天小編就為大家分享一篇tensorflow 模型權(quán)重導(dǎo)出實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Python中pow()和math.pow()函數(shù)用法示例
這篇文章主要介紹了Python中pow()和math.pow()函數(shù)用法,結(jié)合具體實(shí)例形式分析了Python使用pow()和math.pow()函數(shù)進(jìn)行冪運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
詳解Python模塊化--模塊(Modules)和包(Packages)
這篇文章主要介紹了使用Python的模塊(Modules)和包(Packages),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
pycharm 如何取消連按兩下shift出現(xiàn)的全局搜索
這篇文章主要介紹了pycharm 如何取消連按兩下shift出現(xiàn)的全局搜索?下面小編就為大家介紹一下解決方法,還等什么?一起跟隨小編過來看看吧2021-01-01
Pycharm連接遠(yuǎn)端Python環(huán)境操作Spark過程
遠(yuǎn)程連接方案通過SSH配置PyCharm連接CentOS服務(wù)器,統(tǒng)一環(huán)境避免差異,自動同步代碼至遠(yuǎn)程工作目錄,并映射pyspark等工具包,提升開發(fā)效率與一致性2025-07-07

