我在这里寻找一个想法,以循环用户的无效输入,我还没有找到一个。
好的,我知道如何将first_number和second_number循环在一起,但如果需要的话,我对如何单独循环有点困惑。因此,如果用户输入了错误的second_number并再次循环而不是整个事件。
我附上了我需要帮助的部分(是的,这是一项学校作业):
#selectable .ui-selecting { background: #FECA40; }
#selectable .ui-selected { background: #F39814; color: white; }
.ui-draggable, .ui-droppable {background-position: top;}
答案 0 :(得分:1)
要使用1循环,您可能需要识别差异:
list
。概念:
list
。for
循环使用“first”,然后使用“second”单词。while
循环处理输入并使用list
扩展回复。在每次良好回复后,使用break
退出while
循环。def get_numbers():
result = []
for item in ("first", "second"):
while True:
try:
number = float(input("Please enter the " + item + " number: "))
except ValueError:
print("Not a valid input, please try again.")
else:
result += [number]
break
return tuple(result)
像你一样以元组的形式返回。
答案 1 :(得分:0)
首先,您要使用两个循环,每个循环一个,如果输入有效则中断,如果输入无效则中断。然后你需要将return语句移动到紧跟第二个循环之后。
顺便说一下,您可以省略first_number
和second_number
的初始分配(下面已注明)。将它们分配给float(input(...))
就足够了。
def get_numbers():
#first_number = 0.0
#second_number = 0.0
while True:
try:
first_number = float(input("Please enter the first number: "))
break
except ValueError:
print("Not a valid input, please try again.")
while True:
try:
second_number = float(input("Please enter the second number: "))
break
except ValueError:
print("Not a valid input, please try again.")
return first_number, second_number