最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?eval()?函數(shù)看這一篇就夠了

 更新時間:2022年01月19日 15:22:28   作者:127.0.0.1/24  
eval(str)函數(shù)很強大,官方解釋為將字符串str當成有效的表達式來求值并返回計算結果,下面這篇文章主要給大家介紹了關于Python?eval()?函數(shù)的相關資料,需要的朋友可以參考下

一、語法和參數(shù)

在Python中evel()函數(shù)的語法格式為eval(expression, globals=None, locals=None),注意后面還有globals參數(shù)和locals參數(shù)。eval()函數(shù)用于執(zhí)行一個字符串表達式,并且返回該表達式的值。與eval相近的有exec函數(shù),該函數(shù)將會在另一篇文章詳細講解。

  • expression:表達式,上面提到evel函數(shù)用于執(zhí)行一個字符串表達式,表達式的內(nèi)容就放在此處。當表達式涉及到
  • globals:該部分必須是字典!必須是字典!必須是字典!否則程序會出錯。當定義了globals 參數(shù)之后eval函數(shù)的作用域會被限定在globals中。
  • locals:該參數(shù)掌控局部的命名空間,功能和globals類型,不過當參數(shù)沖突時,會執(zhí)行l(wèi)ocals處的參數(shù)。

二、expression參數(shù)示例

a=10;
print(eval("a+1"))

運行結果為11

【解析】:因為此處沒有指定globals和locals,所以直接執(zhí)行expression部分的內(nèi)容。該程序的效果等價于a=10 print(a+1)

三、globals參數(shù)示例

a=10;
g={'a':4}
print(eval("a+1",g))

運行結果為5

【解析】:因為現(xiàn)在指定了globals,所以在expression部分的作用域就是globals指定的字典范圍內(nèi)。所以此時外面的a=10被屏蔽,取用字典中的值。

四、locals參數(shù)示例

a=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
print(eval('a+b+c',g,t))

運行結果為116

【解析】:根據(jù)上面題目的練習我們知道了當有globals和locals時作用的范圍域是在globals和locals中,所以a=10,b=20,c=30不會被應用。a和c的值分別去字典g和字典t中的值,當globals和locals中都有參數(shù)b時取locals中的值。所以a=6,b=100,c=10

五、eval函數(shù)的危險之處

eval函數(shù)非常的方便,我們可以使用一行代碼就實現(xiàn)計算器的功能print(eval(input('請輸入')))。但是因為它具有可以將字符串轉成表達式執(zhí)行的特性,所以它也就可以去執(zhí)行系統(tǒng)命令。這樣很容易被別有用心的人用來執(zhí)行系統(tǒng)命令,刪除關鍵系統(tǒng)文件。

六、eval()函數(shù)官方文檔

   The arguments are a string and optional globals and locals. If provided, globals must be a 
dictionary. If provided, locals can be any mapping object.
   The expression argument is parsed and evaluated as a Python expression (technically speaking, 
a condition list) using the globals and locals dictionaries as global and local namespace. If the
globals dictionary is present and lacks ‘__builtins__', the current globals are copied into 
globals before expression is parsed. This means that expression normally has full access to the 
standard builtins module and restricted environments are propagated. If the locals dictionary is 
omitted it defaults to the globals dictionary. If both dictionaries are omitted, the expression 
is executed in the environment where eval() is called. The return value is the result of the 
evaluated expression. Syntax errors are reported as exceptions. Example:

>>> x = 1
>>> eval('x+1')
2

   This function can also be used to execute arbitrary code objects (such as those created by 
compile()). In this case pass a code object instead of a string. If the code object has been
compiled with 'exec' as the mode argument, eval()‘s return value will be None.
   Hints: dynamic execution of statements is supported by the exec() function. The globals() and 
locals() functions returns the current global and local dictionary, respectively, which may be 
useful to pass around for use by eval() or exec().
   See ast.literal_eval() for a function that can safely evaluate strings with expressions 
containing only literals.

附eval()函數(shù)常見作用有

1、計算字符串中有效的表達式,并返回結果

>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> eval("n + 4")
85

2、將字符串轉成相應的對象(如list、tuple、dict和string之間的轉換)

