1. 程式人生 > >Python3 基礎函式學習——內建函式(1) 從abs()到divmod()

Python3 基礎函式學習——內建函式(1) 從abs()到divmod()

今天學習Python3的基礎函式。
首先學習Python3的內建函式。Python3的內建函式一共有67個。(注:python2中的比較函式cmp()在python3中被取消,需引入operator模組。故本文不再提。)本文先學習17個內建函式。

  • 1 abs() 函式
    abs()函式為取絕對值的函式。
>>> abs(-3)  ## abs()為取絕對值的函式
3
  • 2 all()函式any()函式
    all() 函式用於判斷給定的可迭代引數 iterable 中的所有元素是否不為 0、”、False 或者 iterable 為空,如果是返回 True,否則返回 False。
    any() 函式用於判斷給定的可迭代引數 iterable 是否全部為空物件,如果都為空、0、false,則返回 False,如果不都為空、0、false,則返回 True。
>>> ## 對於list物件,all()含有空/0 則為false;any()都不為空/0/false則為True
>>> print(all([1,2,4,3]),all([1,2,'',3]),any([1,2,'',3]),all([1,2,0,3]),any([1,2,0,3]),any([0,0,''])) 
True False True False True False
>>>
>>> ##對於元組物件,則針對元組裡的物件
>>> print(all(('a','b','c','d')),all(('a'
,'b','','d')),all((1,0,2,3))) True False False >>> ## any()同理
  • 3 ascii()函式
    ascii() 函式類似 repr() 函式, 返回一個表示物件的字串, 但是對於字串中的非 ASCII 字元則返回通過 repr() 函式使用 \x, \u 或 \U 編碼的字元。 生成字串類似 Python2 版本中 repr() 函式的返回值。
>>> ascii('u\abstract')
"'u\\x07bstract'"
>>> ascii('runoob')
"'runoob'"
  • 4 bin()函式
    bin() 返回一個整數 int 或者長整數 long int 的二進位制表示。
>>> bin(10)
'0b1010'
>>> bin(20)
'0b10100'
  • 5 bool()函式
    bool() 函式用於將給定引數轉換為布林型別,如果沒有引數,返回 False。
    bool 是 int 的子類。
>>> print(bool(),bool(0),bool(1),bool(2))
False False True True
>>> issubclass(bool, int)  # bool 是 int 子類
True
>>> print(bool(('',0)), bool(('','')), bool((0,0)), bool(('')), bool((0))))
True True True False False
  • 6 bytearray()函式和bytes()函式
    bytearray() 方法返回一個新位元組陣列。這個數組裡的元素是可變的,並且每個元素的值範圍: 0 <= x < 2。
    引數說明:

    • 如果 source 為整數,則返回一個長度為 source 的初始化陣列;
    • 如果 source 為字串,則按照指定的 encoding 將字串轉換為位元組序列;
    • 如果 source 為可迭代型別,則元素必須為[0 ,255] 中的整數;
    • 如果 source 為與 buffer 介面一致的物件,則此物件也可以被用於初始化 bytearray。
    • 如果沒有輸入任何引數,預設就是初始化陣列為0個元素。

    bytes()函式是bytearray()函式的不可變形式。

>>> bytearray()
bytearray(b'')
>>> bytearray('Polaris',encoding = 'utf-8')  ##字串必須新增encoding方式
bytearray(b'Polaris')
>>> bytearray('啊', encoding = 'utf-8')
bytearray(b'\xe5\x95\x8a')
>>> bytearray([1,2,3])
bytearray(b'\x01\x02\x03')
>>>a = bytes([1,2,3,4])
>>> a
b'\x01\x02\x03\x04'
>>> type(a)
<class 'bytes'>
>>> a = bytes('hello','ascii') ##帶上編碼
>>> a
b'hello'
>>> type(a)
<class 'bytes'>
  • 7 callable()函式
    callable() 函式用於檢查一個物件是否是可呼叫的。如果返回True,object仍然可能呼叫失敗;但如果返回False,呼叫物件ojbect絕對不會成功。
    對於函式, 方法, lambda 函式, 類, 以及實現了 call 方法的類例項, 它都返回 True。
>>> print(callable(0),callable('add'))
False False
>>> def add(a,b):
        c = a + b
        return c
>>> callable(add)            ##函式返回True
True
>>> class A:                  # 類
        def method(self):
                return 0
