簡體   English   中英

如何將包含數字和運算符的字符串轉換為結果?

[英]How can I turn a string that contains numbers and operators into a result?

我想將此字符串轉換為 output 為 11 的結果 n。

a = "1+5*6/3"
print (a) 

eval()內置 function 可以評估 Python 表達式,包括任何算術表達式。 但請注意eval() function 是一個安全問題,因為它可以評估任意 Python 表達式或語句,因此僅當要評估的輸入受控且受信任的用戶輸入時才應使用。 有一些例子可以說明為什么 eval() 在這個問題中是危險的。

a = "1+5*6/3"
result = eval(a)
print(result)

Output:

11.0

使用 ast 模塊替代 eval()

eval()的安全替代方法是使用ast.literal_eval 最近的 Python 3 版本不允許將簡單字符串作為參數傳遞給ast.literal_eval() 現在必須解析字符串以構建抽象語法樹 (AST),然后根據語法對其進行評估。 This related answer提供了一個示例來安全地評估簡單的算術表達式。

您可以直接使用 python eval function。

a = eval("1+5*6/3")
print(a)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM