python一些重要的內建函數,python內建函數大全

本文目錄一覽:

python常用函數

1、complex()

返回一個形如 a+bj 的複數,傳入參數分為三種情況:

參數為空時,返回0j;參數為字符串時,將字符串表達式解釋為複數形式並返回;參數為兩個整數(a,b)時,返回 a+bj;參數只有一個整數 a 時,虛部 b 默認為0,函數返回 a+0j。

2、dir()

不提供參數時,返回當前本地範圍內的名稱列表;提供一個參數時,返回該對象包含的全部屬性。

3、divmod(a,b)

a — 代表被除數,整數或浮點數;b — 代表除數,整數或浮點數;根據 除法運算 計算 a,b 之間的商和餘數,函數返回一個元組(p,q) ,p 代表商 a//b ,q 代表餘數 a%b。

4、enumerate(iterable,start=0)

iterable — 一個可迭代對象,列表、元組序列等;start — 計數索引值,默認初始為0『該函數返回枚舉對象是個迭代器,利用 next() 方法依次返回元素值,每個元素以元組形式存在,包含一個計數元素(起始為 start )和 iterable 中對應的元素值。

python 內建屬性及內建函數有哪些?

可以直接用dir()函數,不加參數

或者導入builtins模塊,用dir(builtins)來查看

Python的函數都有哪些?

Python 函數

函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。

函數能提高應用的模塊性,和代碼的重複利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數。

定義一個函數

你可以定義一個由自己想要功能的函數,以下是簡單的規則:

函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號()。

任何傳入參數和自變量必須放在圓括號中間。圓括號之間可以用於定義參數。

函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。

函數內容以冒號起始,並且縮進。

return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。

語法

def functionname( parameters ):   “函數_文檔字符串”

  function_suite

  return [expression]

默認情況下,參數值和參數名稱是按函數聲明中定義的順序匹配起來的。

實例

以下為一個簡單的Python函數,它將一個字符串作為傳入參數,再打印到標準顯示設備上。

實例(Python 2.0+)

def printme( str ):   “打印傳入的字符串到標準顯示設備上”

  print str

  return

函數調用

定義一個函數只給了函數一個名稱,指定了函數里包含的參數,和代碼塊結構。

這個函數的基本結構完成以後,你可以通過另一個函數調用執行,也可以直接從Python提示符執行。

如下實例調用了printme()函數:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 定義函數def printme( str ):   “打印任何傳入的字符串”

  print str

  return

# 調用函數printme(“我要調用用戶自定義函數!”)printme(“再次調用同一函數”)

以上實例輸出結果:

我要調用用戶自定義函數!再次調用同一函數

參數傳遞

在 python 中,類型屬於對象,變量是沒有類型的:

a=[1,2,3]

a=”Runoob”

以上代碼中,[1,2,3] 是 List 類型,”Runoob” 是 String 類型,而變量 a 是沒有類型,她僅僅是一個對象的引用(一個指針),可以是 List 類型對象,也可以指向 String 類型對象。

可更改(mutable)與不可更改(immutable)對象

在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。

不可變類型:變量賦值 a=5 後再賦值 a=10,這裡實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。

可變類型:變量賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函數的參數傳遞:

不可變類型:類似 c++ 的值傳遞,如 整數、字符串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,不會影響 a 本身。

可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響

python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。

python 傳不可變對象實例

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

def ChangeInt( a ):    a = 10

b = 2ChangeInt(b)print b # 結果是 2

實例中有 int 對象 2,指向它的變量是 b,在傳遞給 ChangeInt 函數時,按傳值的方式複製了變量 b,a 和 b 都指向了同一個 Int 對象,在 a=10 時,則新生成一個 int 值對象 10,並讓 a 指向它。

傳可變對象實例

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫函數說明def changeme( mylist ):   “修改傳入的列表”

  mylist.append([1,2,3,4])

  print “函數內取值: “, mylist

  return

