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))