1. 程式人生 > >Python小白學習之路(十六)—【內置函數一】

Python小白學習之路(十六)—【內置函數一】

tro item 求和 整數 Coding rop 數學運算 memory 保留

技術分享圖片

將68個內置函數按照其功能分為了10類,分別是:

  • 數學運算(7個)
    • abs()   divmod()   max()    min()   pow()   round()    sum()
  • 類型轉換(24個)
    • bool()    int()   float()   complex()    str()   bytearray()
    • bytes()   memoryview()   ord()   chr()   bin()   oct()   hex()
    • tuple()   list()   dict()   set()   frozenset(  ) enumerate()
    • range()   iter()   slice()   supper()   object()
  • 序列操作(8個)
    • all()   any()   filter()   map()   next()   reversed()   sorted()   zip()
  • 對象操作(7個)
    • help() dir() id() hash() type() len() ascii() format() vars()
  • 反射操作(8個)
    • _import__() isinstance() issubclass() hasattr() getattr() setattr() delattr() callable()
  • 變量操作(2個)
    • globals() locals()
  • 交互操作(2個)
    • print() input()
  • 文件操作(1個)
    • open()
  • 編譯執行(4個)
    • compile() eval() exec() repr()
  • 裝飾器(3個)
    • property() classmethod() staticmethod()


一、數學運算類(7個)

abs()

  • Return the absolute value of the argument.取絕對值
print(abs(-1))
#執行結果
1

