如何将Python代码翻译成juliacod

2024-10-04 01:26:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Julia的新手,希望这个Python代码能被翻译成Julia。你知道吗

def calcMarkov(preseq,propability,ordnung):
    betrachtungen = 0
    for pos in range(1,len(seq)):
        current = seq[pos]
        fromNode = seq[pos-ordnung:pos]
        if (fromNode == preseq and not current == "X"):
            propability[current] = propability[current] + 1
            betrachtungen += 1
    for key, value in propability.items():
        if(not betrachtungen == 0):
            propability[key] = propability[key]/betrachtungen
    print ("Anzahl der Betrachtungen:",betrachtungen)
    return propability

我试试这个:

function calcMarkov(preseq, propability, ordnung)
    betrachtungen = 0
    for pos in 1: length(seq)
        current = seq[pos]
        fromNode = seq[pos-ordnung:pos]
        if fromNode == preseq != current == "X"
            propability[current] = propability[current] + 1
            betrachtungen += 1
        end
        for (key,value) in propability
            if(not betrachtungen == 0)
                propability[key] = propability[key]/betrachtungen
            end
        print("Anzahl der Betrachtungen:",betrachtungen)
        return propability
        end
    end
end

但我得到一个错误消息:语法:参数列表中缺少逗号或逗号。你知道吗

你能告诉我为什么吗?我很感激你的帮助


Tags: keyinposforifnotcurrentseq
1条回答
网友
1楼 · 发布于 2024-10-04 01:26:48

此行语法不正确:

if(not betrachtungen == 0)

你应该写:

if betrachtungen != 0

或者

if !iszero(betrachtungen)

即使解决了其他问题:

if (fromNode == preseq and not current == "X"):

不等于

if fromNode == preseq != current == "X"

相反,你应该写

if fromNode == preseq && current != "X"

此外:

for pos in range(1,len(seq)):

在Python中只从1到len(seq)-1迭代,因为范围在结尾是非包含的,而

for pos in 1: length(seq)

实际上从1迭代到length(seq)。也许您打算用python代码来代替它?你知道吗

for pos in range(len(seq)):

它从0迭代到len(seq)-1。你知道吗

另外还有一个额外的注释;如果您可以包含一个最小的可复制示例:https://stackoverflow.com/help/minimal-reproducible-example,那么对您的帮助就容易多了

相关问题 更多 >