我正在尝试构建一个执行字符串长度的代码
此代码应该只能接受字符串并返回其长度,但是当给出整数或浮点值时,它也会计算其长度。
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
答案 0 :(得分:1)
您期望获得输入'Not Available'
的输出45
。但这不会发生,因为,
从键盘读取输入时,默认类型为字符串。因此,输入45
的类型为str
。因此,您的代码给出了输出2
。
答案 1 :(得分:1)
input
返回一个字符串,因此,如果检查其类型,它将始终为字符串。要检查它是否为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)