您当前的位置:首页 > 计算机 > 编程开发 > Python

Python提取任意长度整数的每位数字

时间:09-06来源:作者:点击数:

问题描述:编写函数,给定一个任意长度整数,返回每位数字,例如给定1234则返回(1, 2, 3, 4)。问题本身并不复杂,主要演示Python运算符和内置函数的用法和技巧,感谢浙江永嘉教师发展中心应根球老师提供的思路和代码原始版本。

from timeit import Timer

from random import randint

def demo1(value):

    result = []

    #按从最低位(个位)到最高位的顺序获取每位数字

    while value:

        result.append(value % 10)

        value = value // 10

    #逆序,按正常的顺序返回

    result.reverse()

    return result

def demo2(value):

    result = []

    while value:

        #divmod()是内置函数,返回整商和余数组成的元组

        value, r = divmod(value, 10)

        result.append(r)

    result.reverse()

    return result

def demo3(value):

    #字符串是Python不可变序列的一种

    return list(map(int, str(value)))

def main():

    #随机生成一个数字

    value = randint(1, 1000000000000000000000000000)

    print(value)

    #测试次数

    times = 10000000

    #分别测试3种方法的运行时间

    print(Timer(repr(demo1(value)), 'from __main__ import demo3').timeit(times))    

    print(Timer(repr(demo2(value)), 'from __main__ import demo3').timeit(times))

    print(Timer(repr(demo3(value)), 'from __main__ import demo3').timeit(times))

main()

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门