前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python提取任意长度整数的每位数字

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

作者头像
Python小屋屋主
发布2018-04-16 14:30:55
3K0
发布2018-04-16 14:30:55
举报
文章被收录于专栏:Python小屋Python小屋

问题描述:编写函数,给定一个任意长度整数,返回每位数字,例如给定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()

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档