删除短输入函数中的多余行
Remove redundant lines in short input function
我正在尝试为 24 小时时钟清理输入,下面的代码是我想出的。重复了几行,我想了解是否有更好的模式来避免它。
def inputHour():
startHour = input("Starting time (hour): ")
while not startHour.isdigit():
startHour = input("Please enter numbers only (0 - 23): ")
while 0 < int(startHour) > 23:
startHour = input("Invalid hour. Please enter value from 0 to 23: ")
while not startHour.isdigit():
startHour = input("Please enter numbers only (0 - 23): ")
return startHour
总共有2个选项;它要么 不是数字 要么 不在所需范围内 作为整数。所以,也许你可以按如下方式合并它们:
def inputHour():
startHour = input("Starting time (hour): ")
while not startHour.isdigit() or 0 < int(startHour) > 23:
startHour = input("Invalid input. Please enter numbers only (0 - 23): ")
return startHour
您可以使用仅在您的输入在给定范围内时才会中断的 while 循环:
def inputHour():
while True:
startHour = input("Starting time (hour, numbers only): ")
if startHour.isdigit() and (0 <= int(startHour) <= 23):
break
return startHour
我正在尝试为 24 小时时钟清理输入,下面的代码是我想出的。重复了几行,我想了解是否有更好的模式来避免它。
def inputHour():
startHour = input("Starting time (hour): ")
while not startHour.isdigit():
startHour = input("Please enter numbers only (0 - 23): ")
while 0 < int(startHour) > 23:
startHour = input("Invalid hour. Please enter value from 0 to 23: ")
while not startHour.isdigit():
startHour = input("Please enter numbers only (0 - 23): ")
return startHour
总共有2个选项;它要么 不是数字 要么 不在所需范围内 作为整数。所以,也许你可以按如下方式合并它们:
def inputHour():
startHour = input("Starting time (hour): ")
while not startHour.isdigit() or 0 < int(startHour) > 23:
startHour = input("Invalid input. Please enter numbers only (0 - 23): ")
return startHour
您可以使用仅在您的输入在给定范围内时才会中断的 while 循环:
def inputHour():
while True:
startHour = input("Starting time (hour, numbers only): ")
if startHour.isdigit() and (0 <= int(startHour) <= 23):
break
return startHour