Я пытаюсь создать простой преобразователь широты/долготы (от градусов/минут/секунд до десятичных градусов), но у меня возникает проблема с тем, как функция запрашивает и обрабатывает пользовательский ввод, а именно в отношении кардинального направления широты (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, поэтому были оценены любые другие ошибки или указатели (особенно с целым числом и обработкой float).
Если W не определяется пользователем, они собираются, чтобы добавить кавычки вокруг W. Если вы используете букву W питона ищет переменную с именем W, чтобы передать значение, что в ваше функция. TL; DR вам понадобятся котировки. – Blakethepatton
Любой, кто имеет опыт работы с Python, будет использовать кавычки для передачи строкового ввода. Вы создадите гораздо больше путаницы, делая это так, как вы предлагали. –
Речь идет об интерпретации ввода от пользователя, правильно? Котировки вообще не нужны для ввода. Для уточнения: '' 'для строки в sys.stdin: print (строка)' '' Пользователь вводит «W» и «W» в ответ. Вместо того, чтобы печатать, ваша логика будет проходить в теле этого цикла. –