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

函数定义后如何调用?求船只每日航行公里数计算程序优化建议

问题分析与优化方案

我来帮你把代码里的问题捋清楚,然后给出可行的解决方案:

原代码里的核心问题

  • 函数依赖全局变量:journey()直接使用外部的speed变量,这样函数的复用性极低,换个速度值还要修改全局变量,不符合函数封装的原则。
  • 返回值错误:函数最后返回的是journey(也就是函数本身),而不是你计算好的journey_calc,等于白做了计算。
  • 函数调用错误:打印的时候写的是journey,没有加括号(),这不会触发函数执行,只会打印函数的对象信息,不是你要的公里数。

优化后的代码

def journey(speed):
    # 计算每日航行公里数:速度(节)*1852米/节 /1000转公里 *24小时
    daily_km = speed * 1852 / 1000 * 24
    daily_km_rounded = round(daily_km)
    return daily_km_rounded

# 调用函数时传入速度参数
speed = 5
result = journey(speed)
print(f"Ship passes: {result} kilometers in one day")

额外优化建议

  • 使用f-string来格式化字符串,比str()拼接更简洁易读。
  • 给变量起更有意义的名字,比如daily_km代替journey_calc,代码可读性更强。
  • 如果需要多次计算不同速度的航行距离,直接调用journey(6)、journey(10)就可以,不用修改函数内部,非常灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:25:06