色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

ctf計算器json

林玟書1年前7瀏覽0評論

在ctf比賽中,計算器題目是一類經典的題目,常常涉及到json格式的數據。下面我們來講一講如何使用json來實現ctf計算器。

{
"exp": ["num", "+", "num"],
"num": ["digit", "digit..."],
"digit": ["0", "1", "...", "9"]
}

以上是一個簡單的json數據結構,其中“exp”表示表達式,由數字和加號組成,而“num”則表示多位數字,每一位數字用“digit”來表示。我們可以使用遞歸來解析這個json。

import json
def evaluate(exp):
if isinstance(exp, list):
operator = exp[1]
left = evaluate(exp[0])
right = evaluate(exp[2])
if operator == "+":
return left + right
else:
return int(evaluate(exp))
with open("calc.json") as json_file:
data = json.load(json_file)
exp = data["exp"]
result = evaluate(exp)
print(result)

上面的代碼中,我們首先使用json.load()來讀取json文件,并將其存儲在變量data中。然后我們定義一個evaluate()函數,這個函數用來對表達式進行求值。在函數中,我們使用遞歸的方式來對表達式進行解析,并將其拆分成左右兩部分,分別遞歸調用evaluate()函數進行求值。

最后,我們將表達式傳入evaluate()函數中,并將求得的結果打印出來。這樣我們就完成了一個基于json的ctf計算器。