You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.9下DMS转DD函数未运行问题求助(Python新手)

DMS转DD函数的问题修复方案

你的代码存在几个明确问题导致无法正常运行,下面逐一说明并给出修正版本:

问题分析

  • 你定义了d_m_s转换函数,但从未调用它,输入值根本没进入转换逻辑
  • 使用split(',')拆分输入后,参数可能带有空格(比如用户输入12, 34, 56),直接转int会触发ValueError
  • 函数内部直接打印结果,无法将转换后的值用于后续计算,灵活性不足

修正后的代码

def dms_to_dd(d, m, s):
    # 先去除字符串两端空格再转数值,秒支持小数
    d_int = int(d.strip())
    m_int = int(m.strip())
    s_float = float(s.strip())
    dd = d_int + m_int / 60 + s_float / 3600
    return dd  # 返回结果而非直接打印

# 获取输入并拆分
user_input = input("Enter degrees, minutes, and seconds: ")
d, m, s = user_input.split(',')

# 调用函数并输出结果
decimal_degrees = dms_to_dd(d, m, s)
print(f"转换后的十进制度数: {decimal_degrees}")

额外优化建议

  • 若需处理负数坐标(西经、南纬),直接让用户输入负的度数即可,函数计算逻辑无需修改
  • 可添加输入验证,比如检查分、秒是否在合理范围(分≤59,秒≤59.999),避免无效输入报错

内容的提问来源于stack exchange,提问作者Sarukira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:01:00