python中eval的用法例子(Python中的eval)

http://www.itjxue.com  2023-01-27 16:42  来源:未知  点击次数: 

python中eval函数的用法详解

可以把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

eval在python中的意思

eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。即变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果。

eval()函数用来执行一个字符串表达式,并返回表达式的值,还可以把字符串转化为list、tuple、dict。eval函数的语法:eval(expression[,globals[,locals]])。

扩展资料:

如果eval函数在执行时遇到错误,则抛出异常给调用者;类似的函数是loadcode,loadcode并不立即执行代码,而是返回一个函数对象。并且loadcode支持路径参数,eval并不支持,eval并不支持代码中的return语句,而是将代码作为表达式直接计算出结果。

例如:

var d = eval("({name:'chentong'})")

alert(d.name);

参考资料来源:

百度百科-eval()

eval函数在python中的应用

以python 3.8.5150.0版本为例,python中eval函数作用如下:

1、计算字符串中有效的表达式,并返回结果。

2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。

3、将利用反引号转换的字符串再反转回对象。

参数解析:

expression:这个参数是一个字符串,python会使用globals字典和locals字典作为全局和局部的命名空间,将expression当作一个python表达式进行解析和计算。

globals:这个参数控制的是一个全局的命名空间,也就是我们在计算表达式的时候可以使用全局的命名空间中的函数,如果这个参数被提供了。

并且没有提供自定义的builtins(python的内建模块),那么会将当前环境中的builtins拷贝到提供的globals里,然后进行计算。如果globals没有被提供,则使用python的全局命名空间。

locals:这个参数控制的是一个局部的命名空间,和globals类似,不过当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的,也就是说当globals和locals中有冲突的部分时,locals说了算,它有决定权,以它的为准。如果locals没有被提供的话,则默认为globals。

eval 的用法,以及python中推导列表的案例

a = [[1,2,3],[2,4,5],[1,2,3]]

for i in range(len(a[0])):?????? 第一种方法

...???? a[0][i],a[1][i],a[2][i] ? ? ? ? ? ? ? 此为tuple形式

(1, 2,1)

(2, 4,2)

(3, 5,3)

for i in range(len(a[0])):

...???print([a[0][i],a[1][i],a[2][i]]) ? ? ? 注意括号决定了输出?的形式

[1, 2,1] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

[2, 4,2]

[3, 5,3]

eval("a[0]")

[1, 2,3]

eval("a[0][0]")

1

eval("a[0][0],a[1][0],a[2][0]")

(1, 2,1)

a =[[1,2,3],[2,4,5],[1,2,3]]????????第二种方法

s = ""???????????????? 定义一个 为s的字符串

l = []???????????????? 定义一个为l 的列表

for i in range(len(a[0])):i大循环是a[][]第二个括号里的值

...???? for j in range(len(a)):j是a[][]第一个括号里的值

...???????? s += "a[%s][%s]," % (j,i)? 输出的格式把前面的加上

...???? l.append(s)? 三个为一组添加到 l 列表里

...???? s = ""??????? s字符串重新置空,开始第二次循环

...

l

?? ??第一次循环结果???????????????置空后第二次循环结果

['a[0][0],a[1][0],a[2][0],','a[0][1],a[1][1],a[2][1],','a[0][2],a[1][2],a[2][2],']

?? ?置空后第三次循环结果

[eval(i) for i in l]?? 循环l里的三个元素 并输出结果

[(1,2, 1), (2, 4, 2), (3, 5, 3)]

I

(责任编辑:IT教学网)

更多

推荐Oracle文章