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() 函数以后
里面的内容变成了变量,但是没有赋值就会报错
这里特别需要注意
三岁白话时间,今天就到这里啦