首页 > 解决方案 > 范围未正确定义

问题描述

当我输入to_float_hours(0,1,0)它时,它会返回一个值,但当我输入to_float_hours(0,0,1)它时,它不会。

此外,如果我键入to_float_hours(0,61,0)它会返回一个值,而当我键入to_float_hours(0,1,59)它时则不会。

为什么分钟的范围大于 1 而秒的范围在 0 到 58 之间?

我希望该函数仅在分钟和秒的输入都在 0 到 59 之间(包括 0 到 59 之间)时返回一个值。

def to_float_hours(hours, minutes, seconds):
    acceptable_range = list(range(0,59))
    while minutes and seconds in acceptable_range:
        hours = hours
        minutes = minutes/60
        seconds = seconds/3600
        total = hours+minutes+seconds
        return total

标签: pythonrange

解决方案


首先,您需要修复 While 中的逻辑(@painor 所说的)并通过添加一个来修复范围(因为我们从零开始)。

def to_float_hours(hours, minutes, seconds):
    acceptable_range = list(range(0,60))
    while minutes in acceptable_range and seconds in acceptable_range:
        hours = hours
        minutes = minutes/60
        seconds = seconds/3600
        total = hours+minutes+seconds
        return total

推荐阅读