为了账号安全,请及时绑定邮箱和手机立即绑定

函数未返回预期的结果

函数未返回预期的结果

小唯快跑啊 2021-05-10 15:37:59
我创建的函数是测量参数的长度!我想返回“对不起,整数没有长度”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 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您的问题不是很清楚,但是如果我的理解没有错,这应该可以解决:


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


查看完整回答
反对 回复 2021-05-11
?
不负相思意

TA贡献1777条经验 获得超10个赞

在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 None


mystring = input("what is the value ?")

print(string_length(mystring))

然后,确保您正在Python3中运行它


查看完整回答
反对 回复 2021-05-11
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信