# 調用changeme函數mylist = [10,20,30]changeme( mylist )print “函數外取值: “, mylist

實例中傳入函數的和在末尾添加新內容的對象用的是同一個引用,故輸出結果如下:

函數內取值:  [10, 20, 30, [1, 2, 3, 4]]函數外取值:  [10, 20, 30, [1, 2, 3, 4]]

參數

以下是調用函數時可使用的正式參數類型:

必備參數

關鍵字參數

默認參數

不定長參數

必備參數

必備參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。

調用printme()函數,你必須傳入一個參數,不然會出現語法錯誤:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫函數說明def printme( str ):   “打印任何傳入的字符串”

  print str

  return

#調用printme函數printme()

以上實例輸出結果:

Traceback (most recent call last):

 File “test.py”, line 11, in module

   printme()TypeError: printme() takes exactly 1 argument (0 given)

關鍵字參數

關鍵字參數和函數調用關係緊密,函數調用使用關鍵字參數來確定傳入的參數值。

使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解釋器能夠用參數名匹配參數值。

以下實例在函數 printme() 調用時使用參數名:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫函數說明def printme( str ):   “打印任何傳入的字符串”

  print str

  return

#調用printme函數printme( str = “My string”)

以上實例輸出結果:

My string

下例能將關鍵字參數順序不重要展示得更清楚:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫函數說明def printinfo( name, age ):   “打印任何傳入的字符串”

  print “Name: “, name

  print “Age “, age

  return

#調用printinfo函數printinfo( age=50, name=”miki” )

以上實例輸出結果:

Name:  mikiAge  50

默認參數

調用函數時,默認參數的值如果沒有傳入,則被認為是默認值。下例會打印默認的age,如果age沒有被傳入:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫函數說明def printinfo( name, age = 35 ):   “打印任何傳入的字符串”

  print “Name: “, name

  print “Age “, age

  return

#調用printinfo函數printinfo( age=50, name=”miki” )printinfo( name=”miki” )

以上實例輸出結果:

Name:  mikiAge  50Name:  mikiAge  35

不定長參數

你可能需要一個函數能處理比當初聲明時更多的參數。這些參數叫做不定長參數,和上述2種參數不同,聲明時不會命名。基本語法如下:

def functionname([formal_args,] *var_args_tuple ):   “函數_文檔字符串”

  function_suite

  return [expression]

加了星號(*)的變量名會存放所有未命名的變量參數。不定長參數實例如下:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫函數說明def printinfo( arg1, *vartuple ):   “打印任何傳入的參數”

  print “輸出: “

  print arg1

  for var in vartuple:      print var

  return

# 調用printinfo 函數printinfo( 10 )printinfo( 70, 60, 50 )

以上實例輸出結果:

輸出:10輸出:706050

匿名函數

python 使用 lambda 來創建匿名函數。

lambda只是一個表達式,函數體比def簡單很多。

lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。

lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間里的參數。

雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。

語法

lambda函數的語法只包含一個語句,如下:

lambda [arg1 [,arg2,…..argn]]:expression

如下實例:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫函數說明sum = lambda arg1, arg2: arg1 + arg2

# 調用sum函數print “相加後的值為 : “, sum( 10, 20 )print “相加後的值為 : “, sum( 20, 20 )

以上實例輸出結果:

相加後的值為 :  30相加後的值為 :  40

return 語句

return語句[表達式]退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。之前的例子都沒有示範如何返回數值,下例便告訴你怎麼做:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫函數說明def sum( arg1, arg2 ):   # 返回2個參數的和.”

  total = arg1 + arg2

  print “函數內 : “, total

  return total

# 調用sum函數total = sum( 10, 20 )

以上實例輸出結果:

函數內 :  30

變量作用域

一個程序的所有的變量並不是在哪個位置都可以訪問的。訪問權限決定於這個變量是在哪裡賦值的。

變量的作用域決定了在哪一部分程序你可以訪問哪個特定的變量名稱。兩種最基本的變量作用域如下:

