参见英文答案 >
Asking the user for input until they give a valid response 17个
刚抓到一个集成了python的计算器(numworks).
我正在编写一个python程序,它包含一个函数来检查输入是否是一个数字(浮点数).
当我键入一个正确的浮点数时,一切正常,但是当一个异常被捕获时,行为是:
> except块运行正常
>然后while循环重新开始,再次询问我的输入并输入一个infite循环并冻结.没时间再输入我的输入.
我不熟悉Python,我很确定这是一个简单的语法…但我没有设法解决它.
帮助将不胜感激!
这是代码:
# controle de saisie d'un nombre
def inputFloat(text):
ret = ''
while ret is not float:
try:
ret = float(input(text + " (nombre)"))
except ValueError:
print("saisie incorrecte.")
return ret
# test
def test():
print(inputFloat("saisir nombre"))
# affichage du menu
while True:
print("[1] test")
print("[0] quitter")
choix = input("Choisir une fonction:")
if choix == "0":
print("au revoir.")
break
elif choix == "1":
test()
干杯
编辑
这是代码的干净工作版本,包含了你们的所有建议.
把它推到了计算器上:就像魅力一样.
# controle de saisie d'un nombre
def inputFloat(text):
while True:
try:
return float(input(text + " (nombre)"))
except ValueError:
print("saisie incorrecte.")
continue
# test
def test():
print(inputFloat("saisir nombre"))
# affichage du menu
while True:
print("[1] test")
print("[0] quitter")
choix = input("Choisir une fonction:")
if choix == "0":
print("au revoir.")
break
elif choix == "1":
test()
break