使用浮动时输出不正确

时间:2017-07-25 03:21:21

标签: python-3.x

import math

#get base
inputOK = False
while not inputOK:
    base = input('Enter base:')
    if type(base) == type(1.0): inputOK = True
    else: print('Enter, Base must be a floating point number.')
  

输入base:1.0 Enter,Base必须是浮点数。

输入1.0时,我无法得到正确的答案。它始终输出Base必须是浮点数。我想获得True并退出循环。我的计划有什么问题。

1 个答案:

答案 0 :(得分:1)

  • input返回str个对象,因此我们需要手动转换为float,
  • 我们使用isinstance进行类型检查(如果需要)。

关注EAFP我们可以写

# get base
inputOK = False
while not inputOK:
    try:
        # user can pass 'inf', 'nan', no error will be raised
        # should we check this cases?
        base = float(input('Enter base:'))
    except ValueError:
        print('Base must be an integer or floating point number.')
    else:
        inputOK = True