全局變量

局部變量

全局變量和局部變量

定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。

局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序範圍內訪問。調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中。如下實例:

實例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

total = 0 # 這是一個全局變量# 可寫函數說明def sum( arg1, arg2 ):   #返回2個參數的和.”

  total = arg1 + arg2 # total在這裡是局部變量.

  print “函數內是局部變量 : “, total

  return total

#調用sum函數sum( 10, 20 )print “函數外是全局變量 : “, total

以上實例輸出結果:

函數內是局部變量 :  30函數外是全局變量 :  0

享學課堂淺談Python序列內建函數都有哪些

1、Python類型操作符和內建函數總結

表4.5列出了所有操作符和內建函數,其中操作符順序是按優先級從高到低排列的。同一種灰度的操作符擁有同樣的優先級。注意在operator模塊中有這些(和絕大多數Python)操作符相應的同功能的函數可供使用。

表4.5 標準類型操作符和內建函數

操作符/函數

描 述

結 果a

字符串表示

對象的字符串表示

str

內建函數

cmp(obj1, obj2)

比較兩個對象

int

repr(obj)

對象的字符串表示

str

str(obj)

對象的字符串表示

str

type(obj)

檢測對象的類型

type

值比較

小於

bool

大於

bool

=

小於或等於

bool

=

大於或等於

bool

==

等於

bool

!=

不等於

bool

不等於

bool

對象比較

is

bool

is not

不是

bool

布爾操作符

not

邏輯反

bool

and

邏輯與

bool

or

邏輯或

bool

2、Python數值類型操作符和內建函數

一、工廠函數

數值工廠函數總結類(工廠函數) 操作

bool(obj) b 返回obj對象的布爾值,也就是 obj.__nonzero__()方法的返回值。

int(obj, base=10)   返回一個字符串或數值對象的整數表 示, 類似string.atoi();

從Python 1.6起, 引入了可選的進制參數。

long(obj, base=10) 返回一個字符或數據對象的長整數表 示,類似string.atol(),

從Python1.6起, 引入了可選的進制參數 float(obj) ,

返回一個字符串或數據對象的浮點數 表示,類似string.atof()。

complex(str) or返回一個字符串的複數表示,或 者根據給定的實數,

complex(real, imag=0.0)  (及一個可選 的虛數部分)生成一個複數對象。

二、內建函數

1、分類

Python 有五個運算內建函數用於數值運算:

abs(num), coerce(num1,num2), divmod(num1,num2), pow(num1,num2,mod=1)和 round(flt,ndig=0)

其中abs()返回給定參數的絕對值。如果參數是一個複數, 那麼就返回math.sqrt(num.real2 + num.imag2).

coerce()是一個數據類型轉換函數,不過它的行為更像一個運算符.數coerce()為程序員提供了不依賴Python 解釋器,而是自定義兩個數值類型轉換的方法。對一種新創建的數值類型來說, 這個特性非常有用.函數coerce()僅返回一個包含類型轉換完畢的兩個數值元素的元組.

divmod()內建函數把除法和取余運算結合起來, 返回一個包含商和餘數的元組.對整數來說,它的返回值就是地板除和取余操作的結果.對浮點數來說,返回的商部分是math.floor(num1/num2),對複數來說,商部分是ath.floor((num1/num2).real).

pow()它和雙星號 (**)運算符都可以進行指數運算.不過二者的區別並不僅僅在於一個是運算符,一個是內建函數.在Python 1.5 之前,並沒有 ** 運算符,內建函數pow()還接受第三個可選的參數,一個餘數參數.如果有這個參數的, pow() 先進行指數運算,然後將運算結果和第三個參數進行取余運算.這個特性主要用於密碼運算,並且比 pow(x,y) % z 性能更好, 這是因為這個函數的實現類似於C 函數pow(x,y,z).

round()用於對浮點數進行四捨五入運算。它有一個可選的小數位數參數.如果不提供小數位參數, 它返回與第一個參數最接近的整數(但仍然是浮點類型).第二個參數告訴round 函數將結果精確到小數點後指定位數.

