【问题标题】:Python 3 nested While loopPython 3 嵌套的 While 循环
【发布时间】:2016-04-14 12:06:53
【问题描述】:

我创建了一个函数来要求用户输入一天的工作小时数,整个事情都会返回,除了如果输入的值不正确,如果输入的值是,它不会显示错误消息小于 0 大于 24 它只是再次要求输入。

def hours_for_days(week_no,day):
  i = -1
  input_string = "Enter number of hours for week " + str(week_no) + " " + day + ": "
  while i <0
    work_time = rawinput(input_string)
    try:
      i = int(work_time)
    except ValueError:
      print("Enter a number: ")
    else:
      while 24 < i
        work_time = rawinput(input_string)
      try:
        i = int(work_time)
      except ValueError:
        print("Enter a number: ")
      else:
        if i < 0
          print("Enter a number between 0 and 24")
        if i > 24
          print("Enter a number between 0 and 24")

【问题讨论】:

  • 这更像是一个肯定而不是一个问题。
  • 好吧,澄清一下,我如何得到错误消息“输入 0 到 24 之间的数字”来打印
  • @Gunnerlc "一切正常"你确定吗?代码中有很多语法错误。也许您发布了错误的代码版本?

标签: python-3.x while-loop


【解决方案1】:

您可以添加:

while 1:   
    work_time = rawinput(input_string)
    try:
        i = int(work_time)
        if not (0 <= i <= 24):
            raise(IndexError)
        break
    except ValueError:
        print("Enter a number: ")
    except IndexError:
        print("Number must be between 0 and 24")

【讨论】:

  • 如果号码低于 0 并且请求一个新号码并显示消息,那么欢呼,但如果号码高于 24,那么它会显示消息并移至第二天。跨度>
  • 不,它没有。检查你的缩进。此外,您可以制作自定义错误以不使用 IndexError
猜你喜欢
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2018-05-06
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 2015-04-16
相关资源
最近更新 更多