函数未返回预期的结果

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


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

我究竟做错了什么?


小唯快跑啊
浏览 153回答 2
2回答

陪伴而非守候

您的问题不是很清楚,但是如果我的理解没有错,这应该可以解决: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用来检查__len__magic函数,而不必进行显式类型检查。我认为这应该适用于任何迭代类型def string_length(mystring):  if hasattr(mystring, '__len__'):    return len(mystring)  else:    print("Sorry, {} don't have length".format(type(mystring)))    return Nonemystring = input("what is the value ?")print(string_length(mystring))然后,确保您正在Python3中运行它
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python