函数未返回预期的结果

时间:2018-07-25 20:56:29

标签: python python-3.x function

我创建的函数是测量参数的长度!。我想返回“对不起,整数没有长度”

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

我在做什么错了?

2 个答案:

答案 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中运行它