【问题标题】:How to protect my code from "Index out of range" errors如何保护我的代码免受“索引超出范围”错误的影响
【发布时间】:2018-09-05 13:00:33
【问题描述】:

我一直在尝试构建一个简单的日历作为我空闲时间的编码练习。但是,我似乎无法解决这个问题:

如何返回列表中的第 0 项?我的想法是,只要 dayoftheweek 长于列表的长度,它就会返回到 days[0],但我似乎无法让它工作。

days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
dayoftheweek = days[0]

userchoice = int(input("Please add a number to days: "))
dayoftheweek = days[userchoice]

如果用户输入8,我得到一个Index out of range 错误。

如何捕获超出days 范围并默认为0 的输入?

【问题讨论】:

  • 你能再清楚一点吗?您认为days[+userchoice] 做了什么(以及您希望它做什么)?它所做的只是给你价值days[userchoice]——没有“计数器”可以跟踪并添加到一些当前值,除非你做到了。

标签: python arraylist


【解决方案1】:

你可以使用模数:

dayoftheweek = days[userchoice % len(days)]

【讨论】:

  • 也许days[userchoice % len(days)] ?
  • 是的,但是知道一周中的天数不太可能发生变化,这是我认为可以进行硬编码的情况之一。但是话又说回来,我更新了我的答案,因为它确实可以提供更好的代码。
猜你喜欢
  • 2018-07-24
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-15
相关资源
最近更新 更多