Python-eval()函式

spring_willow發表於2018-04-27

記錄一下今天讀程式碼時新學的函式eval()


1.功能

eval()函式用於執行字串表示式,並返回表示式的值。表示式的定義是由常量、變數、函式、運算子及圓括號組成的有意義的式子。

2.完整語法格式

eval(expression,globals=None, locals=None

expression:字串表示式
globals:不為None時必須是字典物件
locals:不為None時可以是任何對映物件

3.使用例項

  • 例項①:
    In[1]: eval(‘1+2’)
    Out[1]: 3

  • 例項②:
    In[2]: x=2
    In[3]: eval(‘pow(2,x)’)
    Out[2]: 4

  • 例項③
    In[4]: eval(‘[x for x in range(9)]’)
    Out[4]: [0, 1, 2, 3, 4, 5, 6, 7, 8]


擴充套件說明

eval()可以實現list、dict、tuple與str之間的轉化,在工作中會經常使用到該功能。

  • 例項①:將字串轉化成列表
a = "[[1,2], [3,4], [5,6]]"
type(a)
#Out[1]: <type 'str'>

b = eval(a)
print b
#Out[2]:[[1, 2], [3, 4], [5, 6]]

type(b)
#Out[3]:<type 'list'>

  • 例項②:將字串轉化成字典
a = "{1: 'a', 2: 'b'}"
type(a)
#Out[1]:<type 'str'>

b = eval(a)
print b
#Out[2]:{1: 'a', 2: 'b'}

type(b)
#Out[3]:<type 'dict'>
  • 例項③:將字串轉化成元組
a = "([1,2], [3,4], [5,6])"
type(a)
#Out[1]:<type 'str'>

b=eval(b)
print(b)
#Out[2]:([1,2], [3,4], [5,6])

type[b]
#Out[3]:<type 'tuple'>

通過觀察得知eval()函式的結果就是將括號裡面的內容去掉了引號,這樣就好easy了~

相關文章