确保输入是一个浮点数

0 python input python-3.x

我目前的代码:

while True:
    surjuv = input("What is the juvenile survival rate?")
    if surjuv.isinstance(float)==True and float(surjuv)<=1 and float(surjuv)>=0:
        break
Run Code Online (Sandbox Code Playgroud)

它需要确保它surjuv是一个浮点数,但输入0.5时会出现以下错误:

Traceback (most recent call last):
File "python", line 81, in <module>
File "python", line 21, in main_menu
File "python", line 51, in enter_gen0
AttributeError: 'str' object has no attribute 'isinstance'
Run Code Online (Sandbox Code Playgroud)

tim*_*geb 5

isinstance将是的语法isinstance(surjuv, float),但在你的情况下这总是会失败,因为Python 3 input返回一个字符串.

将输入转换为a float,当失败时,执行任何必要的错误处理.

try:
    surjuv = float(input('...'))
except ValueError:
    continue # or whatever you want
Run Code Online (Sandbox Code Playgroud)