码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记7-高级迭代器

时间:2015-05-20 13:01:19      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

将任何字符串作为python表达式求值:

eval()方法:

eval(source[, globals[, locals]]) -> value
Evaluate the source in the context of globals and locals.
The source may be a string representing a Python expression
or a code object as returned by compile().
The globals must be a dictionary and locals can be any mapping,
defaulting to the current globals and locals.
If only globals is given, locals defaults to it.

用法:

>>> eval(‘1+1==2‘)
True
>>> eval(‘1+1==3‘)
False
>>> eval(‘9567+1085 == 10652‘)
True
>>> eval(‘"A"+"B"‘)
‘AB‘
>>> eval(‘"MARK".translate({65:79})‘)
‘MORK‘
>>> eval(‘"AAAAA".count("A")‘)

 

>>> eval("x*5",{}, {})
Traceback (most recent call last):
  File "<pyshell#120>", line 1, in <module>
    eval("x*5",{}, {})
  File "<string>", line 1, in <module>
NameError: name ‘x‘ is not defined

>>> eval("x*5",{"x":x},{})
25

>>> import math
>>> eval("math.sqrt(x)",{"x":x},{})
Traceback (most recent call last):
  File "<pyshell#123>", line 1, in <module>
    eval("math.sqrt(x)",{"x":x},{})
  File "<string>", line 1, in <module>
NameError: name ‘math‘ is not defined

 注:

给eval()函数传递的第二、第三个参数担当了求值表达式是全局和局部名字空间的角色

eval()是不安全的,为了安全的求值不受信任的表达式,需要定义一个将"__builtins__"映射为none的全局名字空间字典。在内部,“内建”函数包含在一个叫“__builtins__"的伪模块内。

 

re.findall() -- 返回字符串中所有字母

set() --  返回字符串中所有不同的字母

 

Python学习笔记7-高级迭代器

标签:

原文地址:http://www.cnblogs.com/summerlong/p/4516689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!