2016-04-14 251 views
0

我已经创建了一个函数来要求用户输入输入一天中工作的小时数,整个事情返回正确的,除了如果输入一个不正确的值,它不会显示其错误信息如果输入的值小于零,则它会再次输入。Python 3嵌套While循环

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

这更像是一个比一个问题的肯定。 –

+0

好,然后澄清,我怎么得到错误消息“输入一个介于0和24之间的数字”来打印 – Gunnerlc

+0

@Gunnerlc *“整件事情回报正确”*您确定吗?代码中有很多语法错误。也许你发布了错误版本的代码? – jDo

回答

0

您可以添加:

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

如果号码低于0,并且请求一个新号码并显示该消息,则工作的欢呼声,但是如果该号码高于24,则它显示该消息并转到第二天。 – Gunnerlc

+0

不,它不。检查你的缩进。此外,您可以自定义错误以不使用IndexError – kameranis