python中eval函数的用法详解

 我来答
老男孩教育
2023-03-20 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部

Python中eval的用法:

Python eval()函数的功能:将字符串str当成有效的表达式来求值并返回计算结果。

语法:

eval(source[,globals[,locals]]) -> value

参数:

source:一个Python表达式或函数compile()返回的代码对象。

blobals:可培告选。必须是dictionary

locals:可选。任配灶明意map对象

如果提供了globals参数,那么它必须是dictionary类型;如果提辩巧供了locals参数,那么它可以是任意的map对象。

Python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print(locals())来查看该函数体内的所有变量名和变量值。

x = 1

y = 1

num = eval("x+y")

print('num',num)

def g():

x = 2

y = 2

num1 = eval("x+y")

print('num1',num1)

num2 =eval('x+y',globals())

print('num2',num2)

num3 = eval("x+y",globals(),locals())

print('num3',num3)

g()

num2

num1 4

num2 2

num3 4

解析:num2因为有globals所以是全局变量,执行后结果为4;num3既有globals又有locals,仅在此情况下,优先采用locals的值,故计算结果是2。

新科技17
2022-07-24 · TA获得超过5893个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:74.4万
展开全部
可以把list,tuple,dict和string相互转化。

1、字符串转换成列表

>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"

>>>type(a)

>>> b = eval(a)

>>> print b[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]

>>> type(b)

2、字符串转换成字典

>>> a = "{1: 'a', 2: 'b'}"

>>> type(a)

>>> b = eval(a)

>>> print b{1: 'a', 2: 'b'}

>>> type(b)

3、字符串转换成元组

>运敏>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"

>>> type(a)

>>> b = eval(a)

>>> print b([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))

>>> type(b)

4、eval()函数传进去的参数必须是字符串或者是对象

示例1:

>>>a=10;

>>>print(eval("a+1"))

>>>执行结果: 11

示例2:

>>>a=10;

>>>g={'a':4}

>>>print(eval("a+1",g))

>>>执行结果:5

示例3:

>>>a=10

>>>b=20

>>>c=30

>>>g={'a':6,'b':8}

>>>t={'b':100,'c':10}

>>>print(eval('a+b+c',g,t))

>>>执行结果:116  (a=6, b=100, c=10)

5、eval函数,eval去除引号后会检查到它是不是可计算的,如果可计算会将计算的结果打印出来,如果不可计算直接返回结果

示脊悄裂例1:不可计算》》》直接输出结果

>樱闭>>s='["a","b","c"]'

>>>print(eval(s))

>>>执行结果: ['a', 'b', 'c']

示例2:表达式可计算》》》计算之后输出结果

>>>s='abs(-10)'  

>>>print(eval(s))

>>>输出结果:10 

5、eval()函数,功能是将string变成算术表达式来执行

示例1:

>>>eval("1+2")

>>>执行结果: 3

示例2:

>>> eval("print(\"hello, world\")")

>>>输出结果:hello, world
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式