0

我有一个脚本,我正在尝试使用我的 RPi。它在 64 位系统上按预期工作,但在 32 位系统上不能正常工作。我明白了

溢出错误:Python int 太大而无法转换为 C long

这是脚本

for number in xrange(int("0101010101"), int("9898989898")+1):
    number = `number`.zfill(10)
    prev = ''
    i = 0
    for c in `number`:
            if c in prev:
                    break
            else:
                    i += 1
                    prev = c
            if i>=len(`number`):
                    print number

我可以用 perl 做到这一点,但不知道如何用 python 完成

这是 perl 等价物

my $num = "";
for $num ("0101010101" .. "0101989898"){
    if ($num =~ /00|11|22|33|44|55|66|77|88|99/o) {
            ++$num;}
    else {
            print "$num\n";}}

也尝试用 python3 编写它,但我对 3 完全不熟悉

4

1 回答 1

2

您可以查看 Python 文档以供参考。

CPython 实现细节: xrange() 旨在简单快速。实现可能会施加限制来实现这一点。Python 的 C 实现将所有参数限制为原生 C long(“短”Python 整数),并且还要求元素的数量适合原生 C long。如果需要更大的范围,可以使用 itertools 模块制作替代版本:islice(count(start, step), (stop-start+step-1+2*(step<0))//step)。http://docs.python.org/2/library/functions.html#xrange

于 2013-03-25T05:39:18.327 回答