>>> callable(A)               # 類返回 True
True
>>> a = A()
>>> callable(a)               # 沒有實現 __call__, 返回 False
False
>>> class B:
        def __call__(self):
               return 0 
>>> callable(B)
True
>>> b = B()
>>> callable(b)               # 實現 __call__, 返回 True
True
  • 8 chr()函式
    chr() 用一個範圍在 range(256)內的(就是0~255)整數作引數,返回值是當前整數對應的ascii字元。
>>>print chr(0x30), chr(0x31), chr(0x61)   # 十六進位制
0 1 a
>>> print chr(48), chr(49), chr(97)         # 十進位制
0 1 a
  • 9 classmethod()函式
    classmethod()修飾符對應的函式不需要例項化,不需要 self 引數,但第一個引數需要是表示自身類的 cls 引數,可以來呼叫類的屬性,類的方法,例項化物件等。
>>> class A(object):
        bar = 1
        def func1(self):  
            print ('foo') 
        @classmethod
        def func2(cls):
            print ('func2')
            print (cls.bar)
            cls().func1()   # 呼叫 foo 方法

>> A.func2()               # 不需要例項化
func2
1
foo
  • 10 compile()函式
    compile() 函式將一個字串編譯為位元組程式碼,用法如下:
    compile(source, filename, mode[, flags[, dont_inherit]])
    引數說明:
    • source – 字串或者AST(Abstract Syntax Trees)物件。
    • filename – 程式碼檔名稱,如果不是從檔案讀取程式碼則傳遞一些可辨認的值。
    • mode – 指定編譯程式碼的種類。可以指定為 exec, eval, single。 The mode must be ‘exec’ to compile a module, ‘single’ to compile a single (interactive) statement, or ‘eval’ to compile an expression.
    • flags – 變數作用域,區域性名稱空間,如果被提供,可以是任何對映物件。
    • flags和dont_inherit是用來控制編譯原始碼時的標誌。
>>> a = 'for i in range(0,3): print(i)'
>>> b = compile(a,' ','exec')
>>> b
<code object <module> at 0x000001350054CB70, file " ", line 1>
>>> exec(b)
0
1
2
>>> c = '3 * 4 + 5'
>>> d = compile(c,' ', 'eval')
>>> eval(d)
17
  • 11 complex()函式
    complex() 函式用於建立一個值為 real + imag * j 的複數或者轉化一個字串或數為複數。如果第一個引數為字串,則不需要指定第二個引數。
>>>complex(1, 2)
(1 + 2j)
>>> complex(1)    # 數字
(1 + 0j)
>>> complex("1")  # 當做字串處理
(1 + 0j)
>>> # 注意:這個地方在"+"號兩邊不能有空格,也就是不能寫成"1 + 2j",應該是"1+2j",否則會報錯
>>> complex("1+2j")
(1 + 2j)
  • 12 delatr()函式

  • 13 dict()函式

