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并退出循环。我的计划有什么问题。
答案 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