Python自定义函数求助:如何实现mph_and_minutes_to_miles函数
问题与解决方案
固定代码(不可修改)
以下代码无法修改,需要实现其中的mph_and_minutes_to_miles自定义函数:
miles_per_hour = float(input()) minutes_traveled = float(input()) print(f'Miles: {mph_and_minutes_to_miles(miles_per_hour, minutes_traveled):f}')
错误尝试的代码
尝试的代码无法正常运行:
def calculate_hours_traveled(minutes_traveled): hours_traveled = minutes_traveled / 60.0 return hours_traveled def calculate_miles_traveled(miles_per_hour, hours_traveled): miles_traveled = hours_traveled * miles_per_hour return miles_traveled mph_and_minutes_to_miles = miles_traveled return mph_and_minutes_to_miles
问题出在最后两行:miles_traveled是calculate_miles_traveled函数内部的局部变量,外部无法直接访问;且没有将mph_and_minutes_to_miles定义为接收两个参数的函数,不符合固定代码的调用要求。
正确实现方法
方法一:合并逻辑到目标函数
直接在mph_and_minutes_to_miles函数内完成分钟转小时、计算英里数的逻辑:
def mph_and_minutes_to_miles(miles_per_hour, minutes_traveled): # 将分钟转换为小时 hours = minutes_traveled / 60.0 # 计算行驶英里数:时速 × 小时数 return miles_per_hour * hours
方法二:复用辅助函数
如果想保留之前的两个辅助函数,需要在目标函数内调用它们:
def calculate_hours_traveled(minutes_traveled): return minutes_traveled / 60.0 def calculate_miles_traveled(miles_per_hour, hours_traveled): return miles_per_hour * hours_traveled def mph_and_minutes_to_miles(miles_per_hour, minutes_traveled): hours = calculate_hours_traveled(minutes_traveled) return calculate_miles_traveled(miles_per_hour, hours)
验证结果
输入70.0(mph)和100.0(行驶分钟数),两种方法都会输出:
Miles: 116.666667
符合预期结果。
内容的提问来源于stack exchange,提问作者Thai Le
相关产品推荐
相关产品推荐

