<分区>
刚拿了一个集成了 python (numworks) 的计算器。
我正在编写一个 python 程序,其中包含一个函数来检查输入是否为数字( float )。
当我输入一个正确的 float 时,一切正常,但是当异常被捕获时,行为是:
- except block 运行正常
- 然后 while 循环重新开始,再次询问我的输入并进入无限循环并卡住。没有时间再次输入我的输入。
我不熟悉 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()
干杯
PS:关于环境的信息:计算器使用 MicroPython 1.9.4(来源 https://www.numworks.com/resources/manual/python/)
编辑
这是代码的干净工作版本,其中包含你们的所有建议。 将它推到计算器上:就像一个魅力。
# 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