为什么python说这个字符串是None类型
我创建了一个函数,它可以根据类型将字符串转换为数字,当我在字符上使用它时,它会抛出一个错误。这是:为什么python说这个字符串是None类型,python,string,function,error-handling,numbers,Python,String,Function,Error Handling,Numbers,我创建了一个函数,它可以根据类型将字符串转换为数字,当我在字符上使用它时,它会抛出一个错误。这是: def number(numstring): is_number = True for c in numstring: if not c in '123456789.': is_number = False if is_number: if_float = False for c
def number(numstring):
is_number = True
for c in numstring:
if not c in '123456789.':
is_number = False
if is_number:
if_float = False
for c in string:
if c == '.':
is_float = True
break
if is_float:
return float(numstring)
else:
return int(numstring)
else:
return None
下面是错误:
TypeError: object of type 'NoneType' has no len()
我如何修复错误,如果可以,请解释答案。提前谢谢 您的代码中有一些输入错误 试试这个 您也可以使用
尝试
,如下所示
def number(numstring):
try:
x = float(numstring)
return x
except:
try:
x = int(numstring)
return x
except:
return "wasn't a number"
print( number("12.23") )
您将变量声明为
if\u float
,但使用的是\u float
。此外,要将字符串转换为int,您必须先将其转换为float,然后再转换为int请更新代码的缩进并提供完整的错误回溯。您得到的错误行号是多少?那行代码是什么?哦,是的,我没看到。谢谢你回答这个问题!
def number(numstring):
try:
x = float(numstring)
return x
except:
try:
x = int(numstring)
return x
except:
return "wasn't a number"
print( number("12.23") )
def number(numstring):
is_number = True
for c in numstring:
if not c in '123456789.':
is_number = False
is_float = False
if is_number:
for c in numstring:
if c == "." and not is_float:
is_float = True
break
if is_float:
return float(numstring)
else:
return int(float(numstring))
else:
return None