私信  •  关注

Thomas

Thomas 最近回复了
1 月前
回复了 Thomas 创建的主题 » 将javascript函数转换为python
from re import sub

def decompress(edi):
    decompressed = ""
    last_compressor = 0

    for i, c in enumerate(edi):
        if c == "\x1D":
            repetitions = int(edi[i + 1: i + 3], 16)
            repeating_char = edi[i + 3]

            decompressed += edi[last_compressor:i] + repeating_char * repetitions
            last_compressor = i + 4

    decompressed += edi[last_compressor:-1]

    return sub("\r\n|\n|\r", decompressed)

我是怎么读代码的

可以忽略这一点,但这可能会有所帮助。

鉴于 edi 它有一个 len ,每个 电子数据交换 那是匹配的 \x1D ,获取的子字符串 EDI 来自 index + 1 index + 3 作为十六进制整数设置为 decimal 。这个 repeater 索引+3 '的第个元素 电子数据交换 str 。它将重复中定义的十六进制次数。 十进制的 ,但仅在 电子数据交换 lastCompressor 到当前索引。在每次迭代中 \x1D 是匹配的, 末级压缩机 增加4。

您可以简单地覆盖 save() 模型的方法来计算 Points 领域:

    def save(self, *args, **kwargs):
        self.Points = self.Value / self.Coefficient
        super().save(*args, **kwargs)

您可能还需要在这里检查并处理除数为零的问题。

8 年前
回复了 Thomas 创建的主题 » 令人费解的并行python问题-传输套接字超时

来自并行python论坛的bagira的回答:

每隔多长时间计算一次 工作需要吗?看看这个变量 TRANSPORT_SOCKET_TIMEOUT 在里面 /usr/local/lib/python2.6/dist-packages/pptransport.py。

也许你的工作比 上面变量中的时间。增加 它的价值和尝试。

结果发现这正是问题所在。在我的应用程序中,我使用pp作为作业的批处理调度程序,这可能需要几分钟的时间,所以我需要调整它。(默认为30秒)

9 年前
回复了 Thomas 创建的主题 » 你知道其他有交互模式的编程语言吗,比如python?[关闭]

Haskell 甚至有两个(主流)交互式口译员, Hugs ghci .

9 年前
回复了 Thomas 创建的主题 » python语言的细微差别[复制]

这一次我花了几个小时才弄明白我是什么时候在一个真正的程序中第一次遇到它的:

函数的默认参数是可变的静态值。

def foo(bar = []):
  bar.append(1)
  print(bar)

foo()
foo()

这将打印

[1]
[1, 1]