単純な緯度/経度変換器(度/分/秒から十進数まで)を作成しようとしていますが、ユーザ入力、すなわち緯度(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)
が正しい-30.5
を返しながら、これは、エラーを生成する関数coord_convert(W,30,30,0)
を呼び出す場合。 card
入力が文字列として正しく読み込まれるように、これをユーザーフレンドリーにする方法はありますか?
ところで、この関数はPython 2.7からPython 3.6に変換されているので、他のエラーやポインタ(特に整数や浮動小数点演算を扱う)に感謝します。
Wは、彼らはあなたがパイソンWの文字を使用している場合はW.前後に引用符を追加する必要があるとしているユーザーによって定義されていない場合には、Wがあなたにその値を渡すという名前の変数を探しています関数。 TL; DRには引用符が必要です。 – Blakethepatton
Pythonで何か経験がある人は、引用符を使って文字列入力を渡します。あなたはそれをあなたが提案したようにしてずっと混乱させるでしょう。 –
これはユーザーからの入力を解釈することです。引用には入力する必要はありません。 '' 'for sys.stdin: print(line)' '' ユーザータイプ 'W'とWが応答として出力されます。印刷する代わりに、あなたのロジックはそのループの本体に入ります。 –