>>x "> 一品道一卡二卡三卡手机,国产精选裸身美女,91popny丨国产九色
400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > python > 【Python基礎(chǔ)知識(shí)】eval()、filter()、float()函數(shù)使用說(shuō)明

【Python基礎(chǔ)知識(shí)】eval()、filter()、float()函數(shù)使用說(shuō)明

  • 發(fā)布: python培訓(xùn)
  • 來(lái)源:python干貨資料
  • 2020-03-27 16:08:17
  • 閱讀()
  • 分享
  • 手機(jī)端入口

Python解釋器內(nèi)置了許多函數(shù),這意味著我們無(wú)需定義,始終可以它們。下面按照函數(shù)的字母順序,討論一些常用的內(nèi)建函數(shù)。

eval()

eval()函數(shù)解析傳給它的表達(dá)式,并在程序中運(yùn)行Python表達(dá)式(代碼)。舉個(gè)例子:

  1. >>> x = 1 
  2. >>> eval("x + 1")  # 注意:"x + 1"是字符串 
  3. 2 
  4. >>> eval("4 < 9"
  5. True 
  6. >>> eval("'py' * 3"
  7. 'pypypy' 
  8. >>> eval("10 ** 2"
  9. 100 

eval()函數(shù)不僅僅能運(yùn)行簡(jiǎn)單表達(dá)式,還能調(diào)用函數(shù),使用方法等等:

  1. >>> eval("abs(-11)")        # 計(jì)算-11的絕對(duì)值 
  2. 11 
  3. >>> eval('"hello".upper()')   # 把字符串'hello'全變成大寫(xiě)字母 
  4. 'HELLO' 
  5. >>> import os                 
  6. >>> eval('os.getcwd()')       # 獲取當(dāng)前的工作目錄 
  7. '/home/thepythonguru' 

但是需要注意的是eval()僅適用于表達(dá)式,嘗試傳遞語(yǔ)句會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤:

  1. >>> eval('a = 1')                    # 賦值語(yǔ)句 
  2. Traceback (most recent call last): 
  3.   File "", line 1in  
  4.   File "", line 1 
  5.     a = 1 
  6.       ^ 
  7. SyntaxError: invalid syntax 
  8. >>> eval('import re')             # 導(dǎo)入語(yǔ)句 
  9. Traceback (most recent call last): 
  10. File "", line 1in  
  11. File "", line 1 
  12. import re 
  13. SyntaxError: invalid syntax 

此外,使用eval()語(yǔ)句應(yīng)該十分小心,永遠(yuǎn)不要將不受信任的源直接傳遞給eval()。 因?yàn)閻阂庥脩?hù)很容易對(duì)您的系統(tǒng)造成破壞。 例如:

  1. >>> eval(input())  # eval()將執(zhí)行用戶(hù)輸入的代碼 

用戶(hù)輸入以下代碼就能從系統(tǒng)中刪除所有文件:

  1. os.system("RM -RF /"
  2. # 上面輸入相當(dāng)于執(zhí)行: 
  3. >>> eval('os.system("RM -RF /")')    

filter()

"filter"的意思是“過(guò)濾”,filter()函數(shù)需要兩個(gè)參數(shù):一個(gè)函數(shù)對(duì)象和一個(gè)可迭代對(duì)象。函數(shù)對(duì)象需要返回一個(gè)布爾值,并為可迭代的每個(gè)元素調(diào)用。 filter()函數(shù)僅返回那些通過(guò)函數(shù)對(duì)象返回值為true的元素。解釋有一些抽象,看一個(gè)例子:

  1. >>> a = [123456
  2. >>> filter(lambda x : x % 2 == 0, a)        # 過(guò)濾出所有偶數(shù),結(jié)果返回一個(gè)filter對(duì)象 
  3. 0x1036dc048
  4. >>> list(filter(lambda x : x % 2 == 0, a))  # 可以使用list()函數(shù)使fileter對(duì)象變成列表,方便查看結(jié)果 
  5. [246

下面是另外一個(gè)例子:

  1. >>> dict_a = [{'name''python''points'10}, {'name''java''points'8}] 
  2. >>> filter(lambda x : x['name'] == 'python', dict_a)  # 過(guò)濾出列表中鍵'name'為值'python'的字典 
  3. 0x1036de128
  4. >>> tuple(filter(lambda x : x['name'] == 'python', dict_a))  # 使用tuple()函數(shù)使結(jié)果變成字典 
  5. ({'name''python''points'10},) 

float()

float()的參數(shù)是一個(gè)數(shù)字或者字符串,它返回一個(gè)浮點(diǎn)數(shù)。如果參數(shù)是字符串,則字符串中應(yīng)該包含一個(gè)數(shù)字,并可以在數(shù)字前加入一個(gè) '-' 符號(hào),代表負(fù)數(shù)。參數(shù)也可以是表示NaN(非數(shù)字)或正無(wú)窮大的字符串。如果沒(méi)有任何參數(shù)的話(huà),將返回0.0。

  1. >>> float('+1.23')         # 1.23 
  2. 1.23 
  3. >>> float('   -12345\n')   # -12345 
  4. -12345.0 
  5. >>> float('1e-003')        # 0.001 
  6. 0.001 
  7. >>> float('+1E6')          # 10的6次冪 
  8. 1000000.0 
  9. >>> float('-Infinity')     # 無(wú)窮小 
  10. -inf 
  11. >>> float('-inf') + 100     # 負(fù)無(wú)窮小加100仍等于負(fù)無(wú)窮小 
  12. -inf 
  13. >>> float('inf')           # 無(wú)窮大 
  14. inf 
  15. >>> float('NaN')           # NaN,代表非數(shù)字  
  16. nan 

 

文章“【Python基礎(chǔ)知識(shí)】eval()、filter()、float()函數(shù)使用說(shuō)明”已幫助

>>本文地址:http://m.nfbqydst.cn/zhuanye/2020/48543.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷(xiāo)互聯(lián)網(wǎng)營(yíng)銷(xiāo)
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開(kāi)發(fā)智能機(jī)器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME