1. 程式人生 > >函數基礎:內置函數

函數基礎:內置函數

數字 .so 表達式 tps details items msg 測試 and

內置函數:

abs() # 取絕對值

dict() # 把一個數據轉成字典

min() # 取最小值

max() # 取最大值

bool() # 判斷括號裏面的是不是True。bool(0)和bool(False)是False,bool([ ]) #布爾一個空列表也是False。

all() # 判斷括號裏面的iterables所有元素的bool()是不是True(如果這個iterables裏面含有0,那all(iterables)肯定是False)。如果這個iterables是空的,all(iterables)也返回True。

any() # 判斷括號裏面的iterables的元素中,只要有一個元素的bool()是True, any(iterables)就返回True

dir() # 打印程序裏面所有的變量

slice(開始,結束,步長) #設置切片規則

divmod(x,y) # 返回一個元祖,元祖的形式是(x//y ,x%y)

id() # 判斷內存地址

sorted(列表)= 列表.sort() # 另外,sorted()還可以自定義一些排序的規則。(視頻中的示例看的不是很明白)

enumerate() #枚舉

bin() # 轉成2進制

eval() # 將字符串str當成有效的表達式來求值並返回計算結果(只能處理單行代碼)。 可以參考鏈接: http://blog.csdn.net/SeeTheWorld518/article/details/47983511

exec() # 功能和eval()一樣,他們的區別在: 1. exec()可以對多行代碼有效;2. eval()有返回值,但exec()沒有返回值。

如:

情況1:
a = 1+2+3
res1 = eval(a)  # eval()有返回值,前面可以把返回值賦給變量
print(res:,res1)
print(a)

# 輸出結果:
# res: 6
# 1+2+3   #字符串的引號已經沒了

情況2:
a = 1+2+3
res2 = exec(a)  # 沒有返回值,
print(res:,res2)
print(a)

# 輸出結果:
# res: None   # 由於exec()沒有返回值,賦給了變量也只能輸出None
# 1+2+3

ord() # 返回在ASCII碼中的位置 如:ord(‘a‘) 為97

chr() # 跟ord()正好相反 如: chr(97) 為‘a‘

int() # 把其他類型數據轉換成整數

str() # 把其他類型數據轉換成字符串

float() # 轉換成浮點型

sum() #求和

bytearray( ) # 可以將字符串轉換成字節數組(通過這種方式可以修改原字符串)。 其他用法用法可參考: https://www.cnblogs.com/sesshoumaru/p/5979159.html

如: (用處不多)

s = 中文
s1 = bytearray(s,utf-8)   #轉換字符串的時候必須指明encoding,函數將字符串使用str.encode方法轉換成字節數組
print(s1)

# 輸出結果:
# bytearray(b‘\xe4\xb8\xad\xe6\x96\x87‘)

map(function,iterables) # 將iterables中的每個元素進行前面的function

如:

print(list(map(lambda x:x*x, [1,2,3,4,5])))  # map完後要把它list一下,要不然打印的是map的內存地址

# 輸出結果:
# [1, 4, 9, 16, 25]

filter(function,iterables) # 從iterables中過濾出能使前面函數為True的值。

如:

print(list(filter(lambda x:x>3, [1,2,3,4,5])))  # filter完之後要list一下

# 輸出結果:
# [4, 5]

reduce() (2.7Python)

Python3中的reduce移到了functools裏面, 用法: reduce(function, sequence, initial=None) # --> value,

python3官方解釋: Apply a function of two arguments cumulatively to the items of a sequence,from left to right, so as to reduce the sequence to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). If initial is present, it is placed before the itemsof the sequence in the calculation, and serves as a default when the sequence is empty.

如:

import functools
print(functools.reduce(lambda x,y:x*y, [1,2,3,4]))

#輸出結果:
#24

import functools
print(functools.reduce(lambda x,y:x*y, [1,2,3,4],10))

#輸出結果:
#240

import functools
print(functools.reduce(lambda x,y:x*y, [ ],5))

#輸出結果: 
# 5

pow(x,y) # x的y次方

print(value,......,sep = ‘ 空格 ‘,end= ‘\n‘, file = None) # print的括號裏面默認有一個end=‘\n‘ (換行符),如果你不想print完之後換行,可以在end=‘x‘裏面換成你想以什麽結束打印的符號,什麽都不寫也可以 ;還默認有一個空格,這個空格裏面的內容也可以修改(sep是separate的縮寫)。

如:

print(hahaha,哈哈哈, sep=-->, end=|)

# 打印結果:
# hahaha-->哈哈哈|    

print也可以把內容直接打印在文件中。如:

msg = 又回到最初的起點,加油
f = open(print測試,w)
print(msg,記憶中你青澀的臉,sep=|,end=‘‘,file=f)  # 裏面的內容都打印在了文件中

# print結果:
# msg和“記憶中你青澀的臉” 都寫在了文件‘print測試’裏面了。

tuple() #變成元祖

callable() #判斷是否可調用 (列表、字符串等的結果是False,函數的輸出結果是True。所以可以用這個判斷一個變量是不是函數)

frozenset( ) #是一個集合不可修改

vars() # 打印當前所有的變量名和其對應的值,dir()只能打印變量名

locals() # 通常在函數內部運行,打印函數內部所有的局部變量

globals() # 打印全局變量,不管globals()是在函數內還是函數外運行

zip(list1,list2) # 可以使兩個列表中的值一一對應起來放入一個小元祖內

round(數字,n) # round是約等於(五舍六入),保留小數點後n位;

hash() # 把要哈希的內容變成一個數字

set() # 變成集合

函數基礎:內置函數