我有一个数字,我想分成较小数量的等长。 假设,我的号码是212313454 我现在想把它分成3个3位数字: 212,313和454
如果我想随机拆分怎么办?我的意思是 212313454成 213,354,114 有没有办法做到这一点?
答案 0 :(得分:2)
您可以使用模运算符%
和除法运算符/
,并将除数形成为10^n
,其中n是每个拆分结果中的位数。
答案 1 :(得分:2)
将它们转换为字符串然后拆分它们。像:
s = str(212313454)
a = s[0:3]
b = s[3:6]
c = s[6:]
为可变长度数使用循环。
答案 2 :(得分:1)
我很抱歉,但你的问题很模糊(是的,我知道人们已“回答”了这个问题......)。
“将[数字]分成较小数量的等长”。你的例子,因此每个人的答案都假设你只有9个十进制数字并想要三个较小的整数,但是如果你有更长或更短的数字,或者想要更多/更少的细分呢?
随机将“212313454分成213,354,114”。这些较小的数字与较大的#完全相关的是什么?如果我的眼睛正常工作,213不在212313454。如果你想从整数中选择随机数,你可以这样做。
最后,如果你只是在试验有趣,很酷,但你应该考虑一下将整数变成字符串来回来回。你应该检查的python中的很多数学例程都在标准库中,例如数学模块,随机模块和按位运算符。
答案 3 :(得分:0)
我不打算为你编写代码,但这是一个简单的方法:
将int设为字符串
将每个3个字符的字符串拆分
一旦你这样做迭代列表并将字符串重新转换成整数
我想如果你尝试的话,你可以搞清楚!
祝你好运:)答案 4 :(得分:0)
将整数转换为字符串adn的最简单方法然后再将其更改回int ... 这就是我要做的......
<强>代码:强>
c = 212313454
def splits(c,length):
l = [c[i:i+3] for i in range(0,len(c),3)]
print map(int,l)
if __name__=='__main__':
splits(str(c),3)
<强>输出:强>
[212, 313, 454]
希望这会有所帮助:)