python eval函数的神奇魔法

三岁和你用白话学编程,白话一堆,编程自会!

eval() 函数

eval() 函数是python的十分重要的一个函数
他的作用是用表达式的方式解析并执行字符串,输出返回结果

>>> a = 1
>>>eval('a + 1')
>2
>>>eval('2.2 + 3.3')
>5.5

字符串都可以这样计算,那么计算器不是很简单?

eval()书写简易计算器
>>> a = eval(input('输入你要计算的公式'))
>>> print(a)

解析:

用input函数输入需要计算的公式
同eval函数把字符串进行解析并运算
用print函数输出

eval() 深度解析

eval(expression[, globals[, locals]])
实参是一个字符串,以及可选的 globals 和 locals 。 globals 实参必须是一个字典。locals 可以是任何映射对象。

白话时间:
第一个参数一定是字符串,第二个一定是字典,第三个都可以

讲不清楚怎么办,上栗子

>>> a = 3
>>> b = 4
>>> eval('a + b')
>7

>>>print(eval("{'name':'python','age':age}",{"age":162}))
>{'name': 'python', 'age': 162}

>>>age=18
>>>print(eval("{'name':'linux','age':age}",{"age":1822},locals()))
>{'name': 'linux', 'age': 18}

理解理解

eval() 类型

就是把字符串里面的内容转换为原有内容

>>> type(eval('5')) #整型
<class 'int'>
>>> type(eval('14.12')) # 浮点型
<class 'float'>
>>> type(eval('(14, 12)')) #元组
<class 'tuple'>
>>> type(eval("{'name':'python','age':'3.7.4'}"))
<class 'dict'> # 字典
>>> type(eval("['name','python','age','3.7.4']"))
<class 'list'> #数组

特别注意

>>> type(eval("name"))
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    type(eval("name"))
  File "<string>", line 1, in <module>
NameError: name 'name' is not defined

如果字符串里面的英文内容没有被定义使用eval() 函数以后
里面的内容变成了变量,但是没有赋值就会报错

这里特别需要注意

三岁白话时间,今天就到这里啦

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三岁学编程

感谢支持,更好的作品会继续努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值