<p>您需要比较<code>type</code>的<code>text</code>和<code>float</code>。要做到这一点,保持原有的逻辑,一种方法是:</p>
<pre><code># controle de saisie d'un nombre
def inputFloat(text):
ret = ''
while type(ret) != float:
try:
ret = float(input(text + " (nombre)"))
except ValueError:
print("saisie incorrecte.")
return ret
</code></pre>
<p>或者,您可以使用:<code>while not isinstance(ret, float)</code>(<code>isinstance</code>实际上是python中检查类型的首选方法)。你知道吗</p>
<p>正如@Iguananaut在注释中提到的,您可以通过同时删除<code>ret</code>变量来简化函数。你知道吗</p>
<pre><code>def input_float():
while True:
try:
return float(input("(nombre): "))
except ValueError:
print("saisie incorrecte.")
</code></pre>
<h2>编辑</h2>
<p>要使它与<code>test</code>函数和第二个<code>while</code>循环一起工作,需要在<code>test()</code>返回时包含break子句:</p>
<pre><code># 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
</code></pre>
<p>注意,如果您选择使用我建议的第二个函数(<code>input_float</code>),您将希望将测试函数更改为</p>
<pre><code># test
def test():
print(input_float())
</code></pre>