python中eval函数的用法详解

Python中eval的用法:Python eval()函数的功能:将字符串str当成有效的表达式来求值并返回计算结果。语法:eval(source[,globals[,locals]]) -> value 参数:source:一个Python表达式或函数compile()返回的代码对象。blobals:可选。必须是dictionary locals:可选。任意map对象 如果提供了globals参数,那么...
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。
2023-03-20
可以把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, world2022-07-24
mengvlog 阅读 101 次 更新于 2025-10-30 16:54:58 我来答关注问题0
  •  hy1397471 Python问题 为什么说不要用eval函数直接转换input() 的结果?

    eval('x+1')eval('x==1')与之对应的repr函数,它能够将Python的变量和表达式转换为字符串表示:repr(x+1)repr(x+ ‘1’-1)('x=+=1')Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为...

  •  深空见闻 evaluate函数的用法

    Python中的eval()函数:用于执行字符串形式的Python表达式并返回结果,支持数学运算、函数调用等。基础用法如result = eval("10 + 20 * 3")会输出70;也可调用函数,如定义add函数后,result = eval("add(5, 3)")会输出8。不过仅支持单行代码,复杂逻辑建议封装为函数。Excel...

  • 4、eval函数主要是用来实现python中各种数据类型与str之间的转换。字符串中包含的什么,通过eval函数就可以输出什么。比如字符串里面包含的字典就输出字典,包含的列表就输出列表,但是字符串相应的格式一定要输入正确,否则会报错。5、eval可以轻松实现,将字符串转换成:列表、元组、字典。eval函数的特点及作...

  •  HB91011 pythonprint(eval("1"+"1"))为什么是

    执行pythonprint(eval("1"+"1"))输出结果为2。这是因为在Python中,字符串可以通过"+"运算符进行拼接,例如"1"+"1"的结果为"11"。而eval()函数可以将字符串表达式转换为相应的对象并计算表达式的值。在执行eval("1"+"1")时,会先将字符串"1"+"1"拼接为"11",然后通过eval()函数将其转换...

  •  老男孩KISS eval(“true”)出错是为什么?

    在 Python 中,eval() 函数用于执行一个字符串表达式,并返回表达式的值。如果表达式语法正确,那么 eval() 函数会正常执行并返回计算结果。但是,如果表达式语法不正确,那么 eval() 函数将会出错并引发异常。在这个问题中,如果将字符串 "true" 作为参数传递给 eval() 函数,它会尝试计算字符串中的...

檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部