Python 使用条件语句的语义错误
我试图构建一个执行字符串长度的代码 这段代码应该只能接受字符串并返回它们的长度,但当给定整型值或浮点值时,它也会计算它们的长度Python 使用条件语句的语义错误,python,python-3.x,Python,Python 3.x,我试图构建一个执行字符串长度的代码 这段代码应该只能接受字符串并返回它们的长度,但当给定整型值或浮点值时,它也会计算它们的长度 def length(string): if type(string)== int: return "Not Available" elif type(string) == float: return "Not Allowed" else: return len(string) string=inp
def length(string):
if type(string)== int:
return "Not Available"
elif type(string) == float:
return "Not Allowed"
else:
return len(string)
string=input("Enter a string: ")
print(length(string))
输出:
Enter a string: 45
2
您希望为输入
45
获得输出“不可用”
。但这不会发生,因为,
从键盘读取输入时,默认类型为字符串。因此,输入
45
的类型为str
。因此,您的代码给出了输出2
输入
返回一个字符串,因此如果您检查其类型,它将始终是字符串。要检查它是int还是float,您必须尝试将其强制转换
try:
int(input)
except ValueError:
# not an int
return "Not Available"
try:
float(input)
except ValueError:
# not a float
return "Not Allowed"
return len(string)