>>x "> 亚洲欧美日韩成人综合一区久久,日本丰满老妇bbw
400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】eval()、filter()、float()函數(shù)使用說明

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

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

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

eval()

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

  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ù)不僅僅能運行簡單表達式,還能調(diào)用函數(shù),使用方法等等:

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

但是需要注意的是eval()僅適用于表達式,嘗試傳遞語句會導致語法錯誤:

  1. >>> eval('a = 1')                    # 賦值語句 
  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')             # 導入語句 
  9. Traceback (most recent call last): 
  10. File "", line 1in  
  11. File "", line 1 
  12. import re 
  13. SyntaxError: invalid syntax 

此外,使用eval()語句應該十分小心,永遠不要將不受信任的源直接傳遞給eval()。 因為惡意用戶很容易對您的系統(tǒng)造成破壞。 例如:

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

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

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

filter()

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

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

下面是另外一個例子:

  1. >>> dict_a = [{'name''python''points'10}, {'name''java''points'8}] 
  2. >>> filter(lambda x : x['name'] == 'python', dict_a)  # 過濾出列表中鍵'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ù)是一個數(shù)字或者字符串,它返回一個浮點數(shù)。如果參數(shù)是字符串,則字符串中應該包含一個數(shù)字,并可以在數(shù)字前加入一個 '-' 符號,代表負數(shù)。參數(shù)也可以是表示NaN(非數(shù)字)或正無窮大的字符串。如果沒有任何參數(shù)的話,將返回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')     # 無窮小 
  10. -inf 
  11. >>> float('-inf') + 100     # 負無窮小加100仍等于負無窮小 
  12. -inf 
  13. >>> float('inf')           # 無窮大 
  14. inf 
  15. >>> float('NaN')           # NaN,代表非數(shù)字  
  16. nan 

 

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

>>本文地址:http://hqfphsz.com/zhuanye/2020/48543.html

THE END  

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

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

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

快速通道fast track

近期開班時間TIME