我是靠谱客的博主 幸福灯泡,最近开发中收集的这篇文章主要介绍【华为机考】四则运算python语言实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

请实现如下接口

    /* 功能:四则运算

     * 输入:strExpression:字符串格式的算术表达式,如: "3+2*{1+2*[-4/(8-6)+7]}"

         * 返回:算术表达式的计算结果

     */

    public static int calculate(String strExpression)

    {

        /* 请实现*/

        return 0;

    } 

约束:

  1. pucExpression字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。

  2. pucExpression算术表达式的有效性由调用者保证; 

输入描述:
 

输入一个算术表达式

输出描述:
 

得到计算结果

示例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]])

以后补充,可参考更多安全方面的资料

最后

以上就是幸福灯泡为你收集整理的【华为机考】四则运算python语言实现的全部内容,希望文章能够帮你解决【华为机考】四则运算python语言实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部