python的eval_十五、python沉淀之路--eval()的用法

本文详细介绍了Python的eval()函数,包括其功能、语法及参数解释。通过示例展示了eval()如何将字符串转化为表达式求值,并讨论了全局和局部变量的影响。此外,还说明了eval()可以用于字符串到列表、字典和元组之间的转换。
摘要由CSDN通过智能技术生成

一、eval函数

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

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

参数:

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

globals:可选。必须是dictionary

locals:可选。任意map对象

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

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

1 x = 1

2 y = 1

3 num = eval("x+y")4 print('num',num)5

6 defg():7 x = 2

8 y = 2

9 num1 = eval("x+y")10 print('num1',num1)11 num2 =eval("x+y",globals())12 print('num2',num2)13 num3 = eval("x+y",globals(),locals())14 print('num3',num3)15

16 g()

1 num 2

2 num1 4

3 num2 2

4 num3 4

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

二、eval 可以把 list, tuple, dict 转换成str,返回来也成立;即互转。

1 ###############

2 #字符串转成列表

3 s = '[[1,2,],[3,4,],[5,6,],[8,9]]'

4 li =eval(s)5 print(li)6 print(type(s))7 print(type(li))

1 [[1, 2], [3, 4], [5, 6], [8, 9]]2

3

1 ########################

2 #字符串转成字典

3 s = "{1:'a',2:'b'}"

4 dic =eval(s)5 print(dic)6 print(type(s))7 print(type(dic))

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

3

1 ###########################

2 #字符串转成元组

3 s = '([1,2,],(3,4,),[5,6,],(8,9))'

4 tu =eval(s)5 print(tu)6 print(type(s))7 print(type(tu))

1 ([1, 2], (3, 4), [5, 6], (8, 9))2

3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值