Python 函数不返回预期的内容
我创建的函数是测量参数的长度!。我想返回“对不起,整数没有长度”Python 函数不返回预期的内容,python,python-3.x,function,Python,Python 3.x,Function,我创建的函数是测量参数的长度!。我想返回“对不起,整数没有长度” 我做错了什么?你的问题不是很清楚,但如果我的理解没有错的话,这应该行得通: def string_length(mystring): try: if type(int(mystring)) == int: return "Sorry, integers don't have length" elif type(mystring) == str: return len(
我做错了什么?你的问题不是很清楚,但如果我的理解没有错的话,这应该行得通:
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))
在Python2中,
input
将计算为整数,而不是字符串,这将解释消息
您可以使用hasattr
检查\uuu\uu\uuu
魔术功能,而不是执行显式类型检查
我相信这对任何iterable类型都适用
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中运行此函数,并且没有传递int。
type(int(mystring))==int
始终为真。我想你只是用尝试来掩盖这个问题
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))