2、函數int()/round()/math.floor()它們之間的不同之處:

函數 int()直接截去小數部分.(返回值為整數)

函數 floor() 得到最接近原數但小於原數的整數.(返回值為浮點數)

函數 round() 得到最接近原數的整數.(返回值為浮點數)

3、進制轉換函數:

返回字符串表示的8 進制和16 進制整數,它們分別是內建函數:

oct()和 hex(). oct(255)=’0377’/hex(255)=’0xff’

函數chr()接受一個單位元組整數值(0到255),返回一個字符串(ASCII),其值為對應的字符.chr(97)=’a’

函數ord()則相反,它接受一個字符(ASCII 或 Unicode),返回其對應的整數值.ord(‘A’)=65

3、Python字符串函數

(一)標準類型操作符和標準內建函數

1)、標準類型操作符

,,=,=,==,!=,對象值得比較

註:做比較時字符串是按ASCII值的大小來比較的

is 對象身份比較

and,or,not 布爾類型

2)標準內建函數

type(obj)

cmp(obj1,obj2)

str(obj)和repr(obj) 或反引號運算符(“) 可以方便的以字符串的方式獲取對象的

內容、類型、數值屬性等信息。str()函數得到的字符串可讀性好, 而repr()函數得到的字符

串通常可以用來重新獲得該對象, 通常情況下 obj == eval(repr(obj)) 這個等式是成立的

isinstance(obj,type) 判斷對象的類型

(二)序列操作

1、序列操作

字符串屬於序列對象,可以使用所有序列的操作和函數

切片 [] [:] [::]

簡單總結:

*索引(S[i])獲取特定偏移的元素。

——第一個元素偏移為0

——(S[0])獲取第一個元素。

——負偏移索引意味着從最後或右邊反向進行計數

——(S[-2])獲取倒數第二個元素(就像S[len(s)-2]一樣

*分片[S[i:j]提取對應的部分作為一個序列

——右邊界不包含在內

——分片的邊界默認為0和序列的長度,如果沒有給出的話S[:]

——(S[1:3])獲取了從偏移為1,直到但不包括偏移為3的元素

——(S[1:])獲取從偏移為1到末尾之間的元素

——(S[:3])獲取從偏移為0直到但不包括偏移為3的元素

——(S[:-1])獲取從偏移為0直到但不包括最後一個元素之間的元素

——(S[:])獲取從偏移為0到末尾之間的元素,這有效地實現了頂層S拷貝

拷貝了一個相同值,但是是不同內存區域的對象。對象字符串這樣不可變的對象不是很有用,但是對於可以實地修改的對象來說很有用。

比如列表。

擴展分片:第三個限制值 【步進】

完整形式:X[I:J:K]:這標識索引X對象的元素,從偏移為I直到J-1,每隔K元素索引一次。第三個限制值,K,默認為1

實例

Python Code

1

2

3

4

5

S=’abcdefghijk’

S[1:10]

‘bcdefghij’

S[1:10:2]

‘bdfhj

也可以使用負數作為步進。

分片表達式

Python Code

1

2

“hello”[::-1]

‘olleh’

通過負數步進,兩個邊界的意義實際上進行了反轉。

3、成員操作符 in ,not in

返回布爾值True 或False

可以使用string模塊來判斷輸入字符的合法性,可見成品中的idcheck.py

4、字符串連接

+ 連接字符串 『name』+’ ‘+’jin’

字符串格式化 ‘%s %s’ % (‘name’,’jin’)

join()方法 ‘ ‘.join((‘name’,’jin’)) ‘ ‘.join([‘name’,’jin’])

5、刪除清空字符串

del aString

aString=”

(三)、序列函數

序列類型函數

len(str) 返回字串的長度

enumerate(iter):接受一個可迭代對象作為參數,返回一個enumerate

max(str)/min(str):max()和min()函數對其他的序列類型可能更有用,但對於string類型它們能很好地運行,返回最大或者最小的字符(按照ASCII 碼值排列),

zip([it0, it1,… itN]) 返回一個列表,其第一個元素是it0,it1,…這些元素的第一個元素組成的一個元組,第二個…,類推.

reversed(seq)c 接受一個序列作為參數,返回一個以逆序訪問的迭代器(PEP 322)

sorted(iter,func=None,key=None,reverse=False) 接受一個可迭代對象作為參數,返回一個有序的列表;可選參數func,key 和reverse 的含義跟list.sort()內建函數的參數含義一樣.

注意:

sorted等需要在原處修改的函數無法用在字符串對象,但可以產生新的對象

sum處理的對象是數字,不能用在字符串

sorted(s)

[‘a’, ‘e’, ‘e’, ‘g’, ‘g’, ‘g’, ‘o’]

(四)只適合於字符串類型的函數

1)raw_input()函數

內建的raw_input()函數使用給定字符串提示用戶輸入並將這個輸入返回,下面是一個使

用raw_input()的例子:

user_input = raw_input(“Enter your name: “)

prin user_input

2)str() and unicode()

