課堂練習:eval()、in()

eval的語法:python

eval(expression[, globals[, locals]])

>>參數
expression -- 表達式。
globals -- 變量做用域,全局命名空間,若是被提供,則必須是一個字典對象。特指當前的模塊。若是模塊定義了一個名爲 x 的變量,函數或類,Python 將使用它而後中止搜索。
locals -- 變量做用域,局部命名空間,若是被提供,能夠是任何映射對象。特指當前函數或類的方法。若是函數定義了一個局部變量 x, 或一個參數 x,Python 將使用它,而後中止搜索。
>>返回值
返回表達式計算結果。express

能夠把list,tuple,dict和string相互轉化。
#################################################
字符串轉換成列表
>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>>type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
>>> type(b)
<type 'list'>
#################################################
字符串轉換成字典
>>> a = "{1: 'a', 2: 'b'}"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
{1: 'a', 2: 'b'}
>>> type(b)
<type 'dict'>
#################################################
字符串轉換成元組
>>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
>>> type(b)
<type 'tuple'>

eval()使用緣由:服務器

1)在編譯語言裏要動態地產生代碼,基本上是不可能的,但動態語言是能夠,意味着軟件已經部署到服務器上了,但只要做不多的更改,只好直接修改這部分的代碼,就可當即實現變化,不用整個軟件從新加載。
2)在machin learning里根據用戶使用這個軟件頻率,以及方式,可動態地修改代碼,適應用戶的變化。函數

全局變量與局部變量:code

in()判斷你在不在宿舍成員裏面。對象

修改上面一道題的內容,實現能夠循環輸入姓名檢查,提示,採用while:blog

相關文章
相關標籤/搜索