python - 范围未正确定义
问题描述
当我输入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
解决方案
首先,您需要修复 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
推荐阅读
- sql - 如何修复从错误的给定 ID 检索 SQL
- android - flutter:用户从启动的url返回后如何执行任务
- wordpress - 将网站上传到实时服务器后,Wordpress 网站导航栏消失
- android - 在我的应用程序的清单分析中可以看到以下问题。如何解决?
- php - php中不同数据类型和运算符的数组
- sql - 按最大日期和时间获取值
- r - 如何自动化测试 R Shiny 应用程序以实现持续交付?
- java - 为什么没有调用 BeanPostProcessor 的 postProcessAfterInitialization 方法?
- java - 从另一个列表中对整数的子列表进行排序而不影响主列表
- java - Eclipse Wild Web Developer 通用编辑器:如何在团队内共享语言服务器 XML 格式设置?