关于#python#的问题:Failed example:

这是什么情况呀 有朋友能指导我一下嘛 万分感谢

def url_to_mid(url):
    """
    >>> url_to_mid('z0JH2lOMb')
    3501756485200075L
    >>> url_to_mid('z0Ijpwgk7')
    3501703397689247L
    """
    url = str(url)[::-1]
    size = len(url) / 4 if len(url) % 4 == 0 else len(url) // 4 + 1
    result = []
    for i in range(size):
        s = url[i * 4: (i + 1) * 4][::-1]
        s = str(base62_decode(str(s)))
        s_len = len(s)
        if i < size - 1 and s_len < 7:
            s = (7 - s_len) * '0' + s
        result.append(s)
    result.reverse()
    return int(''.join(result))

报了这样的错 这是为什么呀

Failed example:
    url_to_mid('z0JH2lOMb')
Expected:
    3501756485200075L
Got:
    3501756485200075

你最好看下python版本是否与要求一致,如果我没理解错,该代码应该是在python2中执行的,而你使用的python版本为python3。
在python2中,超过int取值范围的int类型会被自动转成long类型,也就是期待值为long类型,int值后面跟L。但是在python3中,都是int,没有long了,不会自动在超过int范围的整形后面自动加L,所以最终转成int类型时不再有L。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7534270
  • 这篇博客你也可以参考下:数据结构与算法 python语言实现 习题1.12答案
  • 你还可以看下python参考手册中的 python- 嵌套的列表推导式
  • 除此之外, 这篇博客: python基础语法中的 8.1.3字符串的常见操作 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 方法描述描述
    capitalize将字符串第一个字符转换为大写
    bytes.decode(encoding=“utf-8”,errors=“strict”)Python3中没有decode方法,但是我们可以使用bytes对象的decode()方法来解码给定的bytes对象,这个bytes对象可以由str.encode()来编码返回。
    encode(encoding=“utf-8”,errors=“strict”)以encoding指定的编码格式编码字符串,如果出错默认报一个VaError的异常,除非errors指定的是’ignore’或者’replce’
    isalnum()如果字符串中至少有一个字符并且所有字符都是字母或者数字则返回True,否则返回Falst.
    isalpha()如果字符串中至少有一个字符并且所有字符都是字母则返回True,否则返回Falst.
    isnumeric()如果字符串中只包含数字字符,则返回True,否则返回Falst。
    isdigit()如果字符串中只包含数字字符,则返回True,否则返回Falst。
    join(分隔符)以指定字符串为分隔符,将所有元素合并为一个新的字符串。
    len(string)返回字符串的长度。
    lstrip()截掉字符串左边的空格或指定字符。
    rstrip()删除字符串末尾的空格
    split(str="",num=string.count(str)num=string.count(str))以str为分隔符截取字符串,如果num有指定值则只截取num+1个字符串。


  • 您还可以看一下 尹成老师的python爬虫初级到精通视频教程2课程中的 2.13下载小节, 巩固相关知识点