str()和unicode()函數都是工廠函數,就是說產生所對應的類型的對象.它們接受一個任

意類型的對象,然後創建該對象的可打印的或者Unicode 的字符串表示. 它們和basestring 都

可以作為參數傳給isinstance()函數來判斷一個對象的類型

3)chr(), unichr(), and ord()

chr()函數用一個範圍在range(256)內的(就是0 到255)整數做參數,返回一個對應的字符.unichr()跟它一樣,只不過返回的是Unicode 字符

ord()函數是chr()函數(對於8 位的ASCII 字符串)或unichr()函數(對於Unicode 對象)

的配對函數,它以一個字符(長度為1 的字符串)作為參數,返回對應的ASCII 數值,或者Unicode

數值,如果所給的Unicode 字符超出了你的Python 定義範圍,則會引發一個TypeError 的異常

(五)、只適用於字符串的操作符

1、格式化操作符 %

字符串格式化符號

格式化字符 轉換方式

%c 轉換成字符(ASCII 碼值,或者長度為一的字符串)

%ra 優先用repr()函數進行字符串轉換

%s 優先用str()函數進行字符串轉換

%d / %i 轉成有符號十進制數

%ub 轉成無符號十進制數

%ob 轉成無符號八進制數

%xb/%Xb (Unsigned)轉成無符號十六進制數(x/X 代表轉換後的十六進制字符的大

小寫)

%e/%E 轉成科學計數法(e/E 控制輸出e/E)

%f/%F 轉成浮點數(小數部分自然截斷)

%g/%G %e 和%f/%E 和%F 的簡寫

%% 輸出%

格式化操作符輔助指令

符號 作用

* 定義寬度或者小數點精度

– 用做左對齊

+ 在正數前面顯示加號( + )

sp 在正數前面顯示空格

# 在八進制數前面顯示零(‘0’),在十六進制前面顯示’0x’或者’0X'(取決於

用的是’x’還是’X’)

0 顯示的數字前面填充『0』而不是默認的空格

% ‘%%’輸出一個單一的’%’

(var) 映射變量(字典參數)

m.n m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)

2、字符串模板: 更簡單的替代品

由於新式的字符串Template 對象的引進使得string 模塊又重新活了過來,Template 對象

有兩個方法,substitute()和safe_substitute().前者更為嚴謹,在key 缺少的情況下它會報一

個KeyError 的異常出來,而後者在缺少key 時,直接原封不動的把字符串顯示出

3、原始字符串操作符( r/R )

字符串抑制轉義r’帶特殊符號的字串’

myfile=open(r’C:\new\text.data’,’w’)

4、Unicode 字符串操作符( u/U )

u’abc’ U+0061 U+0062 U+0063

u’\u1234′ U+1234

