我想創建一個簡單的緯度/經度轉換器(從度/分/秒到十進制度),但我有一個問題,如何函數請求和處理用戶輸入,即關於緯度(N/S)或經度(E/W)的基本方向。我希望函數能夠接受N/S/E/W的用戶輸入並應用條件語句以確保轉換輸出爲正(N或E)或負(S或W)。如何定義一個函數,以在Python中輸入一個字符串3
我試圖讓用戶界面儘可能地方便用戶,這樣外行人不必輸入帶引號的字符串。
這是迄今爲止代碼:
def coord_convert (card,deg,mins,sec):
if card == 'S' or card == 's' or card == 'W' or card == 'w':
deg=-deg
mins=-mins
sec=-sec
mins_decimal = mins + (float(sec)/60)
deg_decimal = deg + (mins_decimal/60)
return deg_decimal
如果用戶調用函數coord_convert(W,30,30,0)
這將產生一個錯誤,而coord_convert('W',30,30,0)
返回正確-30.5
。有沒有什麼辦法可以使這個用戶友好,使card
輸入作爲字符串被正確讀入?
順便說一下,這個函數從Python 2.7轉換爲Python 3.6,所以任何其他錯誤或指針(特別是處理整數和浮點處理)將不勝感激。
除非W由他們將不得不周圍添加W.引號當你用字母W蟒用戶定義正在尋找一個名爲W¯¯變量的該值傳遞到您的功能。 TL; DR你將需要報價。 – Blakethepatton
任何有Python經驗的人都會使用引號來傳遞字符串輸入。按照你的建議,你會製造更多的混亂。 –
這是關於解釋來自用戶的輸入,對吧?行情不應該是必要的輸入。澄清: '''在sys.stdin中輸入行: print(line)''' 用戶輸入'W'和W作爲響應打印。而不是打印,你的邏輯將進入該循環的主體。 –