>>x ">
IT培訓(xùn)網(wǎng)
IT在線(xiàn)學(xué)習(xí)
Python解釋器內(nèi)置了許多函數(shù),這意味著我們無(wú)需定義,始終可以它們。下面按照函數(shù)的字母順序,討論一些常用的內(nèi)建函數(shù)。
eval()
eval()函數(shù)解析傳給它的表達(dá)式,并在程序中運(yùn)行Python表達(dá)式(代碼)。舉個(gè)例子:
- >>> x = 1
- >>> eval("x + 1") # 注意:"x + 1"是字符串
- 2
- >>> eval("4 < 9")
- True
- >>> eval("'py' * 3")
- 'pypypy'
- >>> eval("10 ** 2")
- 100
eval()函數(shù)不僅僅能運(yùn)行簡(jiǎn)單表達(dá)式,還能調(diào)用函數(shù),使用方法等等:
- >>> eval("abs(-11)") # 計(jì)算-11的絕對(duì)值
- 11
- >>> eval('"hello".upper()') # 把字符串'hello'全變成大寫(xiě)字母
- 'HELLO'
- >>> import os
- >>> eval('os.getcwd()') # 獲取當(dāng)前的工作目錄
- '/home/thepythonguru'
但是需要注意的是eval()僅適用于表達(dá)式,嘗試傳遞語(yǔ)句會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤:
- >>> eval('a = 1') # 賦值語(yǔ)句
- Traceback (most recent call last):
- File "
" , line 1, in- File "
" , line 1- a = 1
- ^
- SyntaxError: invalid syntax
- >>> eval('import re') # 導(dǎo)入語(yǔ)句
- Traceback (most recent call last):
- File "
" , line 1, in- File "
" , line 1- import re
- ^
- SyntaxError: invalid syntax
此外,使用eval()語(yǔ)句應(yīng)該十分小心,永遠(yuǎn)不要將不受信任的源直接傳遞給eval()。 因?yàn)閻阂庥脩?hù)很容易對(duì)您的系統(tǒng)造成破壞。 例如:
- >>> eval(input()) # eval()將執(zhí)行用戶(hù)輸入的代碼
用戶(hù)輸入以下代碼就能從系統(tǒng)中刪除所有文件:
- os.system("RM -RF /")
- # 上面輸入相當(dāng)于執(zhí)行:
- >>> 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è)例子:
- >>> a = [1, 2, 3, 4, 5, 6]
- >>> filter(lambda x : x % 2 == 0, a) # 過(guò)濾出所有偶數(shù),結(jié)果返回一個(gè)filter對(duì)象
0x1036dc048 >- >>> list(filter(lambda x : x % 2 == 0, a)) # 可以使用list()函數(shù)使fileter對(duì)象變成列表,方便查看結(jié)果
- [2, 4, 6]
下面是另外一個(gè)例子:
- >>> dict_a = [{'name': 'python', 'points': 10}, {'name': 'java', 'points': 8}]
- >>> filter(lambda x : x['name'] == 'python', dict_a) # 過(guò)濾出列表中鍵'name'為值'python'的字典
0x1036de128 >- >>> tuple(filter(lambda x : x['name'] == 'python', dict_a)) # 使用tuple()函數(shù)使結(jié)果變成字典
- ({'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。
- >>> float('+1.23') # 1.23
- 1.23
- >>> float(' -12345\n') # -12345
- -12345.0
- >>> float('1e-003') # 0.001
- 0.001
- >>> float('+1E6') # 10的6次冪
- 1000000.0
- >>> float('-Infinity') # 無(wú)窮小
- -inf
- >>> float('-inf') + 100 # 負(fù)無(wú)窮小加100仍等于負(fù)無(wú)窮小
- -inf
- >>> float('inf') # 無(wú)窮大
- inf
- >>> float('NaN') # NaN,代表非數(shù)字
- nan
>>本文地址:http://m.yiyunku.cn/zhuanye/2020/48543.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢(xún)/試聽(tīng)07月15日Python+人工智能
咨詢(xún)/試聽(tīng)07月15日Web前端
咨詢(xún)/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢(xún)/試聽(tīng)07月15日大數(shù)據(jù)
咨詢(xún)/試聽(tīng)07月15日Java
咨詢(xún)/試聽(tīng)07月15日Python+人工智能
咨詢(xún)/試聽(tīng)07月15日Web前端
咨詢(xún)/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢(xún)/試聽(tīng)07月15日大數(shù)據(jù)
咨詢(xún)/試聽(tīng)