u’abc\u1234\n’ U+0061 U+0062 U+0063 U+1234 U+0012

(六)字符串對象的方法:

1、刪減

T2.lstrip() 移除字符串前面字符(默認空格),返回字符串

T2.rstrip() 移除字符串後面字符(默認空格),返回字符串

T2.strip() 移除字符串前後面空格,返回字符串 默認空格,可以其他字符 S.strip(‘”‘)

2、切割

partition(sep),

rpartition(sep),

splitlines([keepends]),#把S按照行分割符分為一個list,keepends是一個bool值,如果為真每行後而會保留行分割符

split([sep [,maxsplit]]),#以sep為分隔符,把S分成一個list。maxsplit表示分割的次數。默認的分割符為空白字符

rsplit([sep[,maxsplit]]) #從右到左切割

備註:

partition()函數族是2.5版本新增的方法。它接受一個字符串參數,並返回一個3個元素的 tuple 對象。

如果sep沒出現在母串中,返回值是 (sep, 『』, 『』);

否則,返回值的第一個元素是 sep 左端的部分,第二個元素是 sep 自身,第三個元素是 sep 右端的部分。

S.partition(‘;’)

(”, ‘;’, ‘ generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n’)

參數 maxsplit 是分切的次數,即最大的分切次數,所以返回值最多有 maxsplit+1 個元素。

s.split() 和 s.split(『 『)的返回值不盡相同

‘ hello world!’.split()

[‘hello’, ‘world!’]

‘ hello world!’.split(‘ ‘)

[”, ”, ‘hello’, ”, ”, ‘world!’]

S.split(‘\n’,3)

[‘; generated by /sbin/dhclient-script’, ‘nameserver 172.16.10.171’, ‘nameserver 8.8.8.8’, ‘nameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n’]

超過最大切割個數後面的全部為一個元素

按行切割

S

‘; generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n’

S.splitlines()

[‘; generated by /sbin/dhclient-script’, ‘nameserver 172.16.10.171’, ‘nameserver 8.8.8.8’, ‘nameserver 172.16.0.2’, ‘nameserver 178.79.131.110’, ‘nameserver 202.96.199.133’]

產生差異的原因在於當忽略 sep 參數或sep參數為 None 時與明確給 sep 賦予字符串值時 split() 採用兩種不同的算法。

對於前者,split() 先去除字符串兩端的空白符,然後以任意長度的空白符串作為界定符分切字符串

即連續的空白符串被當作單一的空白符看待;

對於後者則認為兩個連續的 sep 之間存在一個空字符串。因此對於空字符串(或空白符串),它們的返回值也是不同的:

”.split()

[]

”.split(‘ ‘)

[”]

3、變形

lower(),#全部小寫

upper(),#全部小寫

capitalize(),#首字母大寫

swapcase(),#大小寫交換

title()#每個單詞第一個大寫,其他小寫

備註

因為title() 函數並不去除字符串兩端的空白符也不會把連續的空白符替換為一個空格,

所以建議使用string 模塊中的capwords(s)函數,它能夠去除兩端的空白符,再將連續的空白符用一個空格代替。

Python Code

1

2

3

4

‘ hello world!’.title()

‘ Hello World!’

string.capwords(‘ hello world!’)

‘Hello World!’

4、連接

join(seq)

join() 函數的高效率(相對於循環相加而言),使它成為最值得關注的字符串方法之一。

它的功用是將可迭代的字符串序列連接成一條長字符串,如:

conf = {‘host’:’127.0.0.1′,

… ‘db’:’spam’,

… ‘user’:’sa’,

… ‘passwd’:’eggs’}

‘;’.join(“%s=%s”%(k, v) for k, v in conf.iteritems())

‘passswd=eggs;db=spam;user=sa;host=127.0.0.1’

S=”.join(T) #使用空字符串分割把字符列錶轉換為字符串

5、查找

count( sub[, start[, end]]),#計算substr在S中出現的次數