>>> a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>> b = eval(a)
>>> b
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
>>> a = "{1:'xx',2:'yy'}"
>>> c = eval(a)
>>> c
{1: 'xx', 2: 'yy'}
>>> a = "(1,2,3,4)"
>>> d = eval(a)
>>> d
(1, 2, 3, 4)

3、將利用反引號轉換的字符串再反轉回對象

>>> list1 = [1,2,3,4,5]
>>> `list1`
'[1, 2, 3, 4, 5]'
>>> type(`list1`)
<type 'str'>
>>> type(eval(`list1`))
<type 'list'>
>>> a = eval(`list1`)
>>> a
[1, 2, 3, 4, 5]

總結

到此這篇關于Python eval() 函數(shù)的文章就介紹到這了,更多相關Python eval() 函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python圖像處理之識別圖像中的文字(實例講解)

    Python圖像處理之識別圖像中的文字(實例講解)

    今天小編就為大家分享一篇Python圖像處理之識別圖像中的文字(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Pytorch實現(xiàn)List?Tensor轉Tensor,reshape拼接等操作

    Pytorch實現(xiàn)List?Tensor轉Tensor,reshape拼接等操作

    這篇文章主要介紹了Pytorch實現(xiàn)List?Tensor轉Tensor,reshape拼接等操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python實現(xiàn)錄音小程序

    python實現(xiàn)錄音小程序

    這篇文章主要為大家詳細介紹了python實現(xiàn)錄音小程序,實現(xiàn)錄音播放功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 基于Python實現(xiàn)成語填空游戲的示例代碼

    基于Python實現(xiàn)成語填空游戲的示例代碼

    成語填空想必大家都是十分熟悉的了,特別是有在上小學的家長肯定都有十分深刻的印象。當然了你也別小看了成語調(diào)控小游戲,有的時候知識儲備不夠,你還真的不一定猜得出來是什么。本文就來用Python編寫一個簡單的成語填空游戲,感興趣的可以了解下
    2023-02-02
  • 淺談Django Admin的初步使用

    淺談Django Admin的初步使用

    本文主要介紹了淺談Django Admin的初步使用 ,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Python中os.path模塊的8個神奇函數(shù)分享

    Python中os.path模塊的8個神奇函數(shù)分享

    在Python編程中,os.path模塊是一個非常重要的模塊,它提供了用于處理文件路徑和目錄的函數(shù),本文將介紹os.path模塊中最常用的8個內(nèi)置函數(shù),需要的可以參考下
    2023-11-11
  • python requests爬取高德地圖數(shù)據(jù)的實例

    python requests爬取高德地圖數(shù)據(jù)的實例

    今天小編就為大家分享一篇python requests爬取高德地圖數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python爬蟲之爬取筆趣閣小說升級版

    python爬蟲之爬取筆趣閣小說升級版

    筆趣有很多起點中文網(wǎng)的小說,該網(wǎng)站小說的更新速度稍滯后于起點中文網(wǎng)正版小說的更新速度。并且該網(wǎng)站只支持在線瀏覽,不支持小說打包下載。所以可以通過python爬取文本信息保存,從而達到下載的目的
    2021-09-09
  • Python讀取指定目錄下指定后綴文件并保存為docx

    Python讀取指定目錄下指定后綴文件并保存為docx

    這篇文章主要介紹了Python讀取指定目錄下指定后綴文件并保存為docx,需要的朋友可以參考下
    2017-04-04
  • python定向爬蟲校園論壇帖子信息

    python定向爬蟲校園論壇帖子信息

    這篇文章主要為大家詳細介紹了Python定向爬蟲校園論壇帖子信息的相關方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

张家川| 新丰县| 灵宝市| 涞源县| 肇州县| 宁国市| 晋州市| 海城市| 武山县| 化州市| 深圳市| 济源市| 滨海县| 梓潼县| 宿松县| 平顶山市| 华亭县| 临湘市| 巧家县| 松江区| 长岛县| 资溪县| 乐山市| 揭东县| 兴隆县| 瑞金市| 翁源县| 宁德市| 平舆县| 繁峙县| 峨边| 余干县| 乌兰察布市| 乌拉特后旗| 东海县| 瑞金市| 武邑县| 阜城县| 牟定县| 丹江口市| 吴旗县|