【華為機考】四則演算python言語実現
1485 ワード
次のインタフェースを実装してください.
/*機能:四則演算
*入力:strExpression:文字列形式の算術式(3+2*{1+2*[-4/(8-6)+7]})
*戻る:算術式の計算結果
*/
public static int calculate(String strExpression)
{
/*実現してください*/
return 0;
}
制約: pucExpression文字列の有効文字には、['0'-'9'],'+','-','*','(',')','[','],'{','}'が含まれます. pucExpression算術式の有効性は呼び出し者によって保証される.
説明を入力:
/*機能:四則演算
*入力:strExpression:文字列形式の算術式(3+2*{1+2*[-4/(8-6)+7]})
*戻る:算術式の計算結果
*/
public static int calculate(String strExpression)
{
/*実現してください*/
return 0;
}
制約:
説明を入力:
输入一个算术表达式
输出描述:
得到计算结果
示例1输入
3+2*{1+2*[-4/(8-6)+7]}
しゅつりょく25
pythonのライブラリ関数は本当に多いと言わざるを得ませんprint(eval(input()))
一.eval()関数
公式demoは、文字列strを有効な式として評価し、計算結果を返すと解釈している.
しかし、セキュリティの問題があります.
ユーザーが悪意を持って入力したと仮定します.例:_import__('os').system('dir')
ではeval()の後、現在のフォルダファイルがユーザーの前に表示されていることがわかります.
では、入力を続けます.open(' ').read()
コードは全部人に見せました.
eval()によるセキュリティの問題を避けるには
1、自分で検査関数を書く.
2、astを使うliteral_eval:DOCUMENTを自分で表示する
1.まず、
eval(expression[, globals[, locals]])
後で補足して、もっと安全な方面の資料を参考することができます