divmod()

  • divmod(x, y) -> Return the tuple (x//y, x%y).返回商和余數
print(divmod(5, 2))
#執行結果
(2, 1)

max()

  • 返回最大值
  • 處理的對象為可叠代對象
  • (相當於一個for循環取出每一個元素進行比較)
  • 不同類型之間是不能進行比較的
  • 每個元素進行比較時,是從每個元素的第一個位置開始依次比較
  • (如果一個位置分出大小,後面的位置可以不用進行比較便可以得出比較結果)
#用法一:
num_1 = [1,38,2,0,4,7]
print(max(num_1))

#用法二:傳入對象為字典,默認比較的是字典的key
age_dic={age1:14, age2:3, age3:45, age1:18} 
print(max(age_dic)) 
print(max(age_dic.values())) # 比較的是字典的values
#執行結果
age4
45

用法三:
任務:
將給定名單中年齡最大的找出來

people_list = [
{name:xhg,age:18},
{name:aaa,age:10},
{name:bbb,age:30},
{name:ccc,age:14},
]
print(max(people_list, key = lambda dic:dic[age]))
#執行結果
{name: bbb, age: 30}
‘‘‘
#程序分析
#這段代碼的理解 max(people_list, key = lambda dic:dic[‘age‘],實際上進行了這樣一個操作
ret = []
for item in people_list:
ret.append(item[‘age‘])
print(max(ret))
‘‘‘

min()

  • 返回可叠代對象的元素中的最小值或者所有參數的最小值
  • 具體用法同max()函數


pow()

  • Equivalent to x**y (with two arguments) or x**y % z (with three arguments)
  • 兩個參數,做冪運算
  • 三個參數,先做冪運算,再取余
print(pow(2,3))
#執行結果
8
print(pow(2,3,3))
#執行結果
2

round()

  • 對浮點數進行四舍五入求值
  • 第二個參數為可選參數,如果不填默認取整,參數代表保留的位數
print(round(3.1415926))
print(round(3.1415926, 3))
#執行結果
3
3.142

sum()

  • 對可叠代對象中的每個元素求和
  • 可叠代對象中的元素類型是數值
print(sum([1, 2, 3, 4, 5]))
#執行結果
15

二、類型轉換(24個)

bool()

  • 根據傳入的參數的邏輯值創建一個新的布爾值
  • None ‘‘ () {} [] 0 ==>False
  • 其余 ==>True
print(bool(None))
print(bool(xhg))
#執行結果
False
True

int()

  • 根據傳入的參數創建一個整數
print(int(123)) #將字符串轉化為整形
print(int(123.9)) #取整

#執行結果
123
123

float()

根據傳入的參數創建一個新的浮點數

print(float(123.78))    #將字符串轉化為浮點型
print(float(123))    #將整形轉換成浮點型

#執行結果
123.78
123.0

complex()

  • 根據傳入參數創建一個新的復數
  • 有兩個參數:
  • 第一個參數是實部;第二個參數是虛部
  • 不填參數,默認輸出為 0j
  • 只填一個參數 a,則輸出 a + 0j
print(complex())
print(complex(1))
print(complex(1, 2))

#執行結果
0j
(1+0j)
(1+2j)

str()

  • 將目標參數轉化為字符串
print(str(123))
print(type(str(123)))
print(str([1, 2, 3, 4, xhg]))
print(type(str([1, 2, 3, 4, xhg])))

#執行結果
123
<class str>
[1, 2, 3, 4, xhg]
<class str>

bytearray()

  • 根據傳入的參數創建一個新的字節數組
  • 可傳入的參數:
    • 字符串(使用指定編碼方式編碼);bytearray()然後使用str.encode()將字符串轉換為字節。
    • 如果它是一個整數,那麽數組將具有這個大小,並將用null字節初始化。
    • 如果它是符合緩沖區接口的對象,則將使用對象的只讀緩沖區來初始化字節數組。
    • 如果它是可叠代的,那麽它必須是range 0 < = x < 256的整數的叠代,它被用作數組的初始內容

a = bytearray(小夥郭, encoding = utf -8 ) #字符串需要指定編碼方式
print(a, len(a))
b = bytearray(小夥郭, encoding = gbk )
print(b, len(b))
c = bytearray([1,2,3,255]) #如果元素大於255,將會報錯
print(c, len(c))

#執行結果
bytearray(b\xe5\xb0\x8f\xe4\xbc\x99\xe9\x83\xad) 9
bytearray(b\xd0\xa1\xbb\xef\xb9\xf9) 6
bytearray(b\x01\x02\x03\xff) 4

bytes()

  • 根據傳入的參數創建一個新的不可變字節數組
  • 具體用法及傳入的參數同函數bytearray()

ord()

chr()

  • 返回Unicode字符對應的整數
  • 返回整數所對應的Unicode字符
print(ord(d))
print(chr(100))
#執行結果
100
d

bin()整數-->2進制字符串
oct()整數-->8進制數字符串
hex()整數-->16進制字符串

print(bin(5))
print(oct(10))
print(hex(15))

#執行結果
0b101
0o12
0xf

tuple()

  • 根據傳入的參數創建一個新的元組
  • 傳入的參數為空或者是可叠代對象
print(tuple())
print(tuple(123456))
print(tuple([1, 2, a, b]))

#執行結果
()
(1, 2, 3, 4, 5, 6)
(1, 2, a, b)

list()

  • 根據傳入的參數創建一個新的列表
  • 傳入的參數為空或者是可叠代對象
print(list())
print(list(123456))
print(list([1, 2, a, b]))

#執行結果
[]
[1, 2, 3, 4, 5, 6]
[1, 2, a, b]


dict()

  • 根據傳入的參數創建一個新的字典
  • 可以由下列四種方式傳入參數:
    • 不傳入參數,建立空字典
    • 通過映射函數創建字典
    • 通過鍵值對來創建字典
    • 通過可叠代對象來創建字典

print(dict())
print(dict(zip([key1, key2],[1, 2])))
print(dict(key1 = a, key2 = b))
print(dict([[key1,1], [key2,b]]))

#執行結果
{}
{key1: 1, key2: 2}
{key1: a, key2: b}
{key1: 1, key2: b}

set()

  • 根據傳入的參數創建一個新的集合
  • set() -> new empty set object
  • set(iterable) -> new set object

print(set())
print(set(123456))
print(set([1,2,3,a,b]))

#執行結果
set()
{3, 1, 6, 2, 5, 4}
{1, 2, 3, b, a}

frozenset()

  • 根據傳入的參數創建一個新的不可變集合
print(frozenset())
print(frozenset(123456))

frozenset()
frozenset({5, 1, 4, 3, 6, 2})

range()

  • 根據傳入的參數創建一個新的range對象
  • python3裏面,需要通過for循環來創建range()每一個元素
  • range(a,b)-->左閉右開
  • range(stop) -> range object
  • range(start, stop[, step]) -> range object
for item in range(5):
print(item)
for item in range(10, 15):
print(item)
for item in range(0, 100, 20):
print(item)

#執行結果
0 1 2 3 4 
10 11 12 13 14
0 20 40 60 80

寫在後面:

內置函數總結好多哦

今天眼睛看電腦時間太長了 累

明天繼續總結吧

今天也就總結了一半的樣子

最近發現之前的知識有些忘記了

需要返回去再看看了

開題報告寫的不是很好 今天老師要求重新寫

好好加油吧

明天就是周末啦 可以粗去吃好吃的 放松放松

更重要的 雙11 買買買

Python小白學習之路(十六)—【內置函數一】