>>> dict()                        # 建立空字典
{}
>>> dict(a='1', b='2', c ='3')     # 傳入關鍵字
{'a': '1', 'b': '2', 'c': '3'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 對映函式方式來構造字典
{'one': 1, 'three': 3, 'two': 2} 
>>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代物件方式來構造字典
{'one': 1, 'three': 3, 'two': 2}
  • 14 dir()函式

  • 15 divmod()函式

未完待續…

相關推薦

Python3 基礎函式學習——函式(1) abs()到divmod()

今天學習Python3的基礎函式。 首先學習Python3的內建函式。Python3的內建函式一共有67個。(注:python2中的比較函式cmp()在python3中被取消,需引入operator模

Python基礎知識(函式彙總)

python內建函式 最近一直在看python的document,打算在基礎方面重點看一下python的keyword、Build-in Function、Build-in Constants、Build-in Types、Build-in Exception這四個方面,其實在看的時候發現整個《

day17 Pyhton學習 函式繼續

1. locals 本地作用域/區域性作用域  會隨著位置的改變而改變 2.globals 全域性作用域   永遠不變,永遠是全域性 3.complex:複數 實數(有理數和無理數) 某一個數的平方是-1 ,那麼這個數就是一個虛數的基礎單位 j # 複數 = 實數+虛

python基礎--字串的函式

1.   bit_length()  獲取對應字串的位元長度,就是在記憶體的長度 舉例: a = 5 b = a.bit_length() print(b) 3 2.  capitalize()   將首字母大寫  太簡單就不舉例了 3.  case

【go語言 基礎系列】函式

原始檔builtin.go檔案中一共定義了15個內建函式,go1.9.2 版本。通過函式名可以直接呼叫函式。 func append(slice []Type, elems ...Type) []Type func copy(dst, src []Type) int

2018.9.10學習函式、切片、字串拼接等

今日練習: # 題目1:從網路上使用爬蟲程式得到下面字串: # zhangsan-18-175-70-python5;lisi-20-170-80-python5;wangwu-28-165-60-python3;zhaoliu-18-175-70-python5;xi

python基礎之字串函式(部分)

# -*- coding: utf-8 -*- """ @file:strstudy.py @time:2018/4/2 21:45 @author:xq @contact:[email protected] """ #把字串的第一個字元大寫 # a = 'test' # print(a.capit

python基礎之列表函式(部分)

# -*- coding: utf-8 -*- """ @file:listStudy.py @time:2018/4/7 17:30 @author:xq @contact:[email p

python-基礎知識之匿名函式函式

一、什麼是匿名函式? 匿名就是沒有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #與函式有相同的作用域,但是匿名意味著引用計數為0,使用一次就釋放,除非讓其有名字 func=lambda x,

Python3.6.x中函式總結

# -*- coding:utf-8 -*- """ abs() dict() help() min() setattr() all() dir()

記錄我的 python 學習歷程-Day13 匿名函式函式 II、閉包

一、匿名函式 以後面試或者工作中經常用匿名函式 lambda,也叫一句話函式。 課上練習: # 正常函式: def func(a, b): return a + b print(func(4, 6)) # 10 # 匿名函式: func = lambda a, b: a + b print(

(轉)python函式函式

原文:https://blog.csdn.net/pipisorry/article/details/44755423 https://juejin.im/post/5ae3ee096fb9a07aa7676883 Python內建(built-in)函式隨著python直譯器的執行而建立。在Python

JavaScript函式函式),變數詳解

JavaScript函式(內建函式),變數詳解                                   &nb

20181130(裝飾器補充,疊加多個裝飾器,有參裝飾器,三元表示式,生成式,匿名函式函式

  一、裝飾器的補充 1、函式屬性的傳遞 Python裝飾器(decorator)在實現的時候,被裝飾後的函式其實已經是另外一個函數了(函式名等函式屬性會發生改變),為了不影響,Python的functools包中提供了一個叫wraps的decorator來消除這樣的副作用。寫一個decora

JavaScript 函式定義+函式使用+array物件+object型別

文章目錄 函式定義 random() setInterval() setTimeout() 陣列物件 object 函式定義 兩種格式: functi

第四章 php函式(自定義函式、變數範圍、引數傳遞,可變函式、遞迴函式函式)

任何有效的php程式碼都可以作為函式體使用 //例子1 function add($a,$b){ echo $a+$b; } add(10,20); //php頁面顯示30 // 例子2 function add($a,$b){ return $a+$b; //r

Python 函式函式

函式 - 程式碼的一種組織形式 - 一個函式一般完成一項特定的功能 函式使用 - 函式需要先定義 - 使用函式,俗稱呼叫 定義一個函式 - 只是定義的話不會執行 - def 函式名() - 函式名自己定義,起名需要遵循命名規則,約定俗成,大駝峰只給類用 - 後面括號和

python匿名函式以及函式的使用

一、匿名函式  1.定義:    匿名函式顧名思義就是指:是指一類無需定義識別符號(函式名)的函式或子程式。 2.語法格式:lambda 引數:表示式   lambda語句中,開頭先寫關鍵字lambda,冒號前是引數,可以有多個,用逗號隔開;冒號右

Python 匿名函式函式

一、匿名函式 python 使用 lambda 來建立匿名函式。意即不再使用 def 語句這樣標準的形式定義一個函式。 lambda只是一個表示式,函式體比def簡單很多。 lambda的主體是一個表示式,而不是一個程式碼塊。僅僅能在lambda表示式中封裝

匿名函式函式

1 匿名函式python 使用 lambda 來建立匿名函式語法:lambda [arg1 [,arg2,.....argn]]:expressionlambda 只是一個表示式,函式體比 def 簡單很多。 lambda的主體是一個表示式,而不是一個程式碼塊。僅僅能在lam