find( sub[, start[, end]]),#返回S中出現sub的第一個字母的標號,如果S中沒有sub則返回-1。start和end作用就相當於在S[start:end]中搜索

index( substr[, start[, end]]),#與find()相同,只是在S中沒有substr時,會返回一個運行時錯誤

rfind( sub[, start[,end]]),#返回S中最後出現的substr的第一個字母的標號,如果S中沒有substr則返回-1,也就是說從右邊算起的第一次出現的substr的首字母標號

rindex( sub[, start[, end]])

T2.find(‘ie’) 字符串方法調用:搜索

find()—-找到的第一個符合字符的index

rfind()—–找到最後一個符合的字符的index

備註:

find()函數族找不到時返回-1,index()函數族則拋出ValueError異常。

另,也可以用 in 和 not in 操作符來判斷字符串中是否存在某個模板

6、替換

replace(old, new[,count]),#把S中的oldstar替換為newstr,count為替換次數。這是替換的通用形式,還有一些函數進行特殊字符的替換

translate(table[,deletechars]) #使用上面的函數產後的翻譯表,把S進行翻譯,並把deletechars中有的字符刪掉

備註:

replace()函數的 count 參數用以指定最大替換次數

translate() 的參數 table 可以由 string.maketrans(frm, to) 生成

translate() 對 unicode 對象的支持並不完備,建議不要使用

7、判定

isalnum(),#是否全是字母和數字,並至少有一個字符

isalpha(),是否全是字母,並至少有一個字符

isdigit(),是否全是數字,並至少有一個字符 ,如果是全數字返回True,否則返回False

islower(),#S中的字母是否全是小寫

isupper(),#S中的字母是否是大寫

isspace(),#是否全是空白字符,並至少有一個字符

istitle(),S是否是首字母大寫的

startswith(prefix[, start[, end]]), #是否以prefix開頭

endswith(suffix[,start[, end]]),#以suffix結尾

備註:

這些函數都比較簡單,顧名知義。需要注意的是*with()函數族可以接受可選的 start, end 參數,善加利用,可以優化性能。

另,自 Py2.5 版本起,*with() 函數族的 prefix 參數可以接受 tuple 類型的實參,當實參中的某人元素能夠匹配,即返回 True。

8、填充

字符串在輸出時的對齊:

center(width[, fillchar]), 字符串中間對齊

ljust(width[, fillchar]), 字符串左對齊,不足部分用fillchar填充,默認的為空格

rjust(width[, fillchar]), 字符串右對齊,不足部分用fillchar填充,默認的為空格

zfill(width), 把字符串變成width長,並在右對齊,不足部分用0補足

expandtabs([tabsize])把字符串中的製表符(tab)轉換為適當數量的空格。

fillchar 參數指定了用以填充的字符,默認為空格

zfill的z為zero的縮寫,顧名思義,是以字符0進行填充,用於數值輸出

expandtabs()的tabsize 參數默認為8。它的功能是把字符串中的製表符(tab)轉換為適當數量的空格。

9、編碼

encode([encoding[,errors]]),

decode([encoding[,errors]])

這是一對互逆操作的方法,用以編碼和解碼字符串。因為str是平台相關的,它使用的內碼依賴於操作系統環境,

而unicode是平台無關的,是Python內部的字符串存儲

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/280442.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-21 13:03
下一篇 2024-12-21 13:03

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • 分段函數Python

    本文將從以下幾個方面詳細闡述Python中的分段函數,包括函數基本定義、調用示例、圖像繪製、函數優化和應用實例。 一、函數基本定義 分段函數又稱為條件函數,指一條直線段或曲線段,由…

    編程 2025-04-29
  • Python函數名稱相同參數不同:多態

    Python是一門面向對象的編程語言,它強烈支持多態性 一、什麼是多態多態是面向對象三大特性中的一種,它指的是:相同的函數名稱可以有不同的實現方式。也就是說,不同的對象調用同名方法…

    編程 2025-04-29

發表回復

登錄後才能評論