热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何管理Python中的大数字划分?

如何解决《如何管理Python中的大数字划分?》经验,为你挑选了2个好方法。

我有一个100位数字,我试图将数字的所有数字放入一个列表,以便我可以对它们执行操作.为此,我使用以下代码:

for x in range (0, 1000):
   list[x] = number % 10
   number = number / 10

但我遇到的问题是我得到一个溢出错误,如浮点数/整数太大.我甚至试过使用以下替代品

number = int (number / 10)

如何将这个巨大的数字除以整数类型的结果,即没有浮点数?



1> Alex Riley..:

在Python 3中,number / 10将尝试返回一个float.但是,浮点值在Python中不能是任意大的大小,如果number大,OverflowError则会引发浮点值.

您可以使用该sys模块找到系统上Python浮点值的最大值:

>>> import sys
>>> sys.float_info.max
1.7976931348623157e+308

为了解决这个限制,而是使用//从两个整数的除法中得到一个整数:

number // 10

这将返回int楼层值number / 10(它不会产生浮动).与浮点数不同,int值可以与Python 3中所需的值一样大(在内存限制内).

你现在可以划分大数字.例如,在Python 3中:

>>> 2**3000 / 10
OverflowError: integer division result too large for a float

>>> 2**3000 // 10
123023192216111717693155881327...



2> fredtantini..:

如果您有一个整数,并且您希望列表中的每个数字,您可以使用:

>>> map(int,list(str(number)))
[1, 5, 0, 3, 0, 0, 7, 6, 4, 2, 2, 6, 8, 3, 9, 7, 5, 0, 3, 6, 6, 4, 0, 5, 1, 2, 4, 3, 7, 8, 2, 5, 2, 4, 4, 5, 4, 8, 4, 0, 6, 6, 4, 5, 0, 9, 2, 4, 8, 9, 2, 9, 7, 8, 7, 3, 9, 9, 9, 7, 0, 1, 7, 4, 8, 2, 4, 4, 2, 9, 6, 9, 5, 1, 7, 1, 3, 4, 8, 5, 1, 3, 3, 1, 7, 9, 0, 1, 0, 1, 9, 3, 8, 4, 2, 0, 1, 9, 2, 9]

它将int转换为字符串,然后list将字符串的每个字符放入列表中.最后,map将列表中的每个项目再次转换为int


推荐阅读
author-avatar
H小气淘淘_238
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有