我想 在我尝试将字符串转换为浮点数之前检查字符串是否可以是浮点数。这样,如果 字符串不是浮点数,我们可以打印错误信息并退出而不是崩溃 程序。 因此,当用户输入内容时,我想看看它是否为浮点数,因此它将打印为“true”,如果不是那么它将打印“false”而不是崩溃。我不想为此使用内置函数。我需要为此做出自己的功能。
我试过了: 导入类型
def isFloat():
x = raw_input("Enter: ")
if(x) == float:
print("true")
if(x) == str:
print("false")
isFloat()
我不知道它的真实与否,但它不会工作它也不会打印任何东西
答案 0 :(得分:0)
这里建议的事情是try
:
try:
f = float(x)
print("true")
except ValueError:
# handle error here
print("false")
这强调了Python哲学“请求宽恕而不是许可”。
答案 1 :(得分:0)
判断字符串是否代表浮点数的唯一可靠方法是尝试转换它。你可以先检查然后转换,但你为什么要这样做?你需要做两次,不需要。
考虑以下代码:
def read_float():
"""
return a floating-point number, or None
"""
while True:
s = raw_input('Enter a float: ').strip()
if not s:
return None
try:
return float(s)
except ValueError:
print 'Not a valid number: %r' % s
num = read_float()
while num is not None:
... do something ...
print 'Try again?'
num = read_float()