[英]how can i make sure that the user inputs a string containing only numbers, operators, and letter Q?
[英]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.