我创建的函数是测量参数的长度!。我想返回“对不起,整数没有长度”
def string_length(mystring):
if type(mystring) == int:
return "Sorry, integers don't have length"
else:
return len(mystring)
mystring = input("what is the value ?")
print(string_length(mystring))
我在做什么错了?
答案 0 :(得分:1)
您的问题不是很清楚,但是如果我的理解没有错,这应该可以解决
def string_length(mystring):
try:
if type(int(mystring)) == int:
return "Sorry, integers don't have length"
elif type(mystring) == str:
return len(mystring)
except:
return len(str(mystring))
mystring = input("what is the value ?")
print(string_length(mystring))
答案 1 :(得分:0)
在Python2中,input
的值将为整数,而不是字符串,这将解释该消息。
您可以使用hasattr
来检查__len__
魔术函数,而不必进行显式类型检查。
我认为这对任何迭代类型都适用
def string_length(mystring):
if hasattr(mystring, '__len__'):
return len(mystring)
else:
print("Sorry, {} don't have length".format(type(mystring)))
return None
mystring = input("what is the value ?")
print(string_length(mystring))
然后,确保您正在Python3中运行它