python eval()内置函数
python有一个内置函数eval(),可以将字符串进行运行。
通过help(eval)查看帮助文档
Help on built-in function eval in module builtins: eval(source, globals=None, locals=None, /)
Evaluate the given source in the context of globals and locals. The source may be a string representing a Python expression
or a code object as returned by compile().
The globals must be a dictionary and locals can be any mapping,
defaulting to the current globals and locals.
If only globals is given, locals defaults to it.
eval(source,globals=None,locals= None)
eval()函数默认是没有globals,locals,
如果提供则globals属性必须是一个字典dict类型,而locals 可以是任意映射
一般使用input函数,是str类型,如果进行数值运算,需要进行类型转化
a = input("Enter a number:\n")
从键盘输入一个数值
a = 2
type(a)
为str类型
而 使用eval()内置函数
a = eval(input("enter a number:\n"))
type(a)
<class 'int'>
则为int。
eval()函数可以将字符串str当成有效的表达式来求值并返回计算结果
昨天学习碰见一个题目,给做错了,现在记录一下。
number = eval(''+'1*2') # 7是错误,正确答案是102
想当然的选择了答案是7,这个是错误的。
正确答案是:102.
因为这个eval()函数内有两个字符串"5"和"1*2",所以括号内首先做字符串连接,变成一个新的字符串"51*2",eval去掉双引号后,才能进行算数运算,得到数字102
再举个例子
number2 = eval(''+'2*3'+'4*5')
# number2的值
print(number2)
2040
先拼接字符串,"12 *34*5"然后再去掉双引号进行算数运算,得到12*34*5=2040
eval()有一个坏处就是不太安全,如果用户输入一些字符串是恶意代码,则对系统不好,则需要使用
使用ast.literal_eval,
这个目前还没有用到,后续研究后进行总结。
python eval()内置函数的更多相关文章
- python eval内置函数作用
功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globals[, locals]]) -> value 参数: source:一个Python表 ...
- python基础-内置函数详解
一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...
- 如何查看Python的内置函数
经常调用的时候不知道python当前版本的内置函数是哪些,可以用下面的指令查看: C:\Users\Administrator>python Python 2.7.11 (v2.7.11:6d1 ...
- python基础——内置函数
python基础--内置函数 一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...
- Python的内置函数
python的内置函数一共有68个,下面将简单介绍各个函数的功能. abs() dict() help() min() setattr() all() dir() hex() next() slice ...
- Python入门-内置函数一
什么是内置函数?就是python给你提供的拿来直接用的函数,比如print,input等等,截止到python版本3.6.2 python一共提供了68个内置函数,他们就是python直接提供给我们的 ...
- 利用正则表达式模拟计算器进行字符串的计算实现eval()内置函数功能
代码感觉有点绕,刚开始学习python,相关知识点还没全部学习到,还请各位大神多多指教 import re # 定义乘法 def mul(string): mul1 = re.search('-?\d ...
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- python print()内置函数
啦啦啦啦啦啦,我又来了,学习任何东西都得坚持,我一定的好好加油!!! 今天来说说print()函数,前边我们已经用过好好多次啦,现在来学习哈吧!!! Python的内置函数,print() print ...
随机推荐
- 探索Redis设计与实现11:使用快照和AOF将Redis数据持久化到硬盘中
本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...
- C++之前置自增与后置自增
关于前置自增与后置自增的区别我是参考这里:http://bbs.bccn.net/thread-454977-1-1.html 简单复述下,比如++x; 与 x++; 在C中,++x这个表达式的值为原 ...
- https://www.cnblogs.com/limanjihe/p/10184327.html
https://www.cnblogs.com/limanjihe/p/10184327.html https://blog.csdn.net/xnnswmzdszyd/article/details ...
- Java web后台插入数据库中文乱码问题解决
前言:项目想要避免乱码情况的出现,要保持服务器.数据库.项目.以及前端编码一致.一.项目以及前端编码,设置. myeclipse--->右键项目--->Properties--->R ...
- Execute Unix Command via Putty_QTP
plink_path = "C:/plink.exe" 'plink.exe 路径 username = "username" '用户名 p ...
- shell编程:变量替换
定义变量:$ var_1="I love you, Do you love me" 输出变量:$ echo $var_1 打印结果:I love you, Do you love ...
- Idea添加Tomcat
1.菜单栏Run--Edit Configurations: 点击Defaults查看有没有Tomcat Server,没有的话点左上角+,有的话进入步骤2,没有的话进入步骤3. 2.点击左侧Tomc ...
- 复习下KMP&e-KMP
KMP算法的核心思想是next数组. 接下来,我来谈谈我对KMP数组的理解. KMP算法是用来匹配有多少相同字串的一种算法. 1.next数组记录前缀与后缀相等的位置,然后跳到这. 2.数组即记录后缀 ...
- Zookeeper-技术专区-运作流程分析介绍
Zookeeper的启动流程 Zookeeper的主类是QuorumPeerMain,启动时读取zoo.cfg配置文件,如果没有配置server列表,则单机模式启动,否则按集群模式启动,这里只分析集群 ...
- IDEA中将工程打包成war包及部署到Tomcat流程
工程打包成war包及部署到Tomcat流程 再IDEA开发工具中,将工程打包成war包流程: 父pom里需要移除内置的tomcat <dependency> <groupId> ...