python中eval函数的用法详解

作者&投稿:剑怨 (若有异议请与网页底部的电邮联系)
~

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。



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


求python代码 有两组学生的名字列表,试把名字中有两个或以上字符’e...
import renames = [['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe'], ['Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva']]list1=[]for i in names: for j in i : #c=re.compile() d=re.match(".*e.*e.*",j)...

eval(input())的值是多少?
a的值是8。当使用a=eval(input())并输入3+5时,Python会将表达式3+5计算为8,并将结果存储在变量a中。此时并没有输出结果,需要通过print函数输出变量a的值。在这个例子中,我们使用input()函数等待用户输入一个表达式,即3+5。然后,eval()函数计算这个表达式的结果8,并将结果赋值给变量a。最后...

eval在python中的用法
python中eval函数用法如下:1、计算字符串中有效的表达式,并返回结果。2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。3、将利用反引号转换的字符串再反转回对象。eval函数主要是用来实现python中各种数据类型与str之间的转换。字符串中包含的什么,通过eval函数就可以输出什么。比如...

python中eval()函数的作用是什么?
eval() 使用时用到的参数:expression -- 表达式。globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。python中如何将对象输出到标准输出流:print函数是你学Python接触到的第一个函数,它将对象输出到标准...

python中eval()函数的作用是什么?
python中eval函数作用如下:1、计算字符串中有效的表达式,并返回结果。2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。3、将利用反引号转换的字符串再反转回对象。函数作用域:eval()函数并不会创建一个新的作用域,并且它的作用域就是它所在的作用域,有时候需要将eval()函数...

python当中的eval()函数是起什么作业的?
在python中,eval()是评估函数,用处是去掉最外层引号,然后进一步处理 解释:python中 input()默认录入的是字符串类型 如果用户输入了123,其实读取的是字符串"123"这时候需要eval(input())来获取整数123,才能进行进一步的计算 之所以说eval()用处是去掉最外层引号是因为,举例说明吧,eval(" '你好' ") ...

python中eval()函数的作用是什么?
python中eval函数作用是计算字符串中有效的表达式,并返回结果。将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。利用反引号转换的字符串再反转回对象。eval()函数用来执行一个字符串表达式,并返回表达式的值。eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。eval函数...

python当中的eval()函数是起什么作用?
python当中的eval()函数是将字符串当成有效Python表达式来求值,并返回计算结果 x = 1 eval('x+1') eval('x==1') 与之对应的repr函数,它能够将Python的变量和表达式转换为字符串表示: repr(x+1) repr(x+ ‘1’-1)('x=+=1') Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Pu...

eval是什么意思
例如,在JavaScript中,可以使用"eval"函数来执行字符串中的JavaScript代码。这对于动态生成代码或在运行时根据特定条件执行不同的代码非常有用。然而,由于"eval"可以执行任意代码,它也可能存在安全风险,并且可能被滥用。例如,在Python中,"eval"函数可以解析并计算一个字符串作为Python表达式的值。需要注意...

eval在python中的用法
eval在python中的用法如下:工具:华硕天选4、Windows10、python3.11。1、eval方法的通用语法为:eval(source)->value。2、它的作用主要是动态执行第一个参数的表达式,获得计算结果等。3、比如eval("12"),就是执行计算1加2的值,结果为3。4、如果eval的参数是一个纯字符串,方法返回的也就是这个...

屯昌县15991573751: 在python编程中,eval函数是用来,简单说来,不要百度的.谢谢. -
斗庄血通: 给一个用字符串表示的表达式求值,比如:>>> a=1>>> eval("a+1")2>>>

屯昌县15991573751: python中eval()方法的使用 -
斗庄血通: 转义字符 多加一个斜杠 \\'Ctrl+Shift...

屯昌县15991573751: python当中的eval()函数是起什么作业的 -
斗庄血通: eval函数将字符串当成有效Python表达式来求值,并返回计算结果 例子 x=0 l='x+1' print(eval(l))结果是1

屯昌县15991573751: 请教python中如何把输入的字符串当作函数的参数名 -
斗庄血通: 可以通过内置的eval函数,eval功能就是把输入的字符串当作一个Python表达式求值1eval(str)

屯昌县15991573751: python中eval函数是怎么实现的?不要eval的作用,这我知道.求它的原理 -
斗庄血通: eval类似exec,是使用python编译器运行表达式和语句 两者区别在于:eval是编译表达式并返回值(如: eval("'hello'*2") 结果是 hellohello) exec则是运行一部分代码,并且不像eval那样返回结果,exec的返回值永远是None,且exec可运行多行代码(如: exec("l=[1,2,3]\nfor i in l:\nprint(i,end=',')") 输出为"1,2,3," 并且没有返回值)

屯昌县15991573751: 在Python中,定义函数的保留字是Del.() - 上学吧
斗庄血通: print(36+45=81).在python里面,print()函数是我们最先接触到的,它是一个输出函数.你可以用它来输出你想要的东西.

屯昌县15991573751: 请教几个python3.1的函数与方法的用法! -
斗庄血通: NO.1.insert()是对列表进行操作,insert,顾名思义,插入,在列表中插入,所以insert(i, x)就是在列表的第i个位置之前插入对应的value,这个value就是x,比如:>>> l = [0, 1, 2, 3]>>> l.insert(0, 9)>>> l[9, 0, 1, 2, 3]>>> #这个就是把9